/* 顧客対応台：全ページの仕上げ（いちばん最後に読み込む）
   ねらい：どの画面も「見出し → 切り替え → 絞り込み → 本体」の同じ並び・同じ余白・同じ部品（ボタン・タブ・表・入力・空の表示）にそろえる */
:root{--ease-o:cubic-bezier(.22,1,.36,1);--rc:12px;--rk:8px;--h-ctl:40px;--h-sm:32px;--ring:0 0 0 3px rgba(57,73,171,.16);--sh1:0 1px 2px rgba(16,35,58,.05);--sh2:0 8px 24px -12px rgba(16,35,58,.22)}
html{scroll-padding-top:84px}
::selection{background:rgba(57,73,171,.16)}
body{line-height:1.65;-webkit-font-smoothing:antialiased}
.num,.tbl td.r,.tbl th.r,.kpi b,.td-tile .tn{font-variant-numeric:tabular-nums;font-feature-settings:"tnum","palt" 0}
*{scrollbar-width:thin;scrollbar-color:#C5CFDD transparent}

/* ── 画面の余白と、見出しまわり ── */
.view{padding-top:76px;padding-bottom:64px}
.pagehead{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px 16px;margin:2px 0 20px}
.pagehead h1{font-size:24px;line-height:1.35;letter-spacing:.01em}
.pagehead h1::after{width:32px;height:3px;margin-top:9px}
.pagehead p{font-size:13px;line-height:1.7;margin-top:6px}
.pagehead .bar{margin:0!important;gap:8px}
.pagehead .bar label[style]{height:var(--h-ctl)!important;border-color:var(--bd,#D7DEE8)!important;border-radius:var(--rk)!important;transition:border-color .2s,box-shadow .2s}
.pagehead .bar label[style]:focus-within{border-color:var(--blue)!important;box-shadow:var(--ring)}

/* ── ボタン：高さ 40／32 でそろえ、押したときの反応をつける ── */
.btn{height:var(--h-ctl);padding:0 18px;border-radius:var(--rk);font-size:14px;font-weight:600;letter-spacing:.01em;display:inline-flex;align-items:center;justify-content:center;gap:8px;white-space:nowrap;transition:background-color .2s var(--ease-o),border-color .2s,color .2s,box-shadow .25s var(--ease-o),transform .15s var(--ease-o)}
.btn.sm{height:var(--h-sm);padding:0 12px;font-size:13px;border-radius:7px}
.btn:not(.ghost):not(.danger):hover{box-shadow:0 6px 16px -8px rgba(57,73,171,.65)}
.btn:active{transform:translateY(1px);box-shadow:none}
.btn:focus-visible,a:focus-visible,button:focus-visible,summary:focus-visible{outline:0;box-shadow:var(--ring)}
.btn[disabled],.btn.off{opacity:.5;pointer-events:none}
.btn svg{flex:none}

/* ── タブ：上の「機能の切り替え」は薄い台の中の白いつまみ、画面内の状態タブは下線 ── */
.hubtabs{display:inline-flex;gap:2px;padding:3px;margin:0 0 16px;background:#E8EDF4;border:0;border-radius:10px;overflow-x:auto;max-width:100%;scrollbar-width:none}
.hubtabs::-webkit-scrollbar{display:none}
.hubtabs a{display:inline-flex;align-items:center;height:34px;padding:0 15px;border-radius:8px;font-size:13.5px;font-weight:600;color:#4A566B;text-decoration:none;white-space:nowrap;transition:background-color .25s var(--ease-o),color .2s,box-shadow .25s}
.hubtabs a:hover{color:var(--ink);background:rgba(255,255,255,.6)}
.hubtabs a.on{background:#fff;color:var(--blue-d);box-shadow:0 1px 3px rgba(16,35,58,.14)}
.utabs{gap:4px;margin:0 0 16px;border-bottom:1px solid var(--line)}
.utab{padding:10px 14px 11px;font-size:14px;font-weight:600;color:var(--soft);border-bottom-width:3px;transition:color .2s,border-color .25s var(--ease-o)}
.utab:hover{color:var(--ink)}
.utab.on{color:var(--blue-d)}
.utab .n{display:inline-block;min-width:20px;padding:1px 7px;margin-left:6px;border-radius:999px;background:#EDF2F7;color:var(--soft);font-size:11.5px;font-weight:700;text-align:center}
.utab.on .n{background:var(--tint);color:var(--blue-d)}

/* ── 絞り込み行 ── */
.bar{gap:8px 10px;margin:0 0 14px}
.bar .lbl{font-size:12.5px;font-weight:600;color:var(--soft);margin-right:2px}
.chip{height:32px;padding:0 13px;border:1px solid var(--line);border-radius:999px;background:#fff;font-size:13px;font-weight:600;color:#3B475C;transition:background-color .2s,border-color .2s,color .2s}
.chip:hover{border-color:#B7C5DA;color:var(--ink)}
.chip.on{background:var(--tint);border-color:var(--blue);color:var(--blue-d)}
.seg{background:#E8EDF4;padding:3px;border-radius:9px;gap:2px}
.seg .segb{border:0;border-radius:7px;background:transparent;padding:5px 13px;font-size:13px;font-weight:600;color:#4A566B;transition:background-color .2s,color .2s,box-shadow .2s}
.seg .segb.on{background:#fff;color:var(--blue-d);box-shadow:0 1px 3px rgba(16,35,58,.14)}
.field .seg{display:inline-flex}

/* ── 入力部品 ── */
input:not([type=checkbox]):not([type=radio]):not([type=file]),select,textarea{height:var(--h-ctl);padding:0 12px;border:1px solid var(--bd,#D7DEE8);border-radius:var(--rk);background-color:#fff;font:inherit;font-size:14px;color:var(--ink);transition:border-color .2s,box-shadow .2s,background-color .2s}
textarea{height:auto;min-height:96px;padding:10px 12px;line-height:1.7}
select{appearance:none;-webkit-appearance:none;padding-right:34px;cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8' fill='none' stroke='%235F6B7A' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M1.5 1.5L6 6l4.5-4.5'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center}
input::placeholder,textarea::placeholder{color:#97A1B1}
input:not([type=checkbox]):not([type=radio]):hover,select:hover,textarea:hover{border-color:#B7C5DA}
input:not([type=checkbox]):not([type=radio]):focus,select:focus,textarea:focus{outline:0;border-color:var(--blue);box-shadow:var(--ring)}
input[type=checkbox],input[type=radio]{accent-color:var(--blue);width:16px;height:16px;cursor:pointer}
input[type=date],input[type=month],input[type=datetime-local]{min-width:150px}
.bar select,.bar input:not([type=checkbox]):not([type=radio]){height:36px}
.check{display:inline-flex;align-items:center;gap:8px;font-size:13.5px;color:#3B475C;cursor:pointer}
.field{margin-bottom:14px}
.field label{display:block;margin-bottom:6px;font-size:12.5px;font-weight:600;color:var(--soft)}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:0 16px}

/* ── 面（カード）と、並べ方 ── */
.card{border:1px solid var(--line);border-radius:var(--rc);box-shadow:var(--sh1);padding:18px 22px;background:#fff}
.card.flush{padding:0;overflow:hidden}
.card h2,.cardhead h2{font-size:15px;font-weight:700;letter-spacing:.01em;margin:0 0 12px}
.card + .card,.card + .tbl-wrap,.tbl-wrap + .card{margin-top:16px}
.grid,.g-2,.g-3{align-items:stretch}
.grid>.card,.g-2>.card,.g-3>.card{margin:0}
.kpis{gap:12px;margin:0 0 16px}
.kpi{padding:13px 16px;border-radius:var(--rc);border:1px solid var(--line);background:#fff;text-align:left;transition:border-color .2s,box-shadow .25s var(--ease-o),background-color .2s}
.kpi:hover{border-color:#B7C5DA;box-shadow:var(--sh2)}
.kpi .l{display:block;font-size:12px;font-weight:600;color:var(--soft)}
.kpi b{display:block;margin-top:2px;font-size:21px;line-height:1.3}
.kpi .s{display:block;font-size:11.5px;color:var(--faint);min-height:1em}
.kpi.bad b{color:var(--red,#C42B1C)}
.kpi.on{background:var(--tint);border-color:var(--blue)}

/* ── 表 ── */
.tbl-wrap,.tw{border:1px solid var(--line);border-radius:var(--rc);background:#fff;overflow:auto;box-shadow:var(--sh1)}
.card .tbl-wrap,.card .tw{border:0;box-shadow:none;border-radius:0}
.tbl{width:100%;border-collapse:separate;border-spacing:0;font-size:13.5px}
.tbl th{position:sticky;top:0;z-index:1;padding:11px 14px;background:#F6F9FC;color:var(--soft);font-size:12px;font-weight:700;letter-spacing:.03em;text-align:left;white-space:nowrap;border-bottom:1px solid var(--line)}
.tbl th.r,.tbl td.r{text-align:right}
.tbl td{padding:13px 14px;border-bottom:1px solid var(--line3);vertical-align:middle}
.tbl tbody tr:last-child td{border-bottom:0}
.tbl tbody tr{transition:background-color .2s}
.tbl tbody tr:hover td{background:#F7FAFE}
.tbl .sorth{font:inherit;color:inherit;letter-spacing:inherit;background:none;border:0;padding:0;cursor:pointer}
.tbl .sorth:hover{color:var(--blue)}
.listhead,.lrow{padding:13px 22px}
.listhead{font-size:12px;font-weight:700;letter-spacing:.03em;background:#F6F9FC;border-bottom:1px solid var(--line)}
.lrow{transition:background-color .2s}
.lrow .title{font-weight:600;color:var(--ink)}
.lrow:hover .title{color:var(--blue-d)}
.lrow .sub{margin-top:1px;font-size:12.5px}

/* ── ラベル類：軽く、大きさをそろえる ── */
.kind{min-width:0;padding:3px 10px;border-radius:6px;background:var(--tint);color:var(--blue-d);font-size:12px;font-weight:600;letter-spacing:.01em}
.cols .kindcell .kind{display:inline-block}
.st{min-width:0;padding:3px 11px 3px 9px;border-radius:999px;font-size:12px;font-weight:600;background:#EDF2F7;color:#3B475C;display:inline-flex;align-items:center;gap:6px}
.st::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor;opacity:.55}
.st.new{background:#E3EEFB;color:var(--blue-d)}.st.new::before{background:var(--org2);opacity:1}
.st.wait{background:#EDF2F7;color:#4A566B}
.st.done{background:transparent;color:var(--faint)}
.st.draft{background:#FCEFD6;color:#8A5400}
.st.void{background:#EDF2F7;color:var(--faint)}
.due{min-width:0;padding:4px 11px;border-radius:999px;font-size:12px;font-weight:600;background:#EDF2F7;color:#3B475C}
.due.late{background:#FBE7E5;color:#B93815}
.due.today{background:#FCEFD6;color:#A5500A}
.due.none,.due.past{background:none;color:var(--faint);font-weight:500}
.chip2{display:inline-block;padding:2px 9px;border-radius:6px;font-size:12px;font-weight:600}

/* ── 空の表示 ── */
.empty{display:flex;flex-direction:column;align-items:center;gap:10px;padding:44px 20px;text-align:center;font-size:13.5px;line-height:1.8;color:var(--faint)}
.empty::before{content:"";width:44px;height:44px;border-radius:50%;background:#EDF2F7 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='22' height='22' viewBox='0 0 24 24' fill='none' stroke='%238A94A3' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 13l2.5-7h11L20 13v6H4z'/%3E%3Cpath d='M4 13h4.5l1 2h5l1-2H20'/%3E%3C/svg%3E") center/22px no-repeat}
.todo .empty,.td-sec .empty{padding:28px 20px}

/* ── 左のメニュー ── */
.side nav a{transition:background-color .2s,color .2s}
.side nav a.on{background:var(--tint);color:var(--blue-d);font-weight:700}
.nhead{font-size:11px;letter-spacing:.12em;color:var(--faint)}
.side .me{margin-top:6px;padding:12px 10px;border-top:1px solid var(--line2);font-size:12px;color:var(--soft);background:#fff;position:sticky;bottom:0}
.topbar{backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}

/* ── 小さな画面 ── */
@media(max-width:860px){
  .view{padding-top:68px}
  .pagehead{align-items:flex-start}
  .pagehead .bar{width:100%}
  .pagehead .bar .btn{flex:1 1 auto}
  .hubtabs{display:flex;width:100%}
  .row2{grid-template-columns:1fr}
  .tbl-wrap,.tw{-webkit-overflow-scrolling:touch}
  .card{padding:14px 16px}
}
@media(prefers-reduced-motion:reduce){*{transition-duration:.01ms!important;animation-duration:.01ms!important}}

/* 検索窓：左の虫めがね分の余白を守る（上の汎用入力より優先） */
input[type=search]:not(#_){padding-left:36px;padding-right:12px}
.gsearch input:not(#_){height:42px;padding:0 14px 0 42px;border-radius:10px}
input[type=search]::-webkit-search-cancel-button{opacity:.5;cursor:pointer}

/* 左メニュー：項目が多くてもユーザー欄は下に固定、メニューだけ中でスクロール */
@media(min-width:861px){
  .side{overflow:hidden}
  .side nav#nav{flex:1 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding-bottom:8px}
  .side .me{flex:none}
}

/* 表を入れたカードは枠いっぱいに／表内ボタンは軽く／ドラッグ置き場は大きく */
.card:has(>.tbl-wrap:only-child),.card:has(>.tw:only-child){padding:0;overflow:hidden}
.card>.tbl-wrap:only-child .tbl th:first-child,.card>.tw:only-child .tbl th:first-child{padding-left:22px}
.card>.tbl-wrap:only-child .tbl td:first-child,.card>.tw:only-child .tbl td:first-child{padding-left:22px}
.tbl td .btn.sm:not(.ghost):not(.danger){background:var(--tint);border-color:transparent;color:var(--blue-d)}
.tbl td .btn.sm:not(.ghost):not(.danger):hover{background:#D9E8FA;box-shadow:none}
.dropz{display:flex;flex-direction:column;align-items:center;gap:4px;padding:26px 20px;border:1.5px dashed #B7C5DA;border-radius:var(--rc);background:#FAFCFE;text-align:center;font-size:14px;transition:border-color .2s,background-color .2s}
.dropz::before{content:"";width:40px;height:40px;margin-bottom:6px;border-radius:50%;background:var(--tint) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 24 24' fill='none' stroke='%232A68BC' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 16V5M7 10l5-5 5 5M5 19h14'/%3E%3C/svg%3E") center/20px no-repeat}
.dropz b{color:var(--ink);font-size:14.5px}
.dropz.on,.dropz:hover{background:var(--tint);border-color:var(--blue)}

@media(max-width:860px){
  .hubtabs{flex-wrap:nowrap;overflow-x:auto}
  .hubtabs a{flex:none}
  .card>.tbl-wrap:only-child .tbl th:first-child,.card>.tbl-wrap:only-child .tbl td:first-child{padding-left:16px}
  .tbl-wrap .tbl,.tw .tbl{min-width:620px}
  .tbl th,.tbl td{padding-left:12px;padding-right:12px}
  .bar select,.bar input[type=search]{flex:1 1 140px;max-width:none}
}

/* class なしの素の table（取引先など）も同じ見た目に */
.tw table{width:100%;border-collapse:separate;border-spacing:0;font-size:13.5px}
.tw table th{padding:11px 14px;background:#F6F9FC;color:var(--soft);font-size:12px;font-weight:700;text-align:left;white-space:nowrap;border-bottom:1px solid var(--line)}
.tw table td{padding:13px 14px;border-bottom:1px solid var(--line3);vertical-align:middle}
.tw table tbody tr:last-child td{border-bottom:0}
.tw table tbody tr:hover td{background:#F7FAFE}
.badge{display:inline-block;padding:2px 10px;border-radius:999px;font-size:12px;font-weight:600}
@media(max-width:860px){.tw table{min-width:640px}.tw table td:nth-child(2){min-width:140px}.tw table td:nth-child(4){min-width:120px}}

/* どこにある検索窓にも虫めがね。ファイル管理などの絞り込み行の入力・選択も揃える */
input[type=search]:not(#_){background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%238a97ab' stroke-width='2.2' stroke-linecap='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='M20 20l-3.5-3.5'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:12px 50%}
.fl-bar{gap:8px 10px}
.fl-bar input:not(#_),.fl-bar select:not(#_){height:var(--h-ctl);border-radius:var(--rk)}
.fl-bar select:not(#_){padding-right:34px;min-width:132px}
select:not(#_){background-position:right 12px center;background-repeat:no-repeat}

.fl-empty{display:flex;flex-direction:column;align-items:center;gap:4px;padding:40px 20px;text-align:center;color:var(--faint);font-size:13.5px}
.fl-empty b{color:var(--ink)}

/* 営業案件のボード：案件のない段階は出さない（全部ないときだけ、案内を出す） */
.dl-board:empty{display:block;overflow:visible}
.dl-board:empty::before{content:"案件はありません。「＋ 案件」から登録します";display:block;padding:36px 16px;text-align:center;color:var(--mute,#667085);font-size:13px}

/* ── 今日ページ：全体レイアウト最適化 ── */
.view > .pagehead + .bar,
.view > .pagehead ~ .bar:first-of-type{
  display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:10px;margin:0 0 20px;
}
.view > .pagehead ~ .bar:first-of-type .chip{
  height:44px;display:flex;align-items:center;justify-content:center;border-radius:10px;font-size:13.5px;
  background:#fff;border:1.5px solid #E2E8F0;transition:all .2s;
}
.view > .pagehead ~ .bar:first-of-type .chip:hover{
  border-color:var(--blue);background:var(--tint);transform:translateY(-1px);
}
/* KPIカード：数字を大きく */
.view .tile,.view .kpi{
  padding:20px 24px;
}
.view .tile .n b,.view .kpi .v{font-size:32px;line-height:1.1;letter-spacing:-.02em}
.view .tile .t,.view .kpi small{font-size:13px;color:var(--soft);font-weight:500}
/* タスクリスト：行間を広く */
.view .card .lrow,.view .card tr.row{
  padding:14px 4px;
}
/* カード間の余白 */
.view .grid,.view .row{gap:16px}
/* セクション見出し */
.view h2{font-size:16px;font-weight:700;letter-spacing:.01em;margin-bottom:12px}
/* サイドバー：グループ見出しを薄く */
.nhead{font-size:11px;text-transform:uppercase;margin:18px 10px 6px;color:var(--faint)}
/* メインコンテンツを横幅いっぱいに */
.view{max-width:100%;padding-left:clamp(1rem,3vw,2rem)!important;padding-right:clamp(1rem,3vw,2rem)!important}
.topbar{padding-left:clamp(1rem,3vw,2rem)!important;padding-right:clamp(1rem,3vw,2rem)!important}

/* ===== ホーム画面（今日やること）の全面リデザイン ===== */

/* クイック操作ボタン：4列グリッド、大きめカード風 */
.td-quick{
  display:grid !important;
  grid-template-columns:repeat(4,1fr);
  gap:10px;
  margin:8px 0 20px !important;
  flex-wrap:initial !important;
}
.pillbtn{
  height:48px !important;
  padding:0 16px !important;
  border-radius:10px !important;
  border:1.5px solid #E2E8F0 !important;
  background:#fff !important;
  font-size:13.5px !important;
  font-weight:600 !important;
  justify-content:center !important;
  transition:all .15s !important;
}
.pillbtn:hover{
  border-color:var(--blue) !important;
  background:var(--tint) !important;
  transform:translateY(-1px);
  box-shadow:0 4px 12px rgba(57,73,171,.1);
}

/* KPIタイル：4列グリッドで横並び */
.td-bar{
  display:flex !important;
  flex-wrap:wrap !important;
  gap:12px !important;
  margin-bottom:16px !important;
}
.td-tiles{
  display:grid !important;
  grid-template-columns:repeat(auto-fit,minmax(120px,1fr)) !important;
  grid-auto-flow:row !important;
  grid-auto-columns:initial !important;
  flex:1 !important;
  overflow:visible !important;
}
.td-tile{
  min-height:80px !important;
  padding:14px 16px !important;
  border-radius:12px !important;
}
.td-tile .tn{font-size:28px !important;}

/* タスク行：列幅を見直し、右側の余白をなくす */
.td-r{
  grid-template-columns:64px minmax(0,1fr) 110px 90px 90px !important;
  gap:14px !important;
  padding:14px 20px !important;
  align-items:center !important;
}
.td-r .td-amt{
  text-align:right !important;
  font-size:13.5px !important;
}
.td-r .td-w{
  text-align:right !important;
  font-size:12.5px !important;
}
.td-r .td-a{
  justify-self:end !important;
}
.td-r.sub{
  grid-template-columns:0 minmax(0,1fr) 110px 90px 90px !important;
  padding-left:36px !important;
}
.td-r.sub .td-kb{display:none !important}

/* セクションカード：余白を広げる */
.td-card{
  border-radius:14px !important;
  box-shadow:0 1px 3px rgba(57,73,171,.06) !important;
  margin-bottom:16px !important;
}
.td-head{
  padding:18px 20px 12px !important;
}
.td-head h2{
  font-size:18px !important;
}

/* 下部の財務カード：2列グリッド、間隔を広げる */
.td-low{
  display:grid !important;
  grid-template-columns:3fr 2fr !important;
  gap:16px !important;
  margin-top:20px !important;
}
.td-low>.card{
  padding:20px 22px !important;
  border-radius:14px !important;
}
.td-nums{
  gap:20px !important;
  margin:14px 0 !important;
}
.td-nums b{
  font-size:24px !important;
}

/* ページヘッダー：余白調整 */
.td .pagehead{
  margin-bottom:16px !important;
}

/* ===== 見積書・請求書など書類一覧ページの最適化 ===== */
.monthbar{
  display:flex; flex-wrap:wrap; gap:10px; margin:0 0 16px;
}
.monthbar .mchip{
  display:flex; flex-direction:column; align-items:flex-start; gap:2px;
  padding:12px 18px; border:1px solid var(--line,#e2e8f0); border-radius:12px;
  background:#fff; cursor:pointer; transition:all .15s; min-width:110px;
}
.monthbar .mchip:hover{ border-color:var(--blue); box-shadow:var(--sh1); }
.monthbar .mchip.on{
  background:var(--blue); border-color:var(--blue); color:#fff;
}
.monthbar .mchip b{ font-size:16px; font-weight:700; line-height:1.2; }
.monthbar .mchip span{ font-size:12px; opacity:.7; }
.monthbar .mchip.on span{ opacity:.85; }

.lrow.cols-d{
  display:grid; grid-template-columns:2fr 1.5fr 110px 90px 120px 90px 80px;
  gap:12px; align-items:center; padding:14px 16px !important;
  border-bottom:1px solid var(--line,#EDF2F7);
  font-size:14px; transition:background .1s;
}
.lrow.cols-d:hover{ background:var(--tint,#f0f5ff); }
.listhead.cols-d{
  padding:10px 16px !important; font-size:12px; color:var(--faint,#94a3b8);
  font-weight:600; text-transform:uppercase; letter-spacing:.02em;
}
.lrow.cols-d .title{ font-weight:600; color:var(--ink); }
.lrow.cols-d .amt{ font-weight:700; font-size:15px; }
.lrow.cols-d .st{ font-size:12px; padding:3px 10px; border-radius:20px; font-weight:500; }

/* 空のときの余白 */
.card.flush .empty{
  padding:60px 20px !important; text-align:center; color:var(--faint);
}

/* ===== 業務記録・集計ページ ===== */
.td .kpi-strip .kpi{
  padding:18px 20px !important;
}
.td .kpi-strip .kpi .v{
  font-size:28px !important; font-weight:700; line-height:1.1;
}
.td .kpi-strip .kpi .l{
  font-size:13px !important; margin-bottom:4px;
}
.td .kpi-strip .kpi .s{
  font-size:12px; margin-top:6px;
}
.td .tbl{
  font-size:14px;
}
.td .tbl th{
  font-size:12px; color:var(--faint); font-weight:600;
  padding:10px 14px !important;
}
.td .tbl td{
  padding:12px 14px !important;
}

/* ===== 倉庫指示書：選択チェックボックス＋単件CSV出力 ===== */
.lrow.cols-d.cols-d-whs,
.listhead.cols-d.cols-d-whs{
  grid-template-columns:40px 2fr 1.5fr 110px 90px 120px 90px 80px 64px;
  cursor:pointer;
}
.cols-d-whs .whs-sel{ display:flex; align-items:center; justify-content:center; }
.cols-d-whs .whs-cb{ width:16px; height:16px; accent-color:var(--blue,#0B6B55); cursor:pointer; }
.cols-d-whs .whs-act{ display:flex; align-items:center; justify-content:center; }
.cols-d-whs .whs-one{
  padding:4px 10px !important; font-size:12px; border-radius:8px;
}
@media (max-width: 980px){
  .lrow.cols-d.cols-d-whs,
  .listhead.cols-d.cols-d-whs{
    grid-template-columns:36px 1fr auto 56px;
  }
  .cols-d-whs .sbj, .cols-d-whs .who, .cols-d-whs .no, .cols-d-whs .dt{ display:none; }
}

/* ===== 得意先：五十音インデックス ===== */
.alpha-bar{
  display:flex; flex-wrap:wrap; gap:8px; margin:14px 0 4px;
}
.alpha-chip{
  display:inline-flex; flex-direction:column; align-items:center; min-width:46px;
  padding:7px 10px; border:1px solid var(--line,#E4EBF2); background:#fff;
  border-radius:10px; cursor:pointer; transition:all .12s;
}
.alpha-chip b{ font-size:15px; font-weight:700; line-height:1.1; color:var(--ink); }
.alpha-chip span{ font-size:11px; color:var(--faint,#94a3b8); margin-top:2px; }
.alpha-chip:hover{ border-color:var(--blue,#0B6B55); background:var(--tint,#E2F2EE); }
.alpha-chip.on{
  background:var(--blue,#0B6B55); border-color:var(--blue,#0B6B55);
}
.alpha-chip.on b, .alpha-chip.on span{ color:#fff; }
.alpha-chip.on span{ opacity:.85; }

/* ===== 得意先：ページネーション ===== */
.c-pager{
  display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between;
  gap:12px; padding:14px 18px; margin:0; border-top:1px solid var(--line,#EDF2F7);
}
.c-pager .pg-info{ font-size:13px; color:var(--faint,#64748b); font-variant-numeric:tabular-nums; }
.c-pager .pg-nav{ display:flex; align-items:center; gap:4px; flex-wrap:wrap; }
.c-pager .pg-btn{
  min-width:34px; padding:6px 10px !important; font-size:13px;
  border:1px solid var(--line,#E4EBF2); background:#fff; border-radius:8px;
  color:var(--ink); cursor:pointer;
}
.c-pager .pg-btn:hover:not(:disabled):not(.cur){ border-color:var(--blue,#0B6B55); background:var(--tint,#E2F2EE); }
.c-pager .pg-btn.cur{ background:var(--blue,#0B6B55); border-color:var(--blue,#0B6B55); color:#fff; font-weight:700; }
.c-pager .pg-btn:disabled{ opacity:.45; cursor:not-allowed; }
.c-pager .pg-ellipsis{ padding:0 4px; color:var(--faint); }
.c-pager .pg-size{ display:flex; align-items:center; gap:6px; font-size:13px; color:var(--faint,#64748b); }
.c-pager .pg-size-sel{
  padding:5px 8px; border:1px solid var(--line,#E4EBF2); border-radius:8px;
  background:#fff; font-size:13px; color:var(--ink); cursor:pointer;
}
@media (max-width: 680px){
  .c-pager{ justify-content:center; }
  .c-pager .pg-info{ width:100%; text-align:center; }
}

/* ===== 得意先：複数担当者・役割別連絡先（編集） ===== */
.contact-editor .contact-list{ display:flex; flex-direction:column; gap:12px; }
.contact-card{
  border:1px solid var(--line,#E4EBF2); border-radius:12px; padding:14px;
  background:#F6F9FC;
}
.contact-card.primary{ border-color:var(--blue,#0B6B55); background:var(--tint,#E2F2EE); }
.contact-top{ display:flex; align-items:center; flex-wrap:wrap; gap:10px; margin-bottom:12px; }
.primary-lbl{ display:inline-flex; align-items:center; gap:5px; font-size:13px; font-weight:600; cursor:pointer; white-space:nowrap; }
.primary-lbl input{ accent-color:var(--blue,#0B6B55); width:15px; height:15px; }
.role-chips{ display:flex; flex-wrap:wrap; gap:6px; flex:1; }
.role-chip{
  padding:5px 11px; font-size:12px; border:1px solid var(--line,#d8dee9);
  background:#fff; border-radius:20px; color:var(--soft,#475569); cursor:pointer;
  transition:all .12s;
}
.role-chip:hover{ border-color:var(--blue,#0B6B55); }
.role-chip.on{ background:var(--blue,#0B6B55); border-color:var(--blue,#0B6B55); color:#fff; font-weight:600; }
.contact-del{
  margin-left:auto; width:28px; height:28px; border-radius:8px; border:1px solid var(--line,#E4EBF2);
  background:#fff; color:var(--faint,#94a3b8); font-size:16px; line-height:1; cursor:pointer;
}
.contact-del:hover{ color:var(--red,#8A5400); border-color:var(--red,#8A5400); }

/* ===== 得意先詳細：担当者カード ===== */
.cv-contacts{ display:flex; flex-direction:column; gap:12px; }
.cv-contact{
  border:1px solid var(--line,#EDF2F7); border-radius:10px; padding:12px 14px; background:#fff;
}
.cv-contact.primary{ border-left:3px solid var(--blue,#0B6B55); }
.cvc-head{ display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
.cvc-head b{ font-size:14px; font-weight:700; }
.cvc-roles{ display:flex; flex-wrap:wrap; gap:5px; margin:7px 0; }
.cvc-role{
  font-size:11px; padding:2px 9px; border-radius:20px;
  background:var(--tint,#E2F2EE); color:var(--blue,#0B6B55); font-weight:600;
}
.cvc-meta{ font-size:12px; margin-bottom:6px; }
.cvc-lines{ display:flex; flex-direction:column; gap:3px; }
.cvc-line{ font-size:12.5px; color:var(--soft,#475569); text-decoration:none; }
a.cvc-line:hover{ color:var(--blue,#0B6B55); text-decoration:underline; }

/* ===== 書類一覧：MakeLeaps 風リスト（cols-ml） ===== */
.cols-ml{ grid-template-columns: minmax(0,1.35fr) minmax(0,1.05fr) 150px 156px; align-items:center; }
.cols-ml-whs{ grid-template-columns: 44px minmax(0,1.35fr) minmax(0,1.05fr) 140px 156px; }
.listhead.cols-ml .ml-acts-h{ font-size:12px; }
/* 取引先セル：会社名 + 番号/日付/状態の縦積み */
.ml-cust{ min-width:0; display:flex; flex-direction:column; gap:4px; }
.ml-cname{ font-weight:700; font-size:14px; color:var(--ink); line-height:1.35; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.ml-meta{ display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
.ml-no{ font-size:12px; color:var(--faint,#94a3b8); font-weight:500; }
.ml-dt{ font-size:12px; color:var(--soft,#64748b); }
.st-mini{ font-size:10.5px; padding:1px 7px; border-radius:5px; font-weight:600; min-width:0; border-width:1px; }
/* 案件名セル */
.ml-sbj{ min-width:0; display:flex; flex-direction:column; gap:3px; }
.ml-sbjname{ font-size:13.5px; color:var(--ink); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.ml-staff{ font-size:12px; }
/* 金額セル */
.ml-amt{ text-align:right; font-weight:700; font-size:14.5px; white-space:nowrap; }
/* 行内操作アイコン */
.ml-sel{ display:flex; align-items:center; justify-content:center; }
.ml-sel input{ accent-color:var(--blue,#0B6B55); width:16px; height:16px; }
.ml-acts{ display:flex; align-items:center; gap:2px; justify-content:flex-end; }
.ml-act{
  display:inline-flex; align-items:center; justify-content:center;
  width:34px; height:34px; border-radius:8px; color:var(--soft,#64748b);
  text-decoration:none; background:transparent; border:0; cursor:pointer; transition:all .13s;
}
.ml-act:hover{ background:var(--tint,#E2F2EE); color:var(--blue,#0B6B55); }
.ml-act.ml-csv{ width:auto; padding:0 10px; font-size:12px; font-weight:600; border:1px solid var(--line,#dbe2ec); }
.ml-act.ml-csv:hover{ border-color:var(--blue,#0B6B55); }
/* 検索ツールバー */
.ml-toolbar{
  gap:10px; align-items:center; flex-wrap:wrap;
  background:#fff; border:1px solid var(--line,#E4EBF2); border-radius:12px; padding:10px 12px;
}
.ml-searchinput{
  flex:1; min-width:200px; border:0; outline:0; background:transparent;
  font-size:14px; padding:6px 4px; height:auto;
}
.ml-toolbar select{ width:auto; margin:0; }
.ml-searchbtn{ flex:0 0 auto; width:40px; height:40px; padding:0; justify-content:center; }
@media (max-width:860px){
  .listhead.cols-ml{ display:none; }
  .cols-ml, .cols-ml-whs{ grid-template-columns:1fr auto; gap:6px 10px; padding:12px 16px; }
  .cols-ml .ml-sbj, .cols-ml-whs .ml-sbj{ grid-column:1/-1; order:3; }
  .cols-ml .ml-amt, .cols-ml-whs .ml-amt{ text-align:left; }
  .cols-ml .ml-acts, .cols-ml-whs .ml-acts{ grid-column:2; grid-row:1; }
  .cols-ml-whs .ml-sel{ grid-column:1; grid-row:1; justify-content:flex-start; }
}

/* ===== D: 右サイド書類操作パネル（MakeLeaps 風・GLOX ブルー） ===== */
.doc-panel-backdrop{
  position:fixed; inset:0; z-index:90; background:rgba(20,40,75,.22);
  opacity:0; pointer-events:none; transition:opacity .2s;
}
.doc-panel-backdrop.open{ opacity:1; pointer-events:auto; }
.doc-panel{
  position:fixed; top:0; right:0; z-index:91; height:100vh; width:360px; max-width:92vw;
  background:#fff; box-shadow:-12px 0 40px rgba(20,40,75,.18);
  display:flex; flex-direction:column; overflow-y:auto;
  transform:translateX(100%); transition:transform .24s ease;
}
.doc-panel.open{ transform:translateX(0); }
.dp-loading{ padding:24px; color:var(--soft); }
.dp-head{ display:flex; align-items:flex-start; justify-content:space-between; gap:12px; padding:20px 18px 14px; border-bottom:1px solid var(--line); }
.dp-head-main{ min-width:0; display:flex; flex-direction:column; gap:3px; }
.dp-type{ font-size:12px; font-weight:700; letter-spacing:.08em; color:var(--blue); }
.dp-no{ font-size:16px; font-weight:700; color:var(--ink); word-break:break-all; }
.dp-close{ flex:0 0 auto; width:34px; height:34px; border:0; background:var(--bg); border-radius:50%; display:inline-flex; align-items:center; justify-content:center; color:var(--soft); cursor:pointer; }
.dp-close:hover{ background:var(--tint); color:var(--blue); }
.dp-status{ display:flex; align-items:center; gap:10px; padding:12px 18px; }
.dp-items{ display:flex; flex-direction:column; padding:6px 12px; gap:1px; }
.dp-danger{ display:flex; flex-direction:column; padding:10px 12px 22px; margin-top:8px; border-top:1px solid var(--line); gap:1px; }
a.dp-item, button.dp-item{
  display:flex; align-items:center; gap:12px; width:100%; text-align:left; font-family:inherit;
  padding:11px 12px; border:0; background:transparent; border-radius:8px;
  font-size:14.5px; font-weight:500; color:var(--ink); text-decoration:none; cursor:pointer;
}
a.dp-item svg, button.dp-item svg{ flex:0 0 auto; color:var(--soft); }
.dp-item:hover{ background:var(--bg); }
.dp-item:hover svg{ color:var(--blue); }
.dp-item.danger{ color:var(--red); }
.dp-item.danger svg{ color:var(--red); }
.dp-item.danger:hover{ background:#FBECE5; }
.dp-item:disabled{ opacity:.55; cursor:default; }
.dp-glabel{ padding:14px 14px 5px; font-size:11px; font-weight:700; letter-spacing:.09em; color:var(--faint); }
.dp-group{ display:flex; flex-direction:column; gap:1px; }
.dp-sub{ display:flex; flex-direction:column; padding:0 0 4px 14px; gap:1px; }
.dp-sub[hidden]{ display:none; }
.dp-subitem{ padding:9px 12px 9px 10px; font-size:13.5px; }
.dp-bullet{ display:inline-flex; color:var(--faint); }
.dp-subitem:hover .dp-bullet svg{ color:var(--blue); }
button.dp-item.on svg{ color:var(--blue); }
.lrow.sel{ background:var(--tint); box-shadow:inset 3px 0 0 var(--blue); }
.lrow.sel:hover{ background:var(--tint); }
@media (max-width:860px){
  .doc-panel{ width:100vw; max-width:100vw; }
}

/* ===== 入金管理（P0） ===== */
.bm-filter{ display:flex; flex-wrap:wrap; gap:10px; align-items:center; margin-bottom:14px; }
.bm-filter select{ height:var(--h-ctl,40px); border:1px solid var(--line); border-radius:var(--rc,12px); padding:0 10px; background:#fff; min-width:128px; }
.bm-filter input[type=search]{ height:var(--h-ctl,40px); border:1px solid var(--line); border-radius:var(--rc,12px); padding:0 12px; background:#fff; }
.bm-acts{ display:inline-flex; gap:6px; flex-wrap:wrap; }
.bm-in{ color:var(--blue); font-weight:700; }
.bm-out{ color:var(--red); font-weight:600; }

.ba-grid{ display:grid; grid-template-columns:repeat(auto-fill,minmax(240px,1fr)); gap:12px; margin-bottom:16px; }
.ba-card{ border:1px solid var(--line2); border-radius:var(--rc,12px); padding:14px; background:#fff; display:flex; flex-direction:column; gap:6px; }
.ba-top{ display:flex; align-items:center; justify-content:space-between; gap:8px; }
.ba-top b{ font-size:15px; }
.ba-meta{ font-size:13px; color:var(--soft); }
.ba-meta.faint{ color:var(--faint); font-size:12px; }
.ba-act{ display:flex; gap:6px; margin-top:4px; }

.mt-box{ display:flex; align-items:center; gap:14px; border:1px solid var(--line2); border-radius:var(--rc,12px); padding:16px; background:#fff; }
.mt-ico{ flex:0 0 auto; width:44px; height:44px; border-radius:10px; background:#1c2b3a; color:#fff; font-weight:700; font-size:20px; display:grid; place-items:center; }
.mt-body{ flex:1; display:flex; flex-direction:column; gap:4px; }
.mt-body b{ font-size:14.5px; }
.mt-body p{ margin:0; font-size:12.5px; }
.mt-body .chip2{ align-self:flex-start; margin-top:2px; }
.mt-meta{ display:flex; align-items:center; gap:6px; flex-wrap:wrap; margin-top:2px; }
.mt-meta .faint{ font-size:11.5px; }
.mt-acts{ flex:0 0 auto; display:flex; flex-direction:column; gap:6px; }
.mt-acts .btn{ min-width:132px; justify-content:center; }

.imp-sum{ background:var(--bg); border-radius:var(--rc,12px); padding:14px 16px; display:grid; gap:8px; margin:12px 0; }
.imp-sum > div{ display:flex; gap:10px; font-size:13.5px; align-items:baseline; }
.imp-sum .k{ flex:0 0 56px; color:var(--soft); font-size:12px; }

.imp-acc{ display:flex; gap:10px; align-items:center; flex-wrap:wrap; background:var(--tint); border:1px solid var(--line); border-radius:var(--rc,12px); padding:12px 16px; margin-bottom:4px; }
.imp-acc .k{ color:var(--soft); font-size:12px; }
.imp-acc b{ font-size:14.5px; }

.bm-acc{ white-space:nowrap; }
.bm-acts{ display:inline-flex; gap:6px; flex-wrap:nowrap; }

/* 商品ページ：直接編集モード */
.edit-banner{ display:flex; gap:10px; align-items:center; background:var(--tint); border-left:4px solid var(--blue); border-radius:var(--r); padding:12px 16px; margin-bottom:14px; font-size:14px; color:var(--soft); }
.edit-banner b{ color:var(--blue-d); white-space:nowrap; }
.cell-edit{ width:100%; min-width:96px; font:inherit; color:var(--ink); background:#fff; border:1px solid var(--line); border-radius:8px; padding:7px 9px; }
.cell-edit:focus{ outline:none; border-color:var(--blue); box-shadow:0 0 0 2px rgba(0,61,165,.14); }
.cell-edit[inputmode="decimal"]{ text-align:right; }
.tbl td:has(.cell-edit){ padding:6px 8px; }
/* 書類一覧：テーブル型（MakeLeaps風の構造、GLOX青） */
.doc-tbl .cell-cname{ font-weight:600; color:var(--ink); }
.doc-tbl .cell-subj{ font-size:12.5px; color:var(--soft); margin-top:2px; }
.doc-tbl .cell-subj .cell-edit{ margin-top:2px; }
.docnum-link{ color:var(--blue); font-weight:600; text-decoration:none; white-space:nowrap; }
.docnum-link:hover{ text-decoration:underline; color:var(--blue-d); }
.doc-tbl td.num{ white-space:nowrap; }
.btn.ghost.active{ border-color:var(--blue); color:var(--blue); background:var(--tint); }
.pagehead .bar > .btn, .pagehead .bar > a.btn, .pagehead .bar > .newmenu{ flex:1 1 0; }
.pagehead .bar > .btn, .pagehead .bar > a.btn, .pagehead .bar > .newmenu > .btn{ justify-content:center; white-space:nowrap; }
.pagehead .bar > .newmenu > .btn{ width:100%; }
