:root{ --primary:#1f3a5f; }
:root{ --primary:#1f3a5f; }

/* admin UI components */
.c-search{ margin-top:12px; }
.c-search{ overflow-x:auto; }
.c-search__row{ display:flex; gap:8px; flex-wrap:wrap; align-items:center; }
.c-search__row .c-input{ min-width:160px; width:auto; flex:0 1 260px; }
.c-search__row .c-select{ min-width:120px; }
.c-search__row .c-btn{ white-space:nowrap; }

/* billing controls: month selector + draft generation button */
.c-billing-controls{ display:flex; gap:12px; flex-wrap:wrap; align-items:center; justify-content:space-between; margin-top:12px; }
.c-billing-controls .c-search{ margin:0; }

/* 一覧の操作ボタンを横並びに収める */
.c-btn--xs{
  padding: 4px 8px;
  font-size: 12px;
  line-height: 1.1;
  white-space: nowrap;
  min-width: auto;
  width: auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

/* 一覧の「操作」列はボタンを詰めて横並びにする */
.c-actions--row{ flex-wrap:nowrap; }
.c-actions--row .c-btn{ min-width:auto; width:auto; padding-left:8px; padding-right:8px; }

/* 情報バッジ */
.c-badge--info{
  background: #e0f2fe;
  color: #075985;
}
.c-select{
  border:1px solid var(--border);
  border-radius:12px;
  padding:10px 12px;
  background:#fff;
  min-width:140px;
}
.c-select--xs{ min-width:0; max-width:140px; }

/* bank suggest: keep dropdown attached to input */
.bank-suggest-wrap{ position:relative; }
.c-tablewrap{ overflow:auto; margin-top:12px; }
.c-table{ width:100%; border-collapse:separate; border-spacing:0; min-width:860px; }
.c-table th,.c-table td{ padding:10px 10px; border-bottom:1px solid var(--border); text-align:left;  }
.c-table thead th{ position:sticky; top:0; background:#fff; z-index:1; }
.c-muted{ color:var(--muted); }
.c-badge{
  display:inline-block;
  padding:3px 10px;
  border-radius:999px;
  border:1px solid var(--border);
  font-size:12px;
  background:#fff;
}
.c-badge--muted{ color:var(--muted); background:#f9fafb; }
.c-badge--warn{ border-color:#fda29b; background:#fffbeb; }
.c-badge--ok{ border-color:#86efac; background:#f0fdf4; }
.c-badge--ng{ border-color:#fda29b; background:#fef2f2; }

/* 依頼ステータス色分け（一覧の視認性） */
.c-badge--status-new{ border-color:#93c5fd; background:#eff6ff; }
.c-badge--status-cic_wait{ border-color:#fdba74; background:#fff7ed; }
.c-badge--status-cic_done{ border-color:#86efac; background:#f0fdf4; }
.c-badge--status-apply{ border-color:#c4b5fd; background:#f5f3ff; }
.c-badge--status-contract{ border-color:#5eead4; background:#f0fdfa; }
.c-badge--status-funding_reported{ border-color:#cbd5e1; background:#f8fafc; }

/* 添付状態表示 */
.c-filegrid{ display:grid; grid-template-columns: 1fr 1fr; gap:10px; }
@media (max-width: 767px){ .c-filegrid{ grid-template-columns: 1fr; } }
.c-filemeta{ display:flex; gap:8px; align-items:center; margin:6px 0 8px 0; font-size:13px; }
.c-filemeta a{ color:var(--text); }
.c-headrow{ display:flex; justify-content:space-between; gap:12px; align-items:flex-start; }
.c-headrow__actions{ display:flex; gap:8px; }
.c-grid{ display:grid; gap:12px; grid-template-columns: 1fr; margin-top:12px; }
@media (min-width: 980px){
  .c-grid{ grid-template-columns: 1fr 1fr; }
}
.c-card--sub{ box-shadow:none; }
.c-h2{ margin:0 0 10px 0; font-size:16px; }
.c-kv{ display:flex; justify-content:space-between; gap:10px; border-bottom:1px dashed var(--border); padding:6px 0; }
.c-kv span:first-child{ color:var(--muted); min-width:110px; }
.c-pre{ white-space:pre-wrap; text-align:right; }
.c-strong{ font-weight:800; }
.c-note{ margin:10px 0 0 0; color:var(--muted); font-size:12px; }
.c-list{ margin:0; padding-left:18px; }
.c-list__title{ font-weight:700; }

/* --------------------------------------------------
   加盟店マスタ（提示HTMLに合わせたフォームUI）
   -------------------------------------------------- */
.form-section{ background:#fff; border:1px solid var(--border); border-radius:16px; padding:14px; box-shadow:0 2px 10px rgba(0,0,0,.04); }
.form-section + .form-section{ margin-top:14px; }
.form-section.company{ box-shadow:none; margin-top:14px; background:rgba(46,125,50,.04); border-color:rgba(46,125,50,.22); }
.section-head{ display:flex; align-items:baseline; justify-content:space-between; gap:12px; margin-bottom:10px; }
.section-head h2{ margin:0; font-size:16px; }
.section-head .sub{ color:var(--muted); font-size:12px; }

.form-grid{ display:flex; flex-direction:column; gap:12px; }
.field{ display:flex; flex-direction:column; gap:6px; }
.field.full{ width:100%; }
.row2{ display:grid; grid-template-columns: 1fr 1fr; gap:12px; }
@media (max-width: 767px){ .row2{ grid-template-columns:1fr; } }

.addr-row{ display:grid; grid-template-columns: 1fr 1fr 1fr; gap:12px; align-items:start; }
@media (max-width: 767px){ .addr-row{ grid-template-columns:1fr; } }

.zip-row{ display:flex; gap:8px; align-items:center; }
.zip-row input{ flex:1; }

.mini{ color:var(--muted); font-size:12px; }
.badge{ display:inline-block; padding:2px 8px; border-radius:999px; border:1px solid var(--border); font-size:11px; background:#f9fafb; }

/* buttons (HTMLの .btn.small 系) */
.btn{ display:inline-flex; align-items:center; justify-content:center; gap:6px; border-radius:12px; border:1px solid var(--border); padding:10px 14px; background:#fff; color:var(--text); text-decoration:none; cursor:pointer; font-weight:700; }
.btn.small{ padding:9px 12px; font-size:13px; }
.btn.xs{ padding:7px 10px; font-size:12px; border-radius:10px; }
.btn.primary{ background:var(--primary); border-color:var(--primary); color:#fff; }
.btn.ghost{ background:#fff; color:var(--text); }
.actions.dual{ display:flex; gap:10px; justify-content:space-between; margin-top:14px; }
.actions.dual .btn{ min-width:140px; }
@media (max-width: 767px){ .actions.dual{ flex-direction:column; } .actions.dual .btn{ width:100%; } }

/* inputs/selects to match portal base */
.form-section input[type="text"],
.form-section input[type="password"],
.form-section select,
.form-section textarea{
  border:1px solid var(--border);
  border-radius:12px;
  padding:10px 12px;
  background:#fff;
  font-size:16px;
}
.form-section textarea{ resize:vertical; }

.bank-wrap{ position:relative; }
.bank-suggest{ position:absolute; top:100%; left:0; right:0; z-index:10; }



/* ===== UI polish (colors / tables / display) ===== */
:root{
  --bg:#f6f8fb;
  --card:#ffffff;
  --text:#0f172a;
  --muted:#64748b;
  --border:#d7dee9;
  --primary:#2563eb;
  --primary-weak:#e8f0ff;
  --warn:#f59e0b;
  --warn-weak:#fff7ed;
  --danger:#dc2626;
  --danger-weak:#fff1f2;
  --ok:#16a34a;
  --ok-weak:#ecfdf5;
}

body{ background:var(--bg); color:var(--text); }
.site-header{ background:linear-gradient(90deg, #0b2a45, #1f3a5f); box-shadow:0 6px 18px rgba(15,23,42,.08); }
.brand-sub{ color:rgba(255,255,255,.85); }

.form-section{
  background:var(--card);
  border:1px solid var(--border);
  border-radius:14px;
  box-shadow:0 8px 24px rgba(15,23,42,.06);
}
.form-section .section-head{
  padding:14px 16px;
  border-bottom:1px solid var(--border);
  background:linear-gradient(180deg, var(--primary-weak), rgba(255,255,255,0));
}
.form-section.company .section-head{
  /* 不動産会社登録フォーム：グラデーション無し（統一感優先） */
  background:var(--card);
}
.section-head h2{ margin:0; font-size:16px; }
.section-head .sub{ color:var(--muted); margin-top:4px; font-size:12px; }

.badge{
  display:inline-flex;
  align-items:center;
  padding:2px 8px;
  border-radius:999px;
  background:var(--primary-weak);
  color:var(--primary);
  border:1px solid rgba(37,99,235,.25);
  font-size:11px;
  font-weight:700;
}

.btn{
  border-radius:999px;
  border:1px solid rgba(255,255,255,.18);
  transition: background .15s ease, transform .05s ease, box-shadow .15s ease, border-color .15s ease;
}
.btn:hover{ transform:translateY(-1px); box-shadow:0 10px 18px rgba(15,23,42,.10); }
.btn.primary{ background:var(--primary); border-color:rgba(37,99,235,.65); }
.btn.primary:hover{ background:#1d4ed8; }
.btn.ghost{ background:transparent; border-color:rgba(255,255,255,.24); }
.btn.small.ghost{ color:#fff; }

.form-section input,
.form-section select,
.form-section textarea{
  background:#fff;
  border:1px solid var(--border);
  border-radius:12px;
  padding:10px 12px;
  outline:none;
}
.form-section input:focus,
.form-section select:focus,
.form-section textarea:focus{
  border-color:rgba(37,99,235,.55);
  box-shadow:0 0 0 4px rgba(37,99,235,.12);
}

/* bank suggest */
.bank-wrap{ position:relative; }
#bankInput{ width:100%; } /* bank input CSS fix */
.bank-suggest{
  display:none;
  position:absolute;
  top:calc(100% + 6px);
  left:0;
  right:0;
  background:#fff;
  border:1px solid var(--border);
  border-radius:12px;
  box-shadow:0 18px 30px rgba(15,23,42,.12);
  padding:6px;
  max-height:220px;
  overflow:auto;
  z-index:30;
}
.bank-suggest__item{
  width:100%;
  text-align:left;
  padding:10px 10px;
  border-radius:10px;
  border:1px solid transparent;
  background:transparent;
  cursor:pointer;
  font-size:14px;
}
.bank-suggest__item:hover{
  background:var(--primary-weak);
  border-color:rgba(37,99,235,.22);
}

/* display-only fields (detail view) */
.display{
  border:1px solid var(--border);
  border-radius:12px;
  padding:10px 12px;
  background:linear-gradient(180deg, #ffffff, #f8fafc);
  color:var(--text);
  min-height:42px;
  display:flex;
  align-items:center;
}
.display.mono{ font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; }

/* tables: striping + hover */
table{ background:var(--card); border-radius:14px; overflow:hidden; }
table thead th{ background:#f1f5f9; color:#0f172a; }
table tbody tr:nth-child(even){ background:#f8fafc; }
table tbody tr:hover{ background:var(--primary-weak); }
table tbody td, table thead th{ transition: background .12s ease; }

/* status chips (if any) */
.chip.ok{ background:var(--ok-weak); border-color:rgba(22,163,74,.25); color:var(--ok); }
.chip.warn{ background:var(--warn-weak); border-color:rgba(245,158,11,.25); color:var(--warn); }
.chip.danger{ background:var(--danger-weak); border-color:rgba(220,38,38,.25); color:var(--danger); }


/* suggest (reusable) */
.bank-wrap{ position: relative; }
.bank-suggest{ position:absolute; left:0; right:0; top:100%; z-index:50; margin-top:4px; display:none; }
.bank-suggest .suggest-list{ background:#fff; border:1px solid #d0d7de; border-radius:10px; box-shadow:0 10px 30px rgba(0,0,0,.10); overflow:hidden; }
.bank-suggest .suggest-item{ width:100%; text-align:left; padding:10px 12px; background:#fff; border:0; cursor:pointer; font-size:14px; }
.bank-suggest .suggest-item + .suggest-item{ border-top:1px solid #eef2f6; }
.bank-suggest .suggest-item:hover, .bank-suggest .suggest-item.is-active{ background:#f1f8ff; }

/* alerts */
.alert{border:1px solid var(--border,#d0d7de); border-radius:12px; padding:12px 14px; background:#fff;}
.alert-title{font-weight:800; margin-bottom:6px;}
.alert-list{margin:0; padding-left:18px;}
.alert.warn{border-color:#f2c94c; background:#fff7db;}
/* =========================
   actions（戻る／保存）
========================= */
.actions.dual{
  display:flex;
  gap:12px;
  justify-content:space-between;
  align-items:center;
  margin-top:20px;
}
.actions.dual .btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:40px;
  padding:10px 16px;
  border-radius:10px;
  text-decoration:none;
  white-space:nowrap;
}
.actions.dual .btn.ghost{
  background:#ffffff;
  color:#111111;
  border:1px solid #cccccc;
}
.actions.dual .btn.primary{
  background:#2563eb;
  color:#ffffff;
  border:1px solid rgba(0,0,0,.05);
}
.actions.dual .btn:hover{
  filter:brightness(0.97);
}
@media (max-width: 767px){
  .actions.dual{
    flex-direction:column;
  }
  .actions.dual .btn{
    width:100%;
  }
}
/* =========================
   table visibility
========================= */
.table tbody tr:nth-child(even){
  background:#fafafa;
}
.table tbody tr:hover{
  background:#eef5ff;
}


/* ===== 金消契約前の情報入力（確認）: admin/pre_contract_review ===== */
.pre-contract-review .pc-form{ margin-top:14px; }
.pre-contract-review .pc-section{
  margin: 18px 0;
  padding: 18px 16px;
  background: #f8fafc;
  border: 1px solid var(--border);
  border-radius: 12px;
}
.pre-contract-review .pc-section__title{
  margin: 0 0 10px 0;
  font-size: 16px;
  font-weight: 800;
}
.pre-contract-review .pc-section__note{
  margin: 0 0 14px 0;
  color: var(--muted);
  font-size: 13px;
}
.pre-contract-review .pc-subsection{
  margin-top: 12px;
  padding: 14px 14px;
  background: #fff;
  border: 1px dashed var(--border);
  border-radius: 12px;
}
.pre-contract-review .pc-subsection__title{
  margin: 0 0 12px 0;
  font-size: 14px;
  font-weight: 800;
}


.c-input--num-sm{
  max-width: 140px;
}


.c-sectionbox{ background:#f8fafc; border:1px solid var(--border); border-radius:var(--radius); padding:16px; margin:16px 0; }
.c-sectionbox__title{ margin:0 0 12px 0; font-size:16px; font-weight:800; }



/* 表（テーブル）内のボタンで余白が伸びないようにする */
.c-table .c-btn{ margin:0 !important; }
.c-table .c-actions{ margin:0 !important; }


/* CIC memo tooltip */
.c-cicTip{cursor:help;display:inline-block}

/* CIC memo tooltip (multiline) */
.c-cicTip{position:relative;cursor:help;display:inline-block}
.c-cicTip[data-tip]::after{
  content: attr(data-tip);
  position:absolute;
  left:50%;
  bottom:calc(100% + 10px);
  transform:translateX(-50%);
  min-width:220px;
  max-width:520px;
  padding:10px 12px;
  border-radius:10px;
  background:#111;
  color:#fff;
  font-size:12px;
  line-height:1.4;
  white-space:pre-wrap;
  box-shadow:0 10px 24px rgba(0,0,0,.22);
  opacity:0;
  pointer-events:none;
  transition:opacity .15s ease;
  z-index:9999;
}
.c-cicTip[data-tip]::before{
  content:"";
  position:absolute;
  left:50%;
  bottom:calc(100% + 2px);
  transform:translateX(-50%);
  border:8px solid transparent;
  border-top-color:#111;
  opacity:0;
  transition:opacity .15s ease;
  z-index:9999;
}
.c-cicTip:hover::after,
.c-cicTip:hover::before{
  opacity:1;
}


/* 金消契約前 確認画面：入力不可（管理者メモ以外は閲覧のみ） */
.pc-readonly{ border:0; padding:0; margin:0; }
.pc-form fieldset[disabled] .c-input,
.pc-form fieldset[disabled] .c-select,
.pc-form fieldset[disabled] .c-textarea{
  background:#f8fafc;
  color:#0f172a;
}
.pc-form fieldset[disabled] .c-input,
.pc-form fieldset[disabled] .c-select{
  pointer-events:none;
}


/* ===== actions emphasis ===== */
.c-btn--danger{
  background: var(--danger);
  color: #fff;
  border-color: transparent;
  box-shadow: 0 10px 20px rgba(220,38,38,.18);
}
.c-btn--danger:hover{ filter: brightness(.97); }

.c-btn--lg{
  padding: 14px 22px;
  font-size: 16px;
  border-radius: 14px;
  min-height: 50px;
}

.c-section--cta{
  border: 1px solid rgba(37,99,235,.22);
  background: linear-gradient(180deg, rgba(37,99,235,.08), rgba(255,255,255,0));
}

.c-ctaCenter{
  margin-top: 12px;
  text-align: center;
}

/* 差し戻し理由セクション：背景色で注意喚起 */
.c-section--returnReason{
  background:#fff6f6;
  border:1px solid #f1caca;
  border-radius:12px;
  padding:14px;
}

/* 確認OK（PDF送付）をカード外へ強調表示 */
.c-approveForm{ margin-top: 18px; }
.c-approveSection{
  background:#fff;
  border:2px solid rgba(37,99,235,.22);
  border-radius:16px;
  padding:18px;
  max-width: 860px;
  margin: 0 auto;
}
.c-approveSection__title{
  font-size: 1.1rem;
  font-weight: 700;
  margin: 0;
}
.c-approveSection__center{
  display:flex;
  justify-content:center;
  margin-top:14px;
}


/* ===== stable layout wrappers ===== */
.c-cardSection{
  padding: 14px;
  border: 1px solid rgba(15,23,42,.08);
  border-radius: 16px;
  background: #fff;
  box-shadow: 0 8px 24px rgba(15,23,42,.06);
}

/* back button (same as other pages) */
.c-btn--back{
  background:#f3f4f6;
  color:#111;
  border:1px solid #d1d5db;
}
.c-btn--back:hover{ background:#e5e7eb; }


/* Back button at very bottom (below approve section) */
.c-actions--afterApprove{ margin-top: 40px; }


/* ---- pre_contract_review layout helpers ---- */
.c-card__footer--left{
  display:flex;
  justify-content:flex-start;
  margin-top:24px;
}
.c-card__footer--center{
  display:flex;
  justify-content:center;
  margin-top:18px;
}
.pre-contract-returnCard{
  margin-top:18px;
}
.pre-contract-approveCard{
  margin-top:18px;
}


/* Download button (PDF DL) */
.c-btn--download{
  position: static;
  padding-left: 14px;
}
.c-btn--download:before{
  content:none;
  display:none;
}


/* fix73 */
.c-search .c-search__row{flex-direction:row !important; align-items:center;}
.c-search .c-search__row > *{margin-top:0 !important;}


/* fix74 */
.c-search__row{display:flex !important; flex-direction:row !important; flex-wrap:nowrap !important; align-items:center !important;}
.c-search__row .c-input, .c-search__row .c-select{flex:0 0 auto !important; width:auto !important;}
.c-search__row .c-btn{flex:0 0 auto !important;}


/* fix75 search horizontal */
.c-search__row{
  display:flex !important;
  flex-direction:row !important;
  flex-wrap:nowrap !important;
  align-items:center !important;
}
.c-search__row .c-input,
.c-search__row .c-select,
.c-search__row .c-btn{
  flex:0 0 auto !important;
  width:auto !important;
}







/* === fix127: restore section separation for .p-section (admin/company forms) === */
.p-section{
  border:1px solid var(--border);
  border-radius:var(--radius);
  background:#fff;
  padding:16px;
}
.p-section + .p-section{ margin-top:14px; }
.p-section__title{
  margin:0 0 10px 0;
  font-size:16px;
  font-weight:800;
  border-left:4px solid var(--primary);
  padding-left:10px;
}



/* === fix136: force p-section separation (admin/company/cic) === */
body[data-portal="admin"] .p-section,
body[data-portal="company"] .p-section,
body[data-portal="cic"] .p-section{
  border:1px solid var(--border) !important;
  border-radius:var(--radius) !important;
  background:#fff !important;
  padding:16px !important;
}
body[data-portal="admin"] .p-section + .p-section,
body[data-portal="company"] .p-section + .p-section,
body[data-portal="cic"] .p-section + .p-section{
  margin-top:14px !important;
}
body[data-portal="admin"] .p-section__title,
body[data-portal="company"] .p-section__title,
body[data-portal="cic"] .p-section__title{
  margin:0 0 10px 0 !important;
  font-size:16px !important;
  font-weight:800 !important;
  border-left:4px solid var(--primary) !important;
  padding-left:10px !important;
}



.c-actionStack--companyLinks{ display:flex; gap:8px; flex-wrap:wrap; }
.c-mailIcon{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:36px;
  height:36px;
  border:1px solid var(--border);
  border-radius:10px;
  background:#fff;
  text-decoration:none;
  box-shadow:0 2px 6px rgba(15,23,42,.06);
}
.c-mailIcon::before{
  content:'✉';
  font-size:16px;
  line-height:1;
  color:var(--primary);
}
.c-mailIcon:hover{ background:var(--primary-weak); border-color:rgba(37,99,235,.25); }

.c-badge--status-new-compact{
  min-width: 34px;
  padding: 0;
  height: 22px;
  border-color:#bfdbfe;
  background:#dbeafe;
  color:transparent;
  vertical-align:middle;
}


.c-statusCell--new{
  background:#fff8cc;
}
.c-statusCell--new .c-statusline{
  min-height:22px;
}
.c-statusText{
  display:inline-block;
  font-weight:700;
  color:#1d4ed8;
}


/* fix204: admin依頼一覧の横幅節約 */
.c-row--new > td{
  background:#fff9db;
}
.c-row--new:hover > td{
  background:#fff4bf;
}
.c-table--list .c-statusline{
  display:flex;
  align-items:center;
  gap:4px;
  flex-wrap:wrap;
}
.c-table--list .c-badge,
.c-table--list .c-statusline .c-badge,
.c-table--list .c-cicTip .c-badge{
  font-size:11px;
  line-height:1.1;
  padding:2px 6px;
  min-height:18px;
  border-radius:999px;
}
.c-table--list .c-actions .c-btn--xs{
  min-width:30px;
  padding:5px 8px;
  font-size:11px;
}
.c-badge--compactWrap .c-badge{
  font-size:11px;
  padding:2px 6px;
}


/* === audit logs readability === */
.c-logPage .c-text{ margin-top:4px; }
.c-logSearch{ overflow:visible !important; }
.c-logSearch__row{
  display:grid !important;
  grid-template-columns: repeat(6, minmax(120px, 1fr)) auto;
  gap:8px;
  align-items:center !important;
  flex-wrap:wrap !important;
}
.c-logSearch__row .c-input,
.c-logSearch__row .c-select{
  width:100% !important;
  min-width:0 !important;
  flex:none !important;
}
.c-logSearch__actions{ display:flex; gap:8px; justify-content:flex-end; }
@media (max-width: 1100px){
  .c-logSearch__row{ grid-template-columns: repeat(3, minmax(140px, 1fr)); }
  .c-logSearch__actions{ justify-content:flex-start; }
}
@media (max-width: 720px){
  .c-logSearch__row{ grid-template-columns: 1fr; }
}
.c-logList{ margin-top:12px; display:grid; gap:10px; }
.c-logEmpty{ padding:16px; border:1px solid var(--border); border-radius:12px; background:#fff; color:var(--muted); font-size:12px; }
.c-logItem{ border:1px solid var(--border); border-radius:12px; background:#fff; overflow:hidden; }
.c-logItem__summary{ list-style:none; cursor:pointer; padding:10px 12px; }
.c-logItem__summary::-webkit-details-marker{ display:none; }
.c-logItem__top{ display:flex; align-items:center; gap:8px; margin-bottom:6px; }
.c-logItem__date{ font-size:11px; color:var(--muted); white-space:nowrap; }
.c-logItem__badge{ font-size:10px; padding:2px 8px; }
.c-logItem__main{ display:flex; align-items:baseline; gap:8px; flex-wrap:wrap; }
.c-logItem__actor{ font-size:13px; font-weight:700; color:var(--text); }
.c-logItem__type{ font-size:11px; color:var(--muted); }
.c-logItem__text{ font-size:12px; color:var(--text); }
.c-logItem__detail{ border-top:1px solid var(--border); padding:10px 12px 12px; background:#fcfcfd; }
.c-logDetail{ margin:0; display:grid; gap:8px; }
.c-logDetail__row{ display:grid; grid-template-columns: 120px 1fr; gap:10px; align-items:start; }
.c-logDetail dt{ margin:0; font-size:11px; color:var(--muted); }
.c-logDetail dd{ margin:0; font-size:12px; color:var(--text); word-break:break-word; }
@media (max-width: 640px){
  .c-logDetail__row{ grid-template-columns: 1fr; gap:2px; }
}

.c-logItem{ position:relative; border-left:4px solid #cbd5e1; box-shadow:0 1px 2px rgba(15,23,42,.04); }
.c-logItem:hover{ box-shadow:0 4px 14px rgba(15,23,42,.08); }
.c-logItem.is-admin{ border-left-color:#2563eb; }
.c-logItem.is-company{ border-left-color:#16a34a; }
.c-logItem.is-tobiru{ border-left-color:#7c3aed; }
.c-logItem.is-system{ border-left-color:#64748b; }
.c-logItem__summary{ background:linear-gradient(180deg,#ffffff 0%,#f8fafc 100%); }
.c-logItem__badge{ border:1px solid transparent; }
.c-logItem__badge.is-auth{ background:#eff6ff; color:#1d4ed8; border-color:#bfdbfe; }
.c-logItem__badge.is-cic{ background:#f5f3ff; color:#6d28d9; border-color:#ddd6fe; }
.c-logItem__badge.is-billing{ background:#fff7ed; color:#c2410c; border-color:#fed7aa; }
.c-logItem__badge.is-funding{ background:#ecfdf5; color:#047857; border-color:#a7f3d0; }
.c-logItem__badge.is-pre{ background:#fefce8; color:#a16207; border-color:#fde68a; }
.c-logItem__badge.is-doc{ background:#eef2ff; color:#4338ca; border-color:#c7d2fe; }
.c-logItem__badge.is-request{ background:#eff6ff; color:#0369a1; border-color:#bae6fd; }
.c-logItem__badge.is-other{ background:#f8fafc; color:#475569; border-color:#cbd5e1; }
.c-logItem__main{ row-gap:4px; }
.c-logItem__actor{ font-size:12px; }
.c-logItem__type{ display:inline-flex; align-items:center; padding:1px 6px; border-radius:999px; background:#f8fafc; font-size:10px; }
.c-logItem__type.is-admin{ background:#dbeafe; color:#1d4ed8; }
.c-logItem__type.is-company{ background:#dcfce7; color:#15803d; }
.c-logItem__type.is-tobiru{ background:#ede9fe; color:#7c3aed; }
.c-logItem__type.is-system{ background:#e2e8f0; color:#475569; }
.c-logItem__text{ font-size:11px; font-weight:600; }
.c-logItem__target{ margin-top:6px; padding:6px 8px; border-radius:8px; background:#f8fafc; color:#334155; font-size:11px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.c-logItem__detail{ background:#fbfdff; }
.c-logDetail dt{ font-size:10px; }
.c-logDetail dd{ font-size:11px; }


/* v25: 管理画面・申込フォーム共通 添付UI */
.c-filegrid--onecol{
  display:grid;
  grid-template-columns:1fr;
  gap:14px;
}
.c-identityNotice{
  display:block !important;
  margin:10px 0 0 0 !important;
  padding:0 !important;
  border:0 !important;
  border-left:0 !important;
  border-radius:0 !important;
  background:transparent !important;
  color:#d32f2f !important;
  font-size:13px !important;
  font-weight:900 !important;
  line-height:1.6 !important;
}
.c-uploadCard{
  position:relative !important;
  display:block !important;
  border:2px dashed rgba(37,99,235,.34) !important;
  border-radius:16px !important;
  background:#fff !important;
  padding:16px !important;
  box-shadow:none !important;
  cursor:pointer !important;
  transition:background .15s ease,border-color .15s ease !important;
}
.c-uploadCard:hover,
.c-uploadCard.is-dragover{
  background:#f8fbff !important;
  border-color:#2563eb !important;
}
.c-uploadCard.is-has-current{
  cursor:default !important;
  border-style:dashed !important;
  background:#fff !important;
}
.c-uploadCard__input{
  position:absolute !important;
  width:1px !important;
  height:1px !important;
  opacity:0 !important;
  pointer-events:none !important;
}
.c-uploadCard__top{
  display:flex !important;
  align-items:flex-start !important;
  justify-content:space-between !important;
  gap:12px !important;
  margin:0 0 10px 0 !important;
}
.c-uploadCard__main{
  min-width:0 !important;
  flex:1 1 auto !important;
}
.c-uploadCard__title{
  font-size:15px !important;
  font-weight:900 !important;
  color:#0f172a !important;
  line-height:1.45 !important;
}
.c-uploadCard__hint{
  margin-top:2px !important;
  font-size:12px !important;
  color:#64748b !important;
  line-height:1.5 !important;
}
.c-uploadCard__badge{
  flex:0 0 auto !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  min-height:24px !important;
  padding:4px 9px !important;
  border-radius:999px !important;
  background:#e0f2fe !important;
  color:#0369a1 !important;
  font-size:12px !important;
  font-weight:900 !important;
  white-space:nowrap !important;
}
.c-uploadCard__badge--optional{background:#f1f5f9 !important;color:#475569 !important;}
.c-uploadCard__badge--required{background:#fee2e2 !important;color:#b91c1c !important;}
.c-uploadCard__badge--license{background:#fef3c7 !important;color:#92400e !important;}
.c-uploadCard__state{ margin-top:0 !important; }
.c-uploadEmpty{
  display:block !important;
  min-height:auto !important;
  padding:14px 8px !important;
  text-align:center !important;
  color:#475569 !important;
  font-size:14px !important;
  font-weight:800 !important;
}
.c-uploadEmpty[hidden]{ display:none !important; }
.c-uploadCurrent,
.c-selectedFile{
  display:flex !important;
  align-items:center !important;
  justify-content:space-between !important;
  gap:10px !important;
  min-width:0 !important;
  padding:0 !important;
  border:0 !important;
  border-radius:0 !important;
  background:transparent !important;
}
.c-selectedFile[hidden]{ display:none !important; }
.c-uploadCurrent__name,
.c-selectedFile__name{
  min-width:0 !important;
  flex:1 1 auto !important;
  overflow:hidden !important;
  text-overflow:ellipsis !important;
  white-space:nowrap !important;
  font-size:14px !important;
  font-weight:800 !important;
  color:#0f172a !important;
}
.c-uploadCurrent__name a{ color:#0f172a !important; text-decoration:underline !important; }
.c-uploadCurrent__delete,
.c-selectedFile__clear{
  flex:0 0 auto !important;
  border:0 !important;
  border-radius:10px !important;
  padding:9px 12px !important;
  font-size:13px !important;
  font-weight:900 !important;
  cursor:pointer !important;
  line-height:1 !important;
  background:#dc2626 !important;
  color:#fff !important;
}
.c-uploadCurrent__delete:hover,
.c-selectedFile__clear:hover{ filter:brightness(.95) !important; }
@media (max-width:767px){
  .c-identityNotice{ font-size:12px !important; }
  .c-uploadCard{ padding:16px 14px 14px !important; border-radius:16px !important; }
  .c-uploadCard__title{ font-size:14px !important; }
  .c-uploadCard__hint{ font-size:11px !important; }
  .c-uploadCard__badge{ font-size:11px !important; padding:4px 8px !important; }
  .c-uploadCurrent,
  .c-selectedFile{ align-items:flex-start !important; flex-wrap:wrap !important; }
  .c-uploadCurrent__name,
  .c-selectedFile__name{ white-space:normal !important; overflow-wrap:anywhere !important; }
  .c-uploadCurrent__delete,
  .c-selectedFile__clear{ flex:1 1 100% !important; min-height:42px !important; }
}



/* pre-contract-nonbank-one-line-fix */
.c-nonbankCheck > span,
.c-adminNonbankCheck > span {
  display:inline-flex;
  align-items:center;
  gap:8px;
  flex-wrap:nowrap;
  white-space:nowrap;
}
.c-nonbankCheck__note,
.c-adminNonbankCheck__note {
  display:inline;
  margin-left:0;
  white-space:nowrap;
}
.c-card--precontract .c-display,
.c-card--precontract .c-layer,
.pre-contract-review .c-layer {
  min-height:42px;
  display:flex;
  align-items:center;
  box-sizing:border-box;
}

/* nonbank-save-display-fixed */
.c-nonbankBadge {
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:7px 12px;
  border-radius:999px;
  font-weight:700;
  line-height:1.25;
  white-space:nowrap;
}
.c-nonbankBadge--on {
  background:#fee2e2;
  color:#991b1b;
  border:1px solid #fecaca;
}
.c-nonbankBadge--off {
  background:#f1f5f9;
  color:#94a3b8;
  border:1px solid #e2e8f0;
  opacity:.72;
}
.c-nonbankCheck > span,
.c-adminNonbankCheck > span {
  display:inline-flex;
  align-items:center;
  gap:8px;
  flex-wrap:nowrap;
  white-space:nowrap;
}
.c-nonbankCheck__note,
.c-adminNonbankCheck__note {
  white-space:nowrap;
}

/* nonbank-db-display-fixed */
.c-nonbankBadge--on {
  background:#e0f2fe !important;
  color:#075985 !important;
  border:1px solid #7dd3fc !important;
}
.c-nonbankBadge--off {
  background:#f1f5f9 !important;
  color:#94a3b8 !important;
  border:1px solid #e2e8f0 !important;
  opacity:.72;
}
.pre-contract-review .c-layer,
.pre-contract-review .c-input--static,
.pre-contract-review .c-display,
.c-card--precontract .c-layer,
.c-card--precontract .c-input--static,
.c-card--precontract .c-display,
.c-cardSection .c-layer,
.c-cardSection .c-input--static,
.c-cardSection .c-display {
  min-height:42px !important;
  display:flex;
  align-items:center;
  box-sizing:border-box;
}

/* funding send locked */
.c-btn[disabled],
.c-btn[aria-disabled="true"]{
  opacity:.55;
  cursor:not-allowed;
  filter:grayscale(.25);
}
.c-help--send-locked{
  margin-top:8px;
  color:#b45309;
  font-weight:700;
  font-size:12px;
}

.c-sendBlock{
  display:inline-flex;
  flex-direction:column;
  align-items:stretch;
  gap:6px;
}
.c-sendBlock .c-help--send-locked{
  max-width:260px;
  line-height:1.5;
}

/* Buttons inline, help full width below */
.c-actions__buttons{
  display:inline-flex;
  gap:10px;
  align-items:center;
}
.c-help--full{
  margin-top:8px;
  width:100%;
}

.c-grid3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.c-grid3.c-grid2--compact{align-items:start}@media(max-width:760px){.c-grid3{grid-template-columns:1fr}}


/* 追加添付書類：PCは2カラム、スマホは1カラム */
.c-filegrid--docs2{
  display:grid !important;
  grid-template-columns:repeat(2, minmax(0, 1fr)) !important;
  gap:12px !important;
}
@media (max-width: 767px){
  .c-filegrid--docs2{ grid-template-columns:1fr !important; }
}
.c-filepanel{
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:10px;
}
@media (max-width: 767px){
  .c-filepanel{ grid-template-columns:1fr; }
}


/* 添付書類：申込フォーム・修正フォーム・詳細画面の2カラム統一 */
.c-filegrid--docs2,
.c-filepanel--docs2{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
}
.c-uploadCard--spacer,
.c-fileitem--spacer{
  visibility:hidden;
  min-height:1px;
  padding:0!important;
  border:0!important;
  background:transparent!important;
  box-shadow:none!important;
}
@media (max-width: 760px){
  .c-filegrid--docs2,
  .c-filepanel--docs2{grid-template-columns:1fr;}
  .c-uploadCard--spacer,
  .c-fileitem--spacer{display:none!important;}
}

/* CIC依頼：免許証添付時の免許証番号必須注意 */
.c-licenseRequiredNote{
  margin:8px 0 0;
  padding:10px 12px;
  border-radius:10px;
  background:#fff7ed;
  border:1px solid #fdba74;
  color:#9a3412;
  font-weight:700;
}
