*{box-sizing:border-box}
body{margin:0;font-family:-apple-system,"Hiragino Sans","Noto Sans JP",sans-serif;color:#f5f5f7;background:#04122e url('bg.webp') center/cover fixed no-repeat;min-height:100vh}
.overlay{position:fixed;inset:0;background:rgba(0,0,0,.30);z-index:0}
.wrap{position:relative;z-index:1;max-width:672px;margin:0 auto;padding:16px 14px 40px}
.intro p{line-height:1.7;font-size:14px}
.site-title{font-size:30px;font-weight:800;text-align:center;line-height:1.4;margin:8px 0 12px;letter-spacing:.02em}
.intro-emph{font-weight:800;font-size:16px;color:#ffd166}
.tabs{display:flex;gap:4px;margin:20px 0 0;padding:0 8px;border-bottom:2px solid #767c8d;position:relative;z-index:3}
.tab{flex:1;min-width:0;padding:12px 6px 13px;border:1px solid #767c8d;border-bottom:none;border-radius:12px 12px 0 0;background:rgba(23,26,36,.88);color:#b9c1d1;font-size:15px;cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
@media (max-width:480px){.tabs{padding:0 4px;gap:3px}.tab{font-size:clamp(12px,3.6vw,15px);padding:11px 4px 12px;letter-spacing:-.02em}}
.tab.active{color:#fff;font-weight:700;transform:translateY(2px)}
.tab-reg.active{background:#e5484d;border-color:#e5484d}
.tab-search.active{background:#0f766e;border-color:#0f766e}
#pane-reg,#pane-search{border:2px solid #767c8d;border-top:none;border-radius:0 0 14px 14px;padding:10px 14px 22px;background:rgba(8,12,22,.38)}
.frame-box{border:2px solid;border-radius:14px;padding:6px 14px 16px;margin:20px 0;background:rgba(10,14,24,.35)}
.frame-offer{border-color:rgba(229,72,77,.8)}
.frame-want{border-color:rgba(31,174,148,.75)}
.frame-box .big-head{margin-top:10px}
.hidden{display:none!important}
.desc{font-size:14px;line-height:1.7}
.big-head{font-size:22px;margin:22px 0 10px}
.big-head-sub{font-size:16px;font-weight:700}
.offer-color{color:#e5484d}
.want-color{color:#1fae94}
.offer-color-search{color:#5ea2e5}
.req-badge{display:inline-block;font-size:11px;background:#c22730;color:#fff;border-radius:4px;padding:2px 7px;vertical-align:middle;font-weight:700}
.step-head{font-size:15px;font-weight:700;margin:14px 0 6px;cursor:pointer}
.hint{font-size:12px;color:#c9d4e3;margin:0 0 8px;line-height:1.6}
.summary-line{font-size:13px;line-height:1.6;color:#ffe9a8;margin:8px 0 2px;display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.summary-line:empty{display:none}
.clear-btn{padding:2px 10px;border-radius:999px;border:1px solid #aaa;background:rgba(40,40,48,.9);color:#fff;cursor:pointer;font-size:12px}
.chips{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:6px}
.chip{padding:8px 14px;border-radius:999px;border:1px solid #aaa;background:rgba(40,40,48,.9);color:#fff;cursor:pointer;font-size:14px}
.chip.sel{background:#666;border-color:#fff;font-weight:700}
.accent-offer .chip.sel{background:#e5484d;border-color:#e5484d}
.accent-want .chip.sel{background:#0f766e;border-color:#0f766e}
.accent-offer-search .chip.sel{background:#2f7fd0;border-color:#2f7fd0}
.grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
.tile{position:relative;border:2px solid transparent;border-radius:8px;overflow:hidden;cursor:pointer;background:#222;padding:0}
.tile.sel{border-color:#fff;transform:scale(1.05);z-index:1}
.accent-offer .tile.sel{border-color:#e5484d}
.accent-want .tile.sel{border-color:#0f766e}
.accent-offer-search .tile.sel{border-color:#2f7fd0}
.tile img{width:100%;aspect-ratio:55/85;object-fit:cover;display:block}
.tile-label{position:absolute;left:4px;bottom:4px;background:rgba(0,0,0,.72);color:#fff;font-size:10px;line-height:1.3;border-radius:4px;padding:2px 5px;max-width:calc(100% - 34px);text-align:left}
.tile-check{position:absolute;top:4px;left:4px;width:20px;height:20px;border-radius:50%;background:#f5c542;color:#111;font-size:13px;font-weight:700;display:flex;align-items:center;justify-content:center}
.tile-zoom{position:absolute;right:4px;bottom:4px;width:26px;height:26px;border-radius:50%;border:none;background:rgba(0,0,0,.72);color:#fff;font-size:13px;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0}
.noimage{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;line-height:1.5;aspect-ratio:55/85;background:#333;color:#bbb;font-size:12px;width:100%}
.thumb{width:84px;border-radius:6px;cursor:pointer;display:block}
.thumb-noimage{width:84px;display:inline-flex;border-radius:6px;font-size:10px}
.thumb-row{display:flex;flex-wrap:wrap;gap:8px;margin:4px 0;align-items:flex-end}
/* 求候補のサムネイルは小さく詰めて並べる。一致した候補（両想い・候補2件以上）は黄色枠＋少し大きく */
.want-thumbs{gap:3px}
.thumb.thumb-sm,.thumb-noimage.thumb-sm{width:42px;border-radius:4px}
.thumb-noimage.thumb-sm{font-size:7px;line-height:1.3}
.thumb.thumb-match,.thumb-noimage.thumb-match{width:52px;outline:3px solid #f5c542;outline-offset:-1px;box-shadow:0 0 6px rgba(245,197,66,.6)}
.preview img{width:110px;border-radius:8px}
.preview .grid{margin:2px 0 10px}
.preview .tile img{width:100%;border-radius:0}
.field-label{display:block;margin:14px 0 4px;font-size:14px;font-weight:700}
input[type=text],input[type=url],input[type=password],textarea{width:100%;padding:10px;border-radius:8px;border:1px solid #888;background:rgba(20,20,25,.9);color:#fff;font-size:15px}
.check-row{display:flex;gap:8px;align-items:center;margin:12px 0;font-size:15px}
.check-row.mail-check{font-size:18px;font-weight:700;margin:18px 0 6px;padding:12px;border:1.5px solid #8a8a96;border-radius:10px;background:rgba(40,40,48,.85);cursor:pointer}
.check-row.mail-check input{width:26px;height:26px;flex:none;margin:0;cursor:pointer}
.error{color:#ff8fa3;font-size:13px}
.primary-btn{width:100%;padding:14px;margin-top:16px;border:none;border-radius:10px;background:#e5484d;color:#fff;font-size:17px;font-weight:700;cursor:pointer}
.sub-btn{padding:9px 14px;border-radius:8px;border:1px solid #aaa;background:rgba(40,40,48,.9);color:#fff;cursor:pointer}
.pill-btn{border-radius:999px}
.msg{font-size:14px;min-height:1.2em}
.card{position:relative;background:rgba(25,25,32,.92);border:1px solid #555;border-radius:12px;padding:8px 10px;margin-bottom:10px}
.card.mutual-card{border:2px solid #f5c542;box-shadow:0 0 12px rgba(245,197,66,.35)}
.card .labels{font-size:12px;line-height:1.5;word-break:break-all}
.card-head{display:flex;align-items:center;gap:4px 8px;flex-wrap:wrap;font-size:11px;color:#c9d4e3;border-bottom:1px solid #444;padding-bottom:4px;margin-bottom:6px;min-height:20px}
.card-head .who{font-weight:700;color:#fff;font-size:12px}
/* 両想いバッジ: カード右上に配置。見出しは右に余白を取り、バッジと重ならないようにする */
.badge.mutual-corner{position:absolute;top:6px;right:8px;margin:0;z-index:1;font-size:11px;padding:2px 7px;font-weight:700}
.mutual-card .card-head{padding-right:104px}
.pchips{line-height:1.2;margin-top:3px}
.pchip{display:inline-block;border:1px solid #8a8a96;border-radius:999px;padding:0 6px;margin:0 3px 3px 0;font-size:10.5px;line-height:1.5;background:rgba(52,52,64,.85);color:#fff}
.side-head{display:block;font-size:14px;line-height:1.3;margin-bottom:2px}
.card-btns{margin-top:6px;display:flex;gap:6px;flex-wrap:nowrap}
.card .sub-btn{padding:6px 11px;font-size:13px}
/* 検索結果カードのボタン行（募集投稿を見る／登録一覧を見る）は折り返さず必ず横並び。スマホ幅では文字と余白を詰める */
.card .card-btns .sub-btn{flex:0 1 auto;min-width:0;white-space:nowrap;padding:6px clamp(5px,2vw,11px);font-size:clamp(10.5px,3.3vw,13px)}
.note-text{font-size:13px;line-height:1.6;margin-top:4px;white-space:pre-wrap;word-break:break-word}
.badge{display:inline-block;background:#0e7c86;color:#fff;border-radius:6px;padding:2px 8px;font-size:12px;margin:2px 4px 2px 0}
.badge.mail{background:#555;font-size:14px;font-weight:700;padding:3px 10px;border-radius:8px;margin:4px 6px 2px 0;line-height:1.4}
.badge.mutual{background:#b8860b}
.teal-note{color:#4fd8e0;font-size:13px;font-weight:700}
.exchange{display:flex;gap:6px;align-items:flex-start}
.exchange .side{flex:1;min-width:0}
.exchange .arrow{align-self:center;font-size:18px}
.card .note-text{font-size:12px;margin-top:2px}
.card .cand-note{font-size:11px;margin:2px 0 0}
.card .report-row{margin-top:0}
.pager{display:flex;gap:10px;align-items:center;justify-content:center;margin:12px 0;font-size:14px}
.pager button{padding:8px 14px;border-radius:8px;border:1px solid #aaa;background:rgba(40,40,48,.9);color:#fff;cursor:pointer}
.del-open-row{margin-top:10px}
.del-form{display:flex;gap:6px;flex-wrap:wrap;margin-top:10px}
.del-form input{flex:1;min-width:110px}
.filter-box{border:2px solid #f5c542;border-radius:14px;padding:6px 14px 14px;background:rgba(18,22,34,.55);margin-bottom:18px}
.filter-box .big-head{margin-top:14px}
.filter-head{color:#f5c542;font-size:18px;margin:12px 0 4px}
.search-error{background:rgba(90,20,28,.85);border:1px solid #ff8fa3;border-radius:10px;padding:12px;font-size:14px;line-height:1.6}
.byx-head-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.byx-head-row .big-head{margin-right:auto}
.empty-card{border:1.5px dashed #8a8a96;border-radius:12px;padding:16px;text-align:center;color:#c9d4e3;line-height:1.7;background:rgba(25,25,32,.6)}
.mercari-wrap{position:relative;text-align:center;margin:22px 0;padding-bottom:18px}
.mercari-target{font-size:14px;margin:0 0 8px;font-weight:700}
.mercari-box{position:relative;display:inline-block}
.mercari-btn{display:inline-flex;gap:8px;align-items:center;background:#e5484d;color:#fff;text-decoration:none;border-radius:999px;padding:10px 18px;font-weight:700;font-size:14px}
.mercari-badge{background:#2e8b57;color:#fff;border-radius:50%;width:26px;height:26px;display:inline-flex;align-items:center;justify-content:center;font-size:13px}
.mercari-pr{position:absolute;right:2px;top:calc(100% + 2px);font-size:10px;color:#ccc}
.modal{position:fixed;inset:0;background:rgba(0,0,0,.85);display:flex;flex-direction:column;align-items:center;justify-content:center;z-index:50;cursor:pointer}
.modal img{width:76vw;max-width:430px;border-radius:10px}
.modal-close{position:absolute;top:12px;right:14px;width:38px;height:38px;border-radius:50%;border:1px solid #aaa;background:rgba(30,30,38,.9);color:#fff;font-size:16px;cursor:pointer}
.modal-caption{color:#eee;font-size:13px;margin:10px 16px 0;text-align:center;line-height:1.6}
.footer{margin-top:30px;font-size:13px;line-height:1.8;color:#ddd}
a.xlink{color:#7cc7ff}
.flow-steps{font-size:14px;line-height:1.7;margin:4px 0 10px;padding-left:22px}
.publish-box{border:2px solid #f5c542;border-radius:14px;padding:8px 14px 14px;margin:16px 0;background:rgba(40,34,10,.55)}
.publish-head{font-size:17px;font-weight:800;color:#ffd166;margin:8px 0}
.tweet-preview{white-space:pre-wrap;word-break:break-word;font-family:inherit;font-size:13px;line-height:1.6;background:rgba(20,20,25,.9);border:1px solid #666;border-radius:8px;padding:8px 10px;margin:6px 0}
.card-actions{margin-top:8px;display:flex;gap:8px;flex-wrap:wrap;align-items:center;font-size:13px}
.cand-note{font-size:12px;color:#ffe9a8;margin:2px 0}
.tile-label-top{top:4px;bottom:auto;left:auto;right:4px;max-width:calc(100% - 30px)}
.report-row{text-align:right;margin-top:4px}
.report-link{background:none;border:none;color:#9aa3b5;font-size:11px;text-decoration:underline;cursor:pointer;padding:2px 0}
.report-link:disabled{text-decoration:none;cursor:default;color:#7a8294}
.status-badge{display:inline-block;border-radius:6px;padding:2px 8px;font-size:12px;font-weight:700;background:#0f766e;color:#fff}
.status-badge.status-draft{background:#8a6d00}
.status-badge.status-broken{background:#9b2c35}
.mine-card.status-draft{border-style:dashed}
.publish-inline{margin-top:8px;display:flex;flex-direction:column;gap:6px}
.publish-inline .pub-btn{align-self:flex-start}
.check-row.small{font-size:13px;margin:2px 0}
.edit-form{margin-top:8px}
.msg.error{color:#ff8fa3}
.region-head{width:100%;font-size:13px;color:#ccc;margin:6px 0 2px;font-weight:700}
/* ？ヘルプ */
.intro{position:relative}
.help-btn{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;margin-left:6px;padding:0;border-radius:50%;border:1px solid #c9d4e3;background:rgba(40,40,48,.9);color:#fff;font-size:12px;font-weight:700;line-height:1;cursor:pointer;vertical-align:middle;flex:none}
.help-btn:hover{background:#555}
.help-top{position:absolute;left:0;top:4px;margin:0;width:24px;height:24px;font-size:14px}
.site-title{padding:0 26px}
.pane-help-row{font-size:13px;color:#c9d4e3;margin:6px 0 0;display:flex;align-items:center}
.inline-help{font-size:13px;color:#c9d4e3;margin:0;display:flex;align-items:center}
.check-line{display:flex;align-items:center;gap:4px}
.check-line .check-row{margin:10px 0}
.submit-head{display:flex;align-items:center;margin:18px 0 0}
.submit-head + .primary-btn{margin-top:6px}
.field-label .help-btn,.big-head .help-btn,.filter-head .help-btn,.publish-head .help-btn{margin-left:8px}
.step-head-plain{font-size:15px;font-weight:700;margin:14px 0 6px}
.direct-box{margin:10px 0 0;padding:4px 12px 10px;border:1.5px dashed #8a8a96;border-radius:10px;background:rgba(25,25,32,.5)}
.direct-box .field-label{display:flex;align-items:center;margin-top:8px}
.direct-btn{width:100%;margin-top:8px;font-size:15px;font-weight:700}
.help-modal{cursor:default;padding:16px}
.help-box{position:relative;width:100%;max-width:520px;max-height:82vh;overflow:auto;background:rgba(25,25,32,.98);border:1px solid #8a8a96;border-radius:14px;padding:14px 16px 16px;color:#f5f5f7}
.help-close{top:8px;right:8px;width:32px;height:32px;font-size:14px}
.help-title{font-size:17px;margin:2px 40px 10px 0;color:#ffd166}
.help-body{font-size:14px;line-height:1.75}
.help-body ul,.help-body ol{padding-left:20px;margin:6px 0}
.help-body li{margin-bottom:4px}
.help-body p{margin:6px 0}
.help-emph{color:#ffd166}
