/* ============================================================
   G-Club フェーズ1 レスポンシブCSS土台（PC/SP共通・モバイルファースト）
   旧membersのPC/SP二系統テンプレは廃止し、単一UIで対応する。
   ============================================================ */
:root{
  --gc-primary:#1763bf;
  --gc-primary-d:#0d3f80;
  --gc-accent:#2f95e6;
  --gc-bg:#f4f7fb;
  --gc-card:#ffffff;
  --gc-text:#1f2a37;
  --gc-muted:#667085;
  --gc-border:#e2e8f0;
  --gc-ok:#1a7f4b;
  --gc-radius:12px;
  --gc-shadow:0 4px 16px rgba(18,53,110,.10);
  --gc-maxw:960px;
}
*{box-sizing:border-box;}
/* hidden属性を確実に優先（display:flex/grid等の指定が [hidden] を上書きするのを防ぐ）*/
[hidden]{display:none !important;}
html,body{margin:0;padding:0;}
body{
  font-family:-apple-system,BlinkMacSystemFont,"Hiragino Kaku Gothic ProN","Noto Sans JP",
    "Yu Gothic",Meiryo,sans-serif;
  color:var(--gc-text); background:var(--gc-bg); line-height:1.6;
  -webkit-text-size-adjust:100%;
  /* フッターを常に画面最下部(bottom)へ：本文が短くても下に固定し、長ければ自然に下へ流れる */
  min-height:100vh; display:flex; flex-direction:column;
}
a{color:var(--gc-primary); text-decoration:none;}
a:hover{text-decoration:underline;}

/* ===== ヘッダー ===== */
.gc-header{
  position:sticky; top:0; z-index:50;
  background:linear-gradient(115deg,#0b1f44 0%,#12356e 45%,#1763bf 100%);
  color:#fff; box-shadow:0 2px 10px rgba(8,24,56,.30);
}
.gc-header__inner{
  max-width:var(--gc-maxw); margin:0 auto; padding:6px 10px;
  display:flex; align-items:center; gap:10px;
}
.gc-logo{
  color:#fff; font-weight:800; font-size:20px; letter-spacing:.5px; text-decoration:none;
  display:flex; align-items:center; gap:8px;
}
.gc-logo::before{content:none;}  /* GASSPECロゴ画像に変更したため装飾バーは廃止 */
.gc-logo__img{height:52px; display:block; padding:4px 10px; border-radius:6px;}
.gc-logo__sub{font-size:12px; color:#bcd8ff;}
.gc-spacer{flex:1;}
.gc-me{display:flex; align-items:center; gap:8px; font-size:13px;}
.gc-me__name{color:#eaf3ff;}
/* ログアウト＝シャットダウンアイコン（Pospec準拠・透明背景） */
.gc-iconbtn{background:transparent; border:none; color:#fff; cursor:pointer; padding:6px;
  display:inline-flex; align-items:center; justify-content:center; border-radius:8px; line-height:0;}
.gc-iconbtn:hover{background:rgba(255,255,255,.16);}

/* ===== バナー / 共通 ===== */
.gc-banner{
  background:#fff7e6; color:#8a5a00; border-bottom:1px solid #f0d9a8;
  font-size:12px; text-align:center; padding:6px 12px;
}
.gc-main{max-width:var(--gc-maxw); margin:0 auto; padding:18px 16px 40px;
  width:100%; box-sizing:border-box; flex:1 0 auto;}  /* 伸長してフッターを画面下へ押し下げる */
.gc-view{animation:gc-fade .2s ease;}
@keyframes gc-fade{from{opacity:0; transform:translateY(4px);} to{opacity:1; transform:none;}}

/* ===== カード ===== */
.gc-card{
  background:var(--gc-card); border:1px solid var(--gc-border);
  border-radius:var(--gc-radius); box-shadow:var(--gc-shadow);
  padding:22px 18px; margin:0 auto;
}
.gc-card--center{max-width:440px; text-align:center;}
/* ログイン画面のカードは 100px 下げる（要望） */
#view-login .gc-card--center{margin-top:100px;}
.gc-title{font-size:19px; font-weight:700; margin:4px 0 10px;}
.gc-h2{font-size:16px; font-weight:700; margin:18px 0 10px; padding-left:10px;
  border-left:4px solid var(--gc-primary);}
.gc-lead{font-size:14px; color:var(--gc-muted); margin:0 0 16px;}
.gc-note{font-size:12px; color:var(--gc-muted); margin-top:14px;}
.gc-ok{color:var(--gc-ok); font-weight:700;}
.gc-dest{font-size:16px; font-weight:700; word-break:break-all; margin:0 0 16px;}

/* ===== 入力 ===== */
.gc-input{
  width:100%; padding:12px 14px; font-size:16px; /* 16px=iOSズーム防止 */
  border:1px solid var(--gc-border); border-radius:10px; margin-bottom:14px;
  background:#fff;
}
.gc-input:focus{outline:none; border-color:var(--gc-accent); box-shadow:0 0 0 3px rgba(47,149,230,.18);}

/* ===== ボタン ===== */
.gc-btn{
  display:inline-block; border:none; border-radius:10px; cursor:pointer;
  font-size:15px; font-weight:700; padding:12px 18px; transition:.15s;
}
.gc-btn--sm{font-size:12px; padding:6px 12px;}
.gc-btn--block{display:block; width:100%; margin:6px 0;}
.gc-btn--primary{background:linear-gradient(135deg,var(--gc-primary),var(--gc-accent)); color:#fff;
  box-shadow:0 3px 10px rgba(23,99,191,.32);}
.gc-btn--primary:hover{filter:brightness(1.05); transform:translateY(-1px);}
.gc-btn--ghost{background:#eef3fa; color:var(--gc-primary-d);}
.gc-btn--ghost:hover{background:#e1ecf8;}

/* ===== 連絡先 / リンク ===== */
.gc-contact{margin:22px 0 8px; padding-top:16px; border-top:1px solid var(--gc-border);}
.gc-contact__label{display:block; font-size:13px; color:var(--gc-muted);}
.gc-contact__tel{display:block; font-size:26px; font-weight:800; color:var(--gc-primary-d); margin:6px 0;}
.gc-contact__note{font-size:24px; color:#58b7b7; font-weight: bold;}
.gc-link-btn{display:inline-block; margin-top:18px; padding:10px 16px;
  border:2px solid var(--gc-primary); border-radius:10px; font-weight:700;}
.gc-demo{margin-top:16px; font-size:12px;}
.gc-demo a{color:var(--gc-muted); text-decoration:underline;}
.gc-alert{background:#fdecec; color:#a12d2d; border:1px solid #f3c2c2; border-radius:8px;
  padding:10px 12px; font-size:13px; margin-bottom:14px; text-align:left;}
.gc-devbox{margin-top:16px; padding:12px; background:#fff7e6; border:1px dashed #f0c060; border-radius:10px;}
.gc-devbox__label{font-size:12px; color:#8a5a00; margin:0 0 8px;}
.gc-check{display:flex; align-items:center; gap:8px; justify-content:center;
  font-size:13px; color:var(--gc-muted); margin:0 0 16px;}
.gc-check input{width:auto;}

/* ===== ダッシュボード ===== */
.gc-tabs{display:flex; gap:6px; flex-wrap:wrap; margin-bottom:6px;}
.gc-tab{padding:8px 14px; border-radius:999px; font-size:13px; font-weight:700;
  background:#fff; border:1px solid var(--gc-border); color:var(--gc-primary);}
.gc-tab.is-active{background:linear-gradient(135deg,var(--gc-primary),var(--gc-accent)); color:#fff; border-color:transparent;}
.gc-date{font-size:13px; color:var(--gc-muted); margin:8px 0 0;}

.gc-list{display:grid; gap:12px;}
.gc-estimate{
  background:var(--gc-card); border:1px solid var(--gc-border); border-radius:var(--gc-radius);
  box-shadow:var(--gc-shadow); padding:14px 16px;
  display:grid; grid-template-columns:1fr auto; gap:6px 12px; align-items:center;
}
.gc-estimate__tags{display:flex; gap:6px; align-items:center; margin-bottom:4px; flex-wrap:wrap;}
.gc-kind{display:inline-block; font-size:11px; font-weight:700; padding:2px 9px; border-radius:6px;}
.gc-kind--final{background:#e3f0ff; color:var(--gc-primary-d); border:1px solid #b9d6f6;}
.gc-kind--prelim{background:#757171; color:#fff; border:1px solid #5b5b5b;}
.gc-new{display:inline-block; font-size:10px; font-weight:800; color:#fff; background:#e8003c;
  padding:2px 8px; border-radius:6px; animation:gc-newblink 1.6s ease-in-out infinite;}
@keyframes gc-newblink{0%,100%{opacity:1;} 50%{opacity:.55;}}
.gc-estimate--new{border-color:var(--gc-primary); box-shadow:0 0 0 2px rgba(23,99,191,.18), var(--gc-shadow);}
.gc-estimate__no{font-size:14px; color:var(--gc-muted);}
.gc-estimate__item{font-size:16px; font-weight:700;}
.gc-estimate__price{font-size:24px; font-weight:800; color:var(--gc-primary-d); text-align:right;}
.gc-badge{display:inline-block; font-size:11px; font-weight:700; padding:2px 10px; border-radius:999px;}
.gc-badge--est{background:#e8f1fc; color:var(--gc-primary-d);}
.gc-badge--order{background:#dafdc9; color:#1a6f3c;}
.gc-badge--paid{background:#e3f1e0; color:var(--gc-ok);}
.gc-estimate__actions{grid-column:1 / -1; display:flex; gap:8px; justify-content:flex-end; padding-top:6px;
  border-top:1px dashed var(--gc-border);}

/* ===== 見積詳細 ===== */
.gc-empty{color:var(--gc-muted); font-size:14px; padding:18px; text-align:center;}
.gc-muted{color:var(--gc-muted); font-size:12px;}
.gc-crumb{font-size:13px; color:var(--gc-muted); margin:0 0 10px;}
.gc-es-head{display:flex; justify-content:space-between; align-items:flex-start; gap:12px;
  flex-wrap:wrap; padding-bottom:14px; border-bottom:1px solid var(--gc-border);}
.gc-es-no{font-size:17px; font-weight:800; margin-bottom:6px;}
.gc-es-amount{text-align:right; font-size:13px; color:var(--gc-muted); white-space:nowrap;}
/* 金額行：数値＋円＋（税込）を1グループに。円と（税込）は同サイズ・同色（__numの0.72em）*/
.gc-es-amount__num{display:block; font-size:24px; color:var(--gc-primary-d); font-weight:800;}
.gc-es-amount__num b{display:inline; font-size:1em; color:inherit; font-weight:inherit;}
.gc-es-tax{font-size:0.72em; color:inherit; margin-left:1px;}
.gc-es-h3{font-size:14px; font-weight:700; margin:18px 0 8px; color:var(--gc-primary-d);}
.gc-es-tbl{width:100%; border-collapse:collapse; font-size:13px;}
.gc-es-tbl th, .gc-es-tbl td{border-bottom:1px solid var(--gc-border); padding:8px 6px; text-align:left;}
.gc-es-tbl th{background:#f1f3fa; font-size:12px;}
.gc-es-tbl .r{text-align:right; white-space:nowrap;}
.gc-es-tbl .gc-es-minus{color:#d8392b; font-weight:700;}  /* 値引き・マイナス項目（項目名・金額）は赤字 */
.gc-es-group-sum{margin-top:12px;}
.gc-es-group-sum td{padding:8px 6px;}
tr.gc-es-minus td{color:#d8392b; font-weight:700;}  /* 同時工事値引き行 */
.gc-es-tbl tr.gc-es-sub td{background:#f7fbff; color:var(--gc-muted);}
.gc-es-tbl tr.gc-es-total td{background:#eef3fa; font-weight:800; color:var(--gc-primary-d);}
.gc-es-meta{width:100%; border-collapse:collapse; font-size:13px; margin-top:16px;}
.gc-es-meta th{width:120px; text-align:left; background:#f7fbff; border:1px solid var(--gc-border);
  padding:8px 10px; font-weight:700; color:var(--gc-primary-d);}
.gc-es-meta td{border:1px solid var(--gc-border); padding:8px 10px;}
.gc-es-docs{margin-top:16px; padding:12px; background:#f7fbff; border-radius:8px;}
.gc-es-actions{display:flex; gap:10px; justify-content:space-between; margin-top:20px; flex-wrap:wrap;}

/* 工事申込フォーム */
.gc-od-list{display:flex; flex-direction:column; gap:8px;}
.gc-od-radio{display:flex; align-items:center; gap:8px; padding:10px 12px; border:1px solid var(--gc-border);
  border-radius:8px; font-size:14px; cursor:pointer;}
.gc-od-radio:hover{background:#f7fbff;}
.gc-od-radio input{width:auto;}
.gc-od-note{color:#c0392b; font-style:normal; font-size:12px; font-weight:700;}
.gc-od-amount{margin:18px 0 6px; text-align:right; font-size:14px; color:var(--gc-muted);}
.gc-od-amount b{font-size:36px; color:var(--gc-primary-d); margin-left:6px;}
/* 即決タイマー割引 */
.gc-od-cd{margin:0 0 16px; padding:12px 16px; border-radius:10px; border:1px solid #f0b400;
  background:#fff8e1; color:#7a4f00;}
.gc-od-cd__ttl{font-weight:700; font-size:15px;}
.gc-od-cd__body{margin-top:4px; font-size:14px;}
.gc-od-cd__body b{color:#c0392b; font-size:17px;}
/* 詳細ページの即決割引バナー */
.gc-es-cd{margin:14px 0; padding:14px 16px; border-radius:10px; text-align:center;
  border:1px solid #f0b400; background:#fff8e1; color:#7a4f00; font-size:15px; line-height:1.7;}
.gc-es-cd b{color:#c0392b; font-size:20px;}
.gc-es-cd__time{font-size:24px;}
/* 金額の「円」は数値より少し小さく */
.gc-yen{font-size:0.72em; margin-left:1px; font-weight:inherit;}
/* 有効期限 */
.gc-estimate__exp{margin-top:6px;}
.gc-exp{display:inline-block; font-size:12px; color:var(--gc-muted);}
.gc-exp--over{color:#c0392b; font-weight:700;}
/* 一覧の即決割引カウントダウン */
.gc-estimate__cd{margin-top:4px;}
.gc-cd-list{display:inline-block; font-size:12px; font-weight:700; color:#b8860b;
  background:#fff8e1; border:1px solid #f0d9a8; border-radius:6px; padding:2px 8px;}
.gc-cd-list:empty{display:none;}
.gc-cd-list b{color:#c0392b; font-size:13px;}
/* 再見積もり依頼中バッジ */
.gc-badge--reest{background:#fdecec; color:#c0392b;}
.gc-es-expiry{margin:12px 0; font-size:13px; color:var(--gc-muted);}
.gc-es-expiry .gc-exp--over{font-size:14px;}
.gc-es-expired{margin:14px 0; padding:14px 16px; border-radius:10px;
  border:1px solid #e7b7b7; background:#fdecec; color:#a12d2d;}
.gc-es-expired__t{font-weight:700; font-size:15px;}
.gc-es-expired__d{margin-top:6px; font-size:13px; line-height:1.7; color:#7a3a3a;}
/* 申込フォーム：適用中の割引バッジ */
.gc-od-disc-notes{margin:14px 0 4px; text-align:right;}
.gc-od-disc-badge{display:inline-block; margin:0 0 6px 6px; padding:4px 10px; border-radius:6px;
  background:#fff0f0; border:1px solid #e7b7b7; color:#c0392b; font-weight:700; font-size:13px;}
.gc-od-disc-amt{margin-left:6px;}
.gc-od-disc-plus{color:#7a4f00;}
.gc-od-disc-hint{font-size:12px; color:var(--gc-muted); font-weight:400;}
/* 申込フォーム：お手伝いキャッシュバック（独立セクション） */
.gc-od-cb{border:1px solid #cfe3d4; border-radius:10px; background:#f6fbf7; padding:14px 16px;}
.gc-od-cb-check{display:flex; align-items:flex-start; gap:10px; cursor:pointer; font-weight:700; color:#1a6f3c;}
.gc-od-cb-check input{margin-top:3px; flex:none;}
.gc-od-cb-desc{margin:10px 0 0; font-size:13px; line-height:1.8; color:#3a3f47;}
/* 申込フォーム：お手伝いキャッシュバック案内 */
.gc-od-cb-note{margin:8px 0 0; padding:12px 16px; border-radius:10px; text-align:right;
  background:#f6fbf7; border:1px solid #cfe3d4; color:#1a6f3c; font-size:14px; line-height:1.7;}
.gc-od-cb-note b{font-size:17px;}
.gc-od-cb-amt{color:#1a6f3c; font-weight:700;}
/* 利用規約（G-Club仕様。旧membersのCSSは踏襲しない） */
.gc-od-terms{max-height:320px; overflow-y:auto; border:1px solid var(--gc-border); border-radius:10px;
  padding:16px 20px; background:#fbfcfe; font-size:13px; line-height:1.8; color:#3a3f47;}
.gc-terms-sec{font-size:14px; font-weight:700; color:var(--gc-primary-d); margin:18px 0 8px;
  padding-bottom:6px; border-bottom:1px solid var(--gc-border);}
.gc-terms-sec:first-child{margin-top:0;}
.gc-terms-sub{font-weight:700; color:#1a2230; margin:12px 0 4px;}
.gc-terms-sub2{font-weight:700; color:#3a3f47; margin:8px 0 2px;}
.gc-od-terms p{margin:5px 0;}
.gc-terms-red{color:#d8392b;}
.gc-terms-products{margin-top:18px; padding:14px 18px; background:#fff;
  border:1px solid var(--gc-border); border-left:4px solid var(--gc-primary); border-radius:8px;}
.gc-terms-products .gc-terms-sec{margin-top:0;}
.gc-terms-pnote{margin-top:10px;}
.gc-terms-pnote:first-of-type{margin-top:6px;}

/* お支払方法の注意書き */
.gc-red{color:#d8392b;}
.gc-od-pay-fixed{color:#d8392b; font-weight:700; font-size:13px; margin:8px 2px 0;}
.gc-od-caution{margin-top:10px; padding:12px 16px; font-size:13px; line-height:1.8; color:#3a3f47;
  background:#f1f7fe; border:1px solid #cfe3fa; border-left:4px solid var(--gc-primary); border-radius:8px;}

/* 利用規約 同意ボックス（目立たせる） */
.gc-od-agree{display:flex; align-items:center; gap:14px; margin:14px 0 4px; padding:16px 20px;
  border:2px solid var(--gc-primary); border-radius:12px; background:#f1f7fe; cursor:pointer;
  transition:background .15s, box-shadow .15s;}
.gc-od-agree:hover{background:#e7f1fd;}
.gc-od-agree input{position:absolute; opacity:0; width:0; height:0;}
.gc-od-agree__box{flex:0 0 auto; width:26px; height:26px; border:2px solid var(--gc-primary);
  border-radius:6px; background:#fff; position:relative; transition:background .15s;}
.gc-od-agree__box::after{content:""; position:absolute; left:8px; top:3px; width:6px; height:12px;
  border:solid #fff; border-width:0 3px 3px 0; transform:rotate(45deg); opacity:0; transition:opacity .15s;}
.gc-od-agree input:checked ~ .gc-od-agree__box{background:var(--gc-primary);}
.gc-od-agree input:checked ~ .gc-od-agree__box::after{opacity:1;}
.gc-od-agree input:focus-visible ~ .gc-od-agree__box{box-shadow:0 0 0 3px rgba(23,99,191,.3);}
.gc-od-agree__txt{font-size:15px; color:#1a2230;}
.gc-od-agree__txt b{color:var(--gc-primary-d);}
.gc-od-agree:has(input:checked){background:#e3f0ff; border-color:var(--gc-primary-d);
  box-shadow:0 2px 8px rgba(23,99,191,.18);}

/* ===== 見積詳細：最上部（商品画像＋商品情報）===== */
.gc-es-top{display:flex; flex-direction:column; gap:16px; padding-bottom:16px;
  border-bottom:1px solid var(--gc-border);}
.gc-es-gallery{width:100%;}
.gc-gallery-main{position:relative; width:100%; background:#f4f7fb; border:1px solid var(--gc-border);
  border-radius:10px; overflow:hidden; aspect-ratio:4/3; display:flex; align-items:center; justify-content:center;}
.gc-gallery-main img{width:100%; height:100%; object-fit:contain; cursor:zoom-in; background:#fff;}
.gc-gallery-hint{position:absolute; right:8px; bottom:8px; background:rgba(0,0,0,.55); color:#fff;
  font-size:11px; padding:3px 8px; border-radius:999px; pointer-events:none;}
.gc-gallery-model{margin-top:8px; padding:6px 12px; background:#eef3fa; border:1px solid var(--gc-border);
  border-radius:8px; font-size:13px; font-weight:700; color:var(--gc-primary-d); text-align:center;
  word-break:break-all;}
/* 商品説明（商品ごと） */
.gc-es-desc{padding:12px 14px; margin-bottom:10px; background:#f7fbff; border:1px solid var(--gc-border);
  border-left:4px solid var(--gc-primary); border-radius:8px;}
.gc-es-desc__h{font-weight:700; color:var(--gc-primary-d); font-size:14px; margin-bottom:6px;}
.gc-es-desc__b{font-size:13px; line-height:1.8; color:#3a3f47;}
.gc-noimg{color:var(--gc-muted); font-size:14px; font-weight:700;}
.gc-gallery-thumbs{display:flex; gap:8px; flex-wrap:wrap; margin-top:10px;}
.gc-thumb{width:60px; height:60px; padding:0; border:2px solid var(--gc-border); border-radius:8px;
  background:#fff; overflow:hidden; cursor:pointer;}
.gc-thumb.is-active{border-color:var(--gc-accent);}
.gc-thumb img{width:100%; height:100%; object-fit:cover;}
.gc-es-summary .gc-es-no{font-size:17px; font-weight:800; margin-bottom:6px;}
/* 見積確認画面：ご注文金額・数値（税込）を右端に。円と（税込）は同サイズ・同色 */
.gc-es-summary .gc-es-amount{text-align:right; margin:12px 0; font-size:13px; color:var(--gc-muted);}
.gc-es-summary .gc-es-amount__num{font-size:36px;}

/* 画像ライトボックス（display:none を既定にし、.is-open で表示。hidden属性に依存しない） */
.gc-lightbox{position:fixed; inset:0; background:rgba(0,0,0,.85); z-index:1000;
  display:none; align-items:center; justify-content:center; padding:20px; cursor:zoom-out;}
.gc-lightbox.is-open{display:flex;}
.gc-lightbox img{max-width:96vw; max-height:90vh; object-fit:contain;}
.gc-lightbox__close{position:fixed; top:12px; right:18px; color:#fff; font-size:34px; line-height:1;}

@media (min-width:760px){
  /* PC：左に画像、右に商品情報 */
  .gc-es-top{flex-direction:row; align-items:flex-start;}
  .gc-es-gallery{width:46%; flex:0 0 46%;}
  .gc-es-summary{flex:1; padding-left:4px;}
}

/* ===== フッター / トースト ===== */
.gc-footer{border-top:1px solid var(--gc-border); background:#fff; color:var(--gc-muted);
  text-align:center; font-size:12px; padding:16px;}
.gc-footer__small{font-size:11px; opacity:.8;}
.gc-toast{position:fixed; left:50%; bottom:24px; transform:translateX(-50%);
  background:rgba(20,40,80,.92); color:#fff; padding:10px 18px; border-radius:999px;
  font-size:13px; z-index:100;}
/* 確認モーダル（画面中央） */
.gc-modal{position:fixed; inset:0; z-index:1000; display:flex; align-items:center; justify-content:center;
  background:rgba(15,23,42,.45); padding:16px;}
.gc-modal__box{background:#fff; border-radius:14px; box-shadow:0 12px 40px rgba(8,24,56,.35);
  padding:24px 22px; width:100%; max-width:380px; text-align:center; animation:gc-fade .15s ease;}
.gc-modal__msg{font-size:15px; line-height:1.8; color:var(--gc-text); margin-bottom:20px; white-space:pre-line;}
.gc-modal__actions{display:flex; gap:10px; justify-content:center;}
.gc-modal__actions .gc-btn{min-width:120px;}

/* ===== レスポンシブ（PC幅で余白拡大・カード横並びは縦維持で可読性優先） ===== */
@media (min-width:600px){
  .gc-card{padding:28px 26px;}
  .gc-title{font-size:22px;}
  .gc-estimate{grid-template-columns:1fr auto auto;}
}
@media (min-width:900px){
  .gc-main{padding:26px 16px 56px;}
}

/* ===== メッセージ（チャット・スマホ対応）===== */
.gc-tab .gc-badge{margin-left:6px; background:#d8392b; color:#fff; padding:1px 7px; font-size:10px;}
.gc-chat{display:flex; flex-direction:column; background:#fff; border:1px solid var(--gc-border);
  border-radius:14px; overflow:hidden; box-shadow:0 2px 10px rgba(0,0,0,.05);}
.gc-chat__thread{display:flex; flex-direction:column; gap:14px; padding:18px 16px; overflow-y:auto;
  height:min(60vh,520px); background:#f4f8fc;}
.gc-msg{display:flex; flex-direction:column; max-width:82%;}
/* お客様(me): 右・顔写真なし */
.gc-msg--me{align-self:flex-end; align-items:flex-end;}
/* 担当者(them): 左・LINE風（顔写真を左、吹き出し上端に揃える） */
.gc-msg--them{align-self:flex-start; flex-direction:row; align-items:flex-start; gap:8px; max-width:88%;}
.gc-msg__body{display:flex; flex-direction:column; align-items:flex-start; min-width:0;}
.gc-msg__meta{display:flex; align-items:center; gap:6px; font-size:13px; color:var(--gc-muted); margin:0 6px 3px;}
.gc-msg__avatar{width:44px; height:44px; border-radius:50%; object-fit:cover;
  border:1px solid var(--gc-border); flex-shrink:0; background:#eef3f8;}
.gc-msg__avatar--blank{display:inline-block;}
.gc-msg__edit{background:none; border:0; color:var(--gc-primary); font-size:11px; cursor:pointer; padding:0 2px; text-decoration:underline;}
.gc-msg__edited{font-size:10px; color:var(--gc-muted);}
.gc-msg__editbox{margin-top:6px; width:100%; max-width:420px;}
.gc-msg__edita{width:100%; resize:vertical;}
.gc-msg__editbtns{display:flex; gap:8px; justify-content:flex-end; margin-top:6px;}
.gc-msg__bubble{padding:10px 14px; border-radius:14px; font-size:14px; line-height:1.7; word-break:break-word;}
.gc-msg--them .gc-msg__bubble{background:#fff; border:1px solid var(--gc-border); border-top-left-radius:4px;}
.gc-msg--me .gc-msg__bubble{background:linear-gradient(135deg,var(--gc-primary),var(--gc-accent));
  color:#fff; border-top-right-radius:4px;}
.gc-msg--me .gc-msg__bubble a{color:#fff; text-decoration:underline;}
.gc-msg__files{margin-top:8px; display:flex; flex-wrap:wrap; gap:8px;}
.gc-chat__img{width:110px; height:110px; object-fit:cover; border-radius:8px; display:block;
  cursor:zoom-in; border:1px solid rgba(255,255,255,.4);}
.gc-chat__file{display:inline-block; padding:6px 10px; background:#eef3f8; border-radius:8px;
  font-size:13px; color:var(--gc-primary-d);}
.gc-chat__form{display:flex; flex-direction:column; gap:8px; padding:12px;
  border-top:1px solid var(--gc-border); background:#fff;}
.gc-chat__input{width:100%; resize:vertical; min-height:44px;}
.gc-chat__tools{display:flex; align-items:center; justify-content:space-between; gap:10px;}
.gc-chat__attach{font-size:13px; color:var(--gc-primary-d); cursor:pointer; padding:6px 10px;
  border:1px solid var(--gc-border); border-radius:8px; background:#f7fbff;}
.gc-chat__attach:hover{background:#eef5fe;}
.gc-chat__preview{display:flex; flex-wrap:wrap; gap:6px; padding:0 12px;}
.gc-chat__preview:empty{padding:0;}
.gc-chat__pvchip{font-size:12px; color:var(--gc-primary-d); background:#eef5fe;
  border:1px solid var(--gc-border); border-radius:6px; padding:3px 8px;}

/* 概算見積：写真アップロード案内バナー */
.gc-photo-prompt{display:flex; align-items:center; justify-content:space-between; gap:14px;
  flex-wrap:wrap; margin:16px 0; padding:14px 18px; background:#fff7e6;
  border:1px solid #f0d9a8; border-left:4px solid var(--gc-primary); border-radius:10px;}
.gc-photo-prompt__t{font-weight:700; color:var(--gc-primary-d); font-size:15px;}
.gc-photo-prompt__d{font-size:13px; color:#8a5a00; margin-top:2px;}

/* ===== 現場写真（アップロード・スマホ対応）===== */
.gc-ph-drop{display:flex; align-items:center; justify-content:center; text-align:center;
  min-height:88px; padding:16px; border:2px dashed var(--gc-primary); border-radius:12px;
  background:#f7fbff; color:var(--gc-primary-d); font-weight:700; cursor:pointer;}
.gc-ph-drop:hover{background:#eef5fe;}
.gc-ph-preview{display:flex; flex-wrap:wrap; gap:8px; margin:12px 0;}
.gc-ph-pv{width:84px; height:84px; object-fit:cover; border-radius:8px; border:1px solid var(--gc-border);}
/* サンプル案内写真（案内・閲覧のみ。商品画像とは別物） */
.gc-ph-samples{display:grid; grid-template-columns:repeat(auto-fill,minmax(110px,1fr)); gap:12px;
  padding:12px; background:#fff7e6; border:1px solid #f0d9a8; border-radius:10px; margin-bottom:6px;}
.gc-ph-sample{margin:0; display:flex; flex-direction:column; gap:6px;}
.gc-ph-sample img{width:100%; aspect-ratio:1/1; object-fit:cover; border-radius:8px;
  border:1px solid var(--gc-border); cursor:zoom-in;}
.gc-ph-sample figcaption{font-size:12px; color:#8a5a00; font-weight:700; text-align:center; line-height:1.4;}
.gc-ph-grid{display:grid; grid-template-columns:repeat(auto-fill,minmax(100px,1fr)); gap:10px;}
.gc-ph-item{position:relative; aspect-ratio:1/1;}
.gc-ph-item img{width:100%; height:100%; object-fit:cover; border-radius:10px;
  border:1px solid var(--gc-border); cursor:zoom-in;}
.gc-ph-del{position:absolute; top:4px; right:4px; width:26px; height:26px; border:0; border-radius:50%;
  background:rgba(216,57,43,.92); color:#fff; font-size:16px; line-height:1; cursor:pointer;}
.gc-ph-sent{position:absolute; bottom:4px; left:4px; font-size:10px; font-weight:700; color:#fff;
  background:rgba(26,127,75,.92); border-radius:6px; padding:2px 6px;}
.gc-ph-unsent{position:absolute; bottom:4px; left:4px; font-size:10px; font-weight:700; color:#fff;
  background:rgba(216,57,43,.92); border-radius:6px; padding:2px 6px;}
#ph-notify-box{margin:14px 0; padding:14px; background:#fff7e6; border:1px solid #f0d9a8; border-radius:10px;}
#ph-notify-box .gc-note{margin-top:0;}
.gc-chat__tools .gc-btn{flex:0 0 auto;}
