/* CHMお家マッチング — スタイルシート */

:root {
  --navy:#0f1f3d; --navy-mid:#1a3260; --gold:#b8963e; --gold-light:#d4af6a;
  --gold-pale:#f5ecd7; --cream:#faf8f3; --white:#ffffff;
  --gray-100:#f4f4f2; --gray-200:#e8e7e3; --gray-400:#9e9b93;
  --gray-600:#5c5a54; --gray-800:#2c2b27;
  --success:#2d6a4f; --success-bg:#e8f5ef;
  --danger:#8b1a1a; --danger-bg:#fceaea;
  --info:#1a4a8b; --info-bg:#e8f0fc;
  --warn-bg:#fef9ec; --warn:#8b6914;
  --line-green:#06C755;
}
*{box-sizing:border-box;margin:0;padding:0;}
body{font-family:'Noto Sans JP',sans-serif;background:var(--cream);color:var(--gray-800);min-height:100vh;}

/* HEADER */
header{background:var(--navy);color:var(--white);position:sticky;top:0;z-index:100;box-shadow:0 2px 20px rgba(0,0,0,0.3);}
.header-inner{max-width:1300px;margin:0 auto;padding:0 2rem;display:flex;align-items:center;justify-content:space-between;height:64px;}
.logo{display:flex;align-items:center;gap:12px;}
.logo-mark{width:36px;height:36px;background:var(--gold);display:flex;align-items:center;justify-content:center;font-family:'Noto Serif JP',serif;font-weight:700;font-size:14px;color:var(--navy);border-radius:4px;}
.logo-text{font-family:'Noto Serif JP',serif;font-size:15px;font-weight:600;letter-spacing:0.08em;line-height:1.3;}
.logo-sub{font-family:'Noto Sans JP',sans-serif;font-size:10px;color:var(--gold-light);letter-spacing:0.15em;font-weight:300;text-transform:uppercase;}
nav{display:flex;gap:4px;}
nav button{background:transparent;border:none;color:rgba(255,255,255,0.65);padding:8px 16px;border-radius:4px;font-family:'Noto Sans JP',sans-serif;font-size:13px;cursor:pointer;transition:all 0.18s;letter-spacing:0.04em;}
nav button:hover{background:rgba(255,255,255,0.08);color:var(--white);}
nav button.active{background:var(--gold);color:var(--navy);font-weight:700;}

/* STATS BAR */
.stats-bar{background:var(--white);border-bottom:1px solid var(--gray-200);padding:0.85rem 2rem;}
.stats-inner{max-width:1300px;margin:0 auto;display:flex;align-items:center;gap:2rem;flex-wrap:wrap;}
.stat-item{display:flex;align-items:center;gap:8px;}
.stat-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0;}
.stat-dot.buy{background:var(--info);}
.stat-dot.sell{background:var(--gold);}
.stat-dot.match{background:var(--success);}
.stat-label{font-size:12px;color:var(--gray-600);}
.stat-val{font-size:18px;font-weight:700;color:var(--navy);letter-spacing:-0.5px;}

/* SYNC BANNER */
.sync-banner{background:linear-gradient(90deg,#0f1f3d 0%,#1a3260 100%);border-bottom:2px solid var(--gold);}
.sync-inner{max-width:1300px;margin:0 auto;padding:0.6rem 2rem;display:flex;align-items:center;gap:1rem;flex-wrap:wrap;}
.sync-section{display:flex;align-items:center;gap:0.7rem;}
.sync-divider{width:1px;height:28px;background:rgba(255,255,255,0.15);flex-shrink:0;}
.sync-label{font-size:11px;font-weight:700;color:var(--gold-light);letter-spacing:0.1em;white-space:nowrap;}

/* Excel upload */
.upload-drop-zone{border:1.5px dashed rgba(184,150,62,0.5);border-radius:8px;padding:5px 14px;cursor:pointer;transition:all 0.2s;display:flex;align-items:center;gap:7px;color:rgba(255,255,255,0.7);font-size:12px;background:rgba(255,255,255,0.05);}
.upload-drop-zone:hover{border-color:var(--gold);background:rgba(184,150,62,0.12);color:var(--white);}
.upload-drop-zone input[type="file"]{display:none;}
.upload-status{font-size:11px;color:rgba(255,255,255,0.55);display:flex;align-items:center;gap:5px;}
.upload-status.ok{color:#6fcf97;}
.upload-status.loading{color:var(--gold-light);}

/* Google Sheets sync */
.sheets-sync-btn{background:rgba(255,255,255,0.08);border:1.5px solid rgba(255,255,255,0.2);border-radius:8px;padding:5px 14px;cursor:pointer;display:flex;align-items:center;gap:7px;color:rgba(255,255,255,0.8);font-size:12px;font-family:'Noto Sans JP',sans-serif;transition:all 0.2s;white-space:nowrap;}
.sheets-sync-btn:hover{background:rgba(255,255,255,0.14);border-color:var(--gold-light);color:var(--white);}
.sheets-sync-btn:disabled{opacity:0.45;cursor:not-allowed;}
.sheets-status{font-size:11px;color:rgba(255,255,255,0.55);}
.sheets-status.ok{color:#6fcf97;}
.sheets-status.err{color:#f28b82;}
.sync-pulse{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--gold-light);animation:pulse 1.6s infinite;}
@keyframes pulse{0%,100%{opacity:1;transform:scale(1);}50%{opacity:0.4;transform:scale(0.7);}}

/* Auto-match toggle */
.automatch-wrap{margin-left:auto;display:flex;align-items:center;gap:8px;}
.toggle-label{font-size:11px;color:rgba(255,255,255,0.65);}
.toggle{position:relative;width:38px;height:20px;}
.toggle input{opacity:0;width:0;height:0;}
.toggle-slider{position:absolute;inset:0;background:#334;border-radius:20px;cursor:pointer;transition:0.2s;}
.toggle-slider:before{content:'';position:absolute;width:14px;height:14px;left:3px;bottom:3px;background:white;border-radius:50%;transition:0.2s;}
.toggle input:checked+.toggle-slider{background:var(--gold);}
.toggle input:checked+.toggle-slider:before{transform:translateX(18px);}

/* MAIN */
.main-wrap{max-width:1300px;margin:0 auto;padding:1.5rem 2rem 4rem;}
.section{display:none;}
.section.active{display:block;}

/* MATCH CONTROLS */
.match-controls{background:var(--white);border:1px solid var(--gray-200);border-radius:10px;padding:1.25rem 1.5rem;margin-bottom:1.5rem;display:flex;align-items:center;gap:1rem;flex-wrap:wrap;}
.match-controls label{font-size:12px;font-weight:700;color:var(--gray-600);letter-spacing:0.08em;white-space:nowrap;}
.match-controls select,.match-controls input[type="text"]{border:1px solid var(--gray-200);border-radius:6px;padding:7px 12px;font-family:'Noto Sans JP',sans-serif;font-size:13px;color:var(--gray-800);background:var(--gray-100);outline:none;transition:border-color 0.15s;}
.match-controls select:focus,.match-controls input[type="text"]:focus{border-color:var(--gold);background:var(--white);}
.score-threshold{display:flex;align-items:center;gap:6px;}
.score-threshold input[type="range"]{width:90px;accent-color:var(--gold);}
.score-threshold span{font-size:13px;font-weight:700;color:var(--navy);min-width:32px;}

/* MATCH MODE TABS */
.match-tab-bar{display:flex;gap:0;margin-bottom:1.2rem;border:1px solid var(--gray-200);border-radius:8px;overflow:hidden;background:var(--white);}
.match-tab{flex:1;padding:10px 6px;border:none;font-family:'Noto Sans JP',sans-serif;font-size:13px;font-weight:700;cursor:pointer;background:var(--white);color:var(--gray-600);transition:all 0.18s;letter-spacing:0.04em;border-right:1px solid var(--gray-200);}
.match-tab:last-child{border-right:none;}
.match-tab.active{background:var(--navy);color:var(--white);}
.match-tab:not(.active):hover{background:var(--gold-pale);color:var(--navy);}

/* PIN MATCH UI */
.pin-select{flex:1;min-width:220px;border:2px solid var(--gold);border-radius:6px;padding:9px 12px;font-family:'Noto Sans JP',sans-serif;font-size:13px;color:var(--navy);background:var(--gold-pale);outline:none;font-weight:700;}
.pin-preview{background:var(--info-bg);border:1px solid rgba(26,74,139,0.2);border-radius:8px;padding:0.9rem 1.2rem;}
.pin-preview-title{font-size:10px;font-weight:700;color:var(--info);letter-spacing:0.1em;margin-bottom:0.5rem;}
.pin-preview-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:0.5rem;}
.pin-preview-item{font-size:12px;color:var(--gray-800);}
.pin-preview-item span{font-weight:700;color:var(--navy);}
.pin-filter-row{background:var(--white);border:1px solid var(--gray-200);border-radius:8px;padding:0.9rem 1.2rem;}
.pin-filter-label{font-size:11px;font-weight:700;color:var(--gray-600);letter-spacing:0.08em;}
.pin-filter-sublabel{font-size:10px;font-weight:700;color:var(--gray-600);margin-bottom:3px;}

/* PINNED RESULT TABLE */
.pin-result-wrap{border:1px solid var(--gray-200);border-radius:10px;overflow:hidden;margin-top:0;}
.pin-result-table{width:100%;border-collapse:collapse;background:var(--white);font-size:13px;}
.pin-result-table thead th{background:var(--navy);color:var(--white);padding:10px 14px;text-align:left;font-weight:500;letter-spacing:0.04em;font-size:12px;}
.pin-result-table tbody tr{border-bottom:1px solid var(--gray-200);cursor:pointer;transition:background 0.12s;}
.pin-result-table tbody tr:last-child{border-bottom:none;}
.pin-result-table tbody tr:hover{background:var(--gold-pale);}
.pin-result-table td{padding:10px 14px;color:var(--gray-800);vertical-align:middle;line-height:1.5;}
.pin-check{width:36px;text-align:center;}
.pin-check input[type=checkbox]{width:15px;height:15px;accent-color:var(--gold);cursor:pointer;}
.pin-score-cell{text-align:center;white-space:nowrap;}
.pin-score-pill{display:inline-block;font-size:12px;font-weight:700;padding:3px 10px;border-radius:100px;}
.pin-score-pill.high{background:var(--success-bg);color:var(--success);}
.pin-score-pill.mid{background:var(--warn-bg);color:var(--warn);}
.pin-score-pill.low{background:var(--gray-100);color:var(--gray-600);}
.pin-tags{display:flex;gap:4px;flex-wrap:wrap;}
.pin-result-actions{display:flex;gap:0.6rem;align-items:center;padding:0.9rem 1rem;background:var(--cream);border-top:1px solid var(--gray-200);}
.pin-select-all-btn{font-size:12px;color:var(--info);background:none;border:none;cursor:pointer;font-family:'Noto Sans JP',sans-serif;font-weight:700;padding:0;text-decoration:underline;}

.match-btn{background:var(--navy);color:var(--white);border:none;padding:8px 20px;border-radius:6px;font-family:'Noto Sans JP',sans-serif;font-size:13px;font-weight:700;cursor:pointer;transition:background 0.18s;letter-spacing:0.05em;white-space:nowrap;}
.match-btn:hover{background:var(--gold);color:var(--navy);}
.match-btn.secondary{background:transparent;color:var(--navy);border:1px solid var(--gray-200);}
.match-btn.secondary:hover{background:var(--gray-100);}
.match-btn.danger{background:var(--danger-bg);color:var(--danger);border:1px solid #f5c1c1;}
.match-btn.danger:hover{background:var(--danger);color:var(--white);}
.match-btn.line-btn{background:#06C755;color:#fff;border:none;}
.match-btn.line-btn:hover{background:#05a847;}

/* MATCH CARDS */
.match-result-card{background:var(--white);border:1px solid var(--gray-200);border-radius:12px;margin-bottom:1rem;overflow:hidden;transition:box-shadow 0.2s;}
.match-result-card:hover{box-shadow:0 4px 20px rgba(15,31,61,0.1);}
.match-result-card.high-alert{border-left:3px solid var(--success);}
.match-header{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:1rem;padding:1.2rem 1.5rem;border-bottom:1px solid var(--gray-200);background:var(--cream);}
.match-score-badge{text-align:center;}
.score-circle{width:56px;height:56px;border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;margin:0 auto 4px;font-weight:700;}
.score-circle.high{background:var(--success-bg);color:var(--success);border:2px solid var(--success);}
.score-circle.mid{background:var(--warn-bg);color:var(--warn);border:2px solid var(--gold);}
.score-circle.low{background:var(--gray-100);color:var(--gray-600);border:2px solid var(--gray-400);}
.score-num{font-size:18px;line-height:1;}
.score-pct{font-size:9px;line-height:1;}
.score-label{font-size:11px;color:var(--gray-600);}
.party-card{border:1px solid var(--gray-200);border-radius:8px;padding:0.9rem 1rem;background:var(--white);}
.party-role{font-size:10px;font-weight:700;letter-spacing:0.12em;padding:2px 8px;border-radius:2px;margin-bottom:6px;display:inline-block;}
.role-buyer{background:var(--info-bg);color:var(--info);}
.role-seller{background:var(--gold-pale);color:var(--gold);}
.party-name{font-size:14px;font-weight:700;color:var(--navy);margin-bottom:2px;}
.party-company{font-size:12px;color:var(--gray-600);margin-bottom:6px;}
.party-detail{font-size:12px;color:var(--gray-600);line-height:1.6;}
.party-detail span{color:var(--navy);font-weight:500;}
.match-body{padding:0.9rem 1.5rem;display:flex;flex-wrap:wrap;gap:0.5rem;align-items:center;}
.match-tag{font-size:11px;padding:3px 10px;border-radius:100px;font-weight:500;}
.tag-match{background:var(--success-bg);color:var(--success);}
.tag-partial{background:var(--warn-bg);color:var(--warn);}
.tag-area{background:var(--info-bg);color:var(--info);}
.tag-type{background:var(--gold-pale);color:var(--gold);}
.contact-btn{background:var(--navy);color:var(--white);border:none;padding:5px 12px;border-radius:5px;font-size:11px;font-weight:700;cursor:pointer;transition:background 0.18s;letter-spacing:0.04em;}
.contact-btn:hover{background:var(--gold);color:var(--navy);}
.notify-btn{background:var(--success-bg);color:var(--success);border:1px solid var(--success);padding:5px 12px;border-radius:5px;font-size:11px;font-weight:700;cursor:pointer;transition:all 0.18s;letter-spacing:0.04em;}
.notify-btn:hover{background:var(--success);color:var(--white);}
.notified-badge{font-size:11px;color:var(--success);font-weight:700;padding:5px 0;}
.line-notify-btn{background:#e8faf0;color:#06C755;border:1px solid #06C755;padding:5px 12px;border-radius:5px;font-size:11px;font-weight:700;cursor:pointer;transition:all 0.18s;}
.line-notify-btn:hover{background:#06C755;color:#fff;}

/* TABLES */
.table-controls{display:flex;align-items:center;gap:0.8rem;margin-bottom:1rem;flex-wrap:wrap;}
.search-input{border:1px solid var(--gray-200);border-radius:6px;padding:7px 12px 7px 34px;font-family:'Noto Sans JP',sans-serif;font-size:13px;background:var(--white) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%239e9b93' stroke-width='2'%3E%3Ccircle cx='11' cy='11' r='8'/%3E%3Cpath d='m21 21-4.35-4.35'/%3E%3C/svg%3E") no-repeat 10px center;outline:none;min-width:200px;transition:border-color 0.15s;}
.search-input:focus{border-color:var(--gold);}
.filter-select{border:1px solid var(--gray-200);border-radius:6px;padding:7px 12px;font-family:'Noto Sans JP',sans-serif;font-size:13px;background:var(--white);outline:none;cursor:pointer;}
.count-badge{background:var(--navy);color:var(--white);font-size:11px;font-weight:700;padding:2px 10px;border-radius:100px;margin-left:auto;}
.data-table{width:100%;border-collapse:collapse;background:var(--white);border-radius:10px;overflow:hidden;border:1px solid var(--gray-200);font-size:13px;}
.data-table thead th{background:var(--navy);color:var(--white);padding:10px 14px;text-align:left;font-weight:500;letter-spacing:0.04em;white-space:nowrap;font-size:12px;}
.data-table tbody tr{border-bottom:1px solid var(--gray-200);transition:background 0.12s;}
.data-table tbody tr:last-child{border-bottom:none;}
.data-table tbody tr:hover{background:var(--gold-pale);}
.data-table td{padding:10px 14px;color:var(--gray-800);vertical-align:top;line-height:1.5;}
.td-name{font-weight:700;color:var(--navy);}
.td-company{font-size:11px;color:var(--gray-600);}
.td-badge{display:inline-block;font-size:11px;padding:2px 8px;border-radius:3px;font-weight:500;white-space:nowrap;}
.td-area{font-size:12px;color:var(--gray-600);}
.td-price{font-weight:700;color:var(--navy);font-size:13px;}
.td-note{font-size:11px;color:var(--gray-400);}

/* MODAL */
.modal-overlay{position:fixed;inset:0;background:rgba(15,31,61,0.55);z-index:200;display:flex;align-items:center;justify-content:center;padding:1rem;}
.modal-overlay.hidden{display:none;}
.modal-box{background:var(--white);border-radius:14px;max-width:580px;width:100%;max-height:90vh;overflow-y:auto;box-shadow:0 20px 60px rgba(0,0,0,0.25);}
.modal-head{background:var(--navy);color:var(--white);padding:1.2rem 1.5rem;border-radius:14px 14px 0 0;display:flex;align-items:center;justify-content:space-between;}
.modal-head h3{font-family:'Noto Serif JP',serif;font-size:16px;}
.modal-close{background:transparent;border:none;color:var(--white);font-size:22px;cursor:pointer;line-height:1;opacity:0.6;transition:opacity 0.15s;}
.modal-close:hover{opacity:1;}
.modal-body{padding:1.5rem;}
.modal-field{margin-bottom:1rem;}
.modal-field label{font-size:11px;font-weight:700;color:var(--gray-600);letter-spacing:0.1em;display:block;margin-bottom:4px;}
.modal-field input,.modal-field textarea,.modal-field select{width:100%;border:1px solid var(--gray-200);border-radius:6px;padding:9px 12px;font-family:'Noto Sans JP',sans-serif;font-size:13px;color:var(--gray-800);outline:none;transition:border-color 0.15s;}
.modal-field input:focus,.modal-field textarea:focus,.modal-field select:focus{border-color:var(--gold);}
.modal-field textarea{resize:vertical;min-height:80px;}
.modal-actions{display:flex;gap:0.75rem;justify-content:flex-end;padding:0 1.5rem 1.5rem;}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:0.75rem;}

/* SECTION HEAD */
.section-head{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:1.2rem;padding-bottom:0.8rem;border-bottom:2px solid var(--gold);}
.section-head h2{font-family:'Noto Serif JP',serif;font-size:20px;font-weight:700;color:var(--navy);letter-spacing:0.04em;}
.section-head p{font-size:12px;color:var(--gray-600);}

/* TYPE BADGES */
.type-土地{background:#e8f0fc;color:#185fa5;}
.type-一棟マンション{background:#e8f5ef;color:#2d6a4f;}
.type-収益マンション,.type-収益物件{background:#faeeda;color:#854f0b;}
.type-ホテル{background:#f5ecd7;color:#8b6914;}
.type-建物{background:#fbeaf0;color:#993556;}
.type-連棟戸建,.type-中古戸建,.type-新築戸建{background:#fceaea;color:#a32d2d;}
.type-default{background:var(--gray-100);color:var(--gray-600);}

/* EMPTY & TOAST */
.empty-state{text-align:center;padding:4rem 2rem;color:var(--gray-400);}
.empty-icon{font-size:48px;margin-bottom:1rem;opacity:0.4;}
.toast{position:fixed;bottom:2rem;right:2rem;background:var(--navy);color:var(--white);padding:0.9rem 1.4rem;border-radius:8px;font-size:13px;font-weight:500;z-index:300;box-shadow:0 8px 24px rgba(0,0,0,0.2);opacity:0;transform:translateY(10px);transition:all 0.3s;max-width:360px;line-height:1.5;}
.toast.show{opacity:1;transform:translateY(0);}
.toast.success{border-left:4px solid #2d6a4f;}
.toast.error{border-left:4px solid #a32d2d;}
.toast.line{border-left:4px solid #06C755;}
.no-match{text-align:center;color:var(--gray-400);padding:2rem;font-size:13px;}

/* CONFIG PANELS */
.config-panel{border-radius:10px;padding:1.2rem 1.5rem;margin-bottom:1.5rem;}
.config-panel.blue{background:var(--info-bg);border:1px solid rgba(26,74,139,0.2);}
.config-panel.gold{background:var(--gold-pale);border:1px solid rgba(184,150,62,0.3);}
.config-panel.green{background:#e8faf0;border:1px solid rgba(6,199,85,0.3);}
.config-panel.gray{background:var(--white);border:1px solid var(--gray-200);}
.config-title{font-size:13px;font-weight:700;margin-bottom:0.8rem;display:flex;align-items:center;gap:8px;}
.config-title.blue{color:var(--info);}
.config-title.gold{color:var(--warn);}
.config-title.green{color:#05a847;}
.config-title.gray{color:var(--navy);}
.config-grid-3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:0.75rem;}
.config-grid-2{display:grid;grid-template-columns:2fr 1fr;gap:0.75rem;}
.config-label{font-size:10px;font-weight:700;letter-spacing:0.1em;margin-bottom:3px;}
.config-label.blue{color:var(--info);}
.config-label.gold{color:var(--warn);}
.config-label.green{color:#05a847;}
.config-input{border:1px solid rgba(26,74,139,0.25);border-radius:6px;padding:7px 10px;font-family:'Noto Sans JP',sans-serif;font-size:12px;color:var(--gray-800);outline:none;width:100%;background:var(--white);}
.config-input:focus{border-color:var(--gold);}
.config-input.green{border-color:rgba(6,199,85,0.3);}
.config-input.green:focus{border-color:#06C755;}

/* GAS guide */
.gas-guide{background:#1e1e2e;border-radius:10px;overflow:hidden;margin-top:0.8rem;}
.gas-guide-head{display:flex;align-items:center;justify-content:space-between;padding:0.7rem 1rem;background:#2d2d3f;border-bottom:1px solid #3d3d5a;}
.gas-guide-title{font-size:12px;font-weight:700;color:#a9b1d6;letter-spacing:0.08em;}
.gas-copy-btn{background:rgba(255,255,255,0.08);border:1px solid rgba(255,255,255,0.15);border-radius:5px;color:#a9b1d6;font-size:11px;padding:3px 10px;cursor:pointer;transition:all 0.15s;font-family:'Noto Sans JP',sans-serif;}
.gas-copy-btn:hover{background:rgba(255,255,255,0.16);color:#fff;}
.gas-guide pre{padding:1rem;font-size:11px;line-height:1.7;color:#a9b1d6;overflow-x:auto;margin:0;white-space:pre;}

/* Notification history */
.notif-list{background:var(--white);border:1px solid var(--gray-200);border-radius:10px;overflow:hidden;}
.notif-item{padding:0.9rem 1.2rem;border-bottom:1px solid var(--gray-200);display:flex;align-items:center;gap:1rem;font-size:13px;}
.notif-item:last-child{border-bottom:none;}
.notif-time{font-size:11px;color:var(--gray-400);white-space:nowrap;}
.notif-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0;}
.notif-dot.sent{background:var(--success);}
.notif-dot.line{background:#06C755;}
.notif-dot.pending{background:var(--gold);}
.notif-dot.error{background:var(--danger);}

/* Collapsible */
.collapsible-btn{background:none;border:none;color:var(--info);font-size:12px;font-weight:700;cursor:pointer;padding:0;font-family:'Noto Sans JP',sans-serif;letter-spacing:0.04em;display:flex;align-items:center;gap:4px;}
.collapsible-content{display:none;margin-top:0.8rem;}
.collapsible-content.open{display:block;}

/* ============================================================
   RESPONSIVE — タブレット (max 960px)
   ============================================================ */
@media(max-width:960px){
  .stats-inner{gap:1.2rem;}
  .match-controls{gap:0.7rem;}
  .config-grid-3{grid-template-columns:1fr 1fr;}
}

/* ============================================================
   RESPONSIVE — スマートフォン (max 700px)
   ============================================================ */
@media(max-width:700px){

  /* ── ヘッダー：ロゴ＋ハンバーガー ── */
  .header-inner{padding:0 1rem;height:56px;}
  .logo-text{font-size:13px;}
  .logo-sub{display:none;}

  /* ナビをヘッダー下に展開するドロワー */
  nav{
    display:none;
    position:fixed;
    top:56px;left:0;right:0;
    background:var(--navy);
    flex-direction:column;
    gap:0;
    z-index:99;
    border-bottom:2px solid var(--gold);
    box-shadow:0 8px 24px rgba(0,0,0,0.4);
  }
  nav.open{display:flex;}
  nav button{
    padding:14px 1.5rem;
    font-size:14px;
    border-radius:0;
    text-align:left;
    border-bottom:1px solid rgba(255,255,255,0.06);
    letter-spacing:0.04em;
  }
  nav button.active{background:rgba(184,150,62,0.18);color:var(--gold-light);font-weight:700;}

  /* ハンバーガーボタン */
  .hamburger{
    display:flex;
    flex-direction:column;
    gap:5px;
    background:none;
    border:none;
    cursor:pointer;
    padding:8px;
    margin-left:auto;
  }
  .hamburger span{
    display:block;
    width:22px;height:2px;
    background:rgba(255,255,255,0.8);
    border-radius:2px;
    transition:all 0.25s;
  }
  .hamburger.open span:nth-child(1){transform:translateY(7px) rotate(45deg);}
  .hamburger.open span:nth-child(2){opacity:0;}
  .hamburger.open span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}

  /* ── SYNC バナー ── */
  .sync-inner{flex-direction:column;align-items:flex-start;padding:0.7rem 1rem;gap:0.6rem;}
  .sync-divider{display:none;}
  .sync-section{width:100%;}
  .automatch-wrap{margin-left:0;width:100%;justify-content:space-between;}

  /* ── STATS バー ── */
  .stats-bar{padding:0.6rem 1rem;}
  .stats-inner{gap:0.8rem;}
  .stat-val{font-size:16px;}
  .stats-inner > div:last-child{width:100%;display:flex;gap:6px;}
  .stats-inner > div:last-child button{flex:1;font-size:11px;padding:8px 6px;}

  /* ── メインコンテンツ ── */
  .main-wrap{padding:0.8rem 0.75rem 5rem;}
  .section-head{flex-direction:column;align-items:flex-start;gap:0.6rem;}
  .section-head > div:last-child{width:100%;}
  .section-head button{width:100%;}

  /* ── マッチングタブ ── */
  .match-tab{font-size:11px;padding:10px 4px;}
  .match-tab-bar{margin-bottom:0.8rem;}

  /* ── マッチングコントロール ── */
  .match-controls{flex-direction:column;align-items:stretch;gap:0.7rem;padding:1rem;}
  .match-controls label{margin-top:0.2rem;}
  .match-controls select,
  .match-controls input[type="text"]{width:100%;}
  .match-controls > button{width:100%;}
  .score-threshold{justify-content:flex-start;}
  .score-threshold input[type="range"]{flex:1;}

  /* 買主/売主指定パネル内ボタン */
  #buyer-match-btn, #seller-match-btn{width:100%;margin-top:0.3rem;}
  .pin-select{width:100%;}
  .pin-filter-row > div{flex-direction:column;}
  .pin-filter-row > div > div{width:100%;}
  .pin-filter-row > div > div input,
  .pin-filter-row > div > div select{width:100%;}

  /* ── マッチングカード ── */
  .match-header{grid-template-columns:1fr;gap:0.7rem;}
  .match-score-badge{order:-1;display:flex;align-items:center;gap:0.7rem;justify-content:flex-start;}
  .score-circle{width:44px;height:44px;}
  .score-num{font-size:14px;}
  .score-bar-wrap{flex:1;}
  .match-body{padding:0.75rem 1rem;gap:0.4rem;}
  .match-result-card{margin-bottom:0.75rem;}
  .contact-btn,.notify-btn,.line-notify-btn{font-size:11px;padding:6px 10px;}

  /* ── テーブル：横スクロール ── */
  .data-table,.pin-result-table{font-size:12px;}
  .table-controls{flex-wrap:wrap;gap:0.5rem;}
  .search-input{min-width:0;flex:1;}
  /* テーブルラッパーに横スクロール付与（JSで追加） */
  .table-scroll-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;border-radius:10px;}

  /* ── フォーム・モーダル ── */
  .form-grid{grid-template-columns:1fr;}
  .modal-box{border-radius:12px 12px 0 0;position:fixed;bottom:0;left:0;right:0;max-height:92vh;max-width:100%;}
  .modal-overlay{align-items:flex-end;padding:0;}
  .modal-head{border-radius:12px 12px 0 0;}

  /* ── 詳細グリッド ── */
  .detail-grid{grid-template-columns:1fr;}

  /* ── 設定画面 ── */
  .config-grid-3{grid-template-columns:1fr;}
  .config-grid-2{grid-template-columns:1fr;}
  .config-panel{padding:1rem;}
  .notif-target-row{grid-template-columns:1fr 1fr auto !important;}

  /* ── 固定フッターナビ（スマホ専用） ── */
  .mobile-nav{
    display:flex;
    position:fixed;
    bottom:0;left:0;right:0;
    background:var(--navy);
    border-top:2px solid var(--gold);
    z-index:98;
    box-shadow:0 -4px 16px rgba(0,0,0,0.3);
  }
  .mobile-nav button{
    flex:1;
    background:none;
    border:none;
    color:rgba(255,255,255,0.55);
    font-family:'Noto Sans JP',sans-serif;
    font-size:9px;
    font-weight:700;
    padding:8px 2px 10px;
    cursor:pointer;
    display:flex;
    flex-direction:column;
    align-items:center;
    gap:3px;
    letter-spacing:0.04em;
    transition:color 0.15s;
    position:relative;
  }
  .mobile-nav button .mn-icon{font-size:18px;line-height:1;}
  .mobile-nav button.active{color:var(--gold);}
  .mobile-nav button.active::after{
    content:'';
    position:absolute;
    top:0;left:25%;right:25%;
    height:2px;
    background:var(--gold);
    border-radius:0 0 2px 2px;
  }
  .mobile-nav .mn-badge{
    position:absolute;
    top:4px;right:calc(50% - 16px);
    background:var(--gold);
    color:var(--navy);
    font-size:9px;
    font-weight:700;
    min-width:16px;
    height:16px;
    border-radius:8px;
    display:flex;align-items:center;justify-content:center;
    padding:0 3px;
  }

  /* ── 指定マッチング結果テーブル ── */
  .pin-result-wrap{border-radius:8px;}
  .pin-result-actions{flex-wrap:wrap;gap:0.4rem;}
  .pin-result-actions button{font-size:11px;padding:6px 10px;}
}

/* ハンバーガーはPC非表示 */
.hamburger{display:none;}
.mobile-nav{display:none;}

/* PASSWORD GATE */
#pw-gate{position:fixed;inset:0;background:var(--navy);z-index:9999;display:flex;align-items:center;justify-content:center;padding:1rem;}
.pw-box{background:rgba(255,255,255,0.05);border:1px solid rgba(184,150,62,0.35);border-radius:16px;padding:2.5rem 2rem;width:100%;max-width:360px;text-align:center;}
.pw-logo{width:52px;height:52px;background:var(--gold);display:flex;align-items:center;justify-content:center;font-family:'Noto Serif JP',serif;font-weight:700;font-size:16px;color:var(--navy);border-radius:8px;margin:0 auto 1rem;}
.pw-title{font-family:'Noto Serif JP',serif;font-size:18px;font-weight:700;color:var(--white);margin-bottom:4px;}
.pw-sub{font-size:11px;color:var(--gold-light);letter-spacing:0.15em;margin-bottom:2rem;}
.pw-input{width:100%;border:1px solid rgba(184,150,62,0.4);border-radius:8px;padding:12px 16px;font-size:15px;color:var(--white);background:rgba(255,255,255,0.08);outline:none;text-align:center;letter-spacing:0.25em;margin-bottom:0.75rem;transition:border-color 0.2s;font-family:'Noto Sans JP',sans-serif;}
.pw-input:focus{border-color:var(--gold);}
.pw-input.shake{animation:pw-shake 0.4s ease;}
@keyframes pw-shake{0%,100%{transform:translateX(0);}20%,60%{transform:translateX(-8px);}40%,80%{transform:translateX(8px);}}
.pw-btn{width:100%;background:var(--gold);color:var(--navy);border:none;padding:12px;border-radius:8px;font-family:'Noto Sans JP',sans-serif;font-size:14px;font-weight:700;cursor:pointer;transition:background 0.18s;letter-spacing:0.06em;}
.pw-btn:hover{background:var(--gold-light);}
.pw-error{font-size:12px;color:#f28b82;margin-top:0.75rem;display:none;}
.pw-hint{font-size:11px;color:rgba(255,255,255,0.25);margin-top:1.5rem;}

/* NAV BADGES */
.nav-badge{background:rgba(255,255,255,0.15);color:rgba(255,255,255,0.8);font-size:10px;font-weight:700;padding:1px 7px;border-radius:100px;margin-left:4px;vertical-align:middle;transition:all 0.18s;display:inline-block;min-width:20px;text-align:center;}
nav button.active .nav-badge{background:var(--navy);color:var(--gold);}
.nav-badge.zero{opacity:0.3;}

/* TABLE SORT */
th.sortable{cursor:pointer;user-select:none;}
th.sortable:hover{background:rgba(255,255,255,0.12)!important;}
.sort-arrow{display:inline-block;margin-left:4px;opacity:0.3;font-size:10px;}
.sort-arrow.active{opacity:1;}
.data-table tbody tr.clickable{cursor:pointer;}

/* SCORE BAR */
.score-bar-wrap{margin-top:6px;width:60px;}
.score-bar-track{height:4px;background:var(--gray-200);border-radius:2px;overflow:hidden;}
.score-bar-fill{height:100%;border-radius:2px;transition:width 0.5s ease;}
.score-bar-fill.high{background:var(--success);}
.score-bar-fill.mid{background:var(--gold);}
.score-bar-fill.low{background:var(--gray-400);}

/* FORM VALIDATION */
.modal-field input.invalid,.modal-field select.invalid{border-color:var(--danger)!important;background:#fff8f8;}
.required-mark{color:var(--danger);margin-left:1px;}

/* DETAIL MODAL */
.detail-section{margin-bottom:1rem;padding-bottom:1rem;border-bottom:1px solid var(--gray-200);}
.detail-section:last-child{border-bottom:none;margin-bottom:0;padding-bottom:0;}
.detail-section h4{font-size:10px;font-weight:700;color:var(--gray-600);letter-spacing:0.12em;margin-bottom:0.7rem;text-transform:uppercase;}
.detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:0.7rem;}
.detail-label{font-size:10px;color:var(--gray-400);margin-bottom:2px;}
.detail-val{font-size:13px;font-weight:500;color:var(--navy);word-break:break-all;}
.detail-val a{color:var(--info);text-decoration:none;}
.modal-foot-left{margin-right:auto;}
