/* Z隊BBS - bbs.css */

/* ============================================================
   変数
   ============================================================ */
:root {
    --znbbs-pink:       #D4537E;
    --znbbs-pink-light: #FBEAF0;
    --znbbs-pink-border:#F4C0D1;
    --znbbs-pink-dark:  #993556;
    --znbbs-blue:       #378ADD;
    --znbbs-blue-light: #E6F1FB;
    --znbbs-green:      #639922;
    --znbbs-green-light:#EAF3DE;
    --znbbs-green-border:#C0DD97;
    --znbbs-amber:      #BA7517;
    --znbbs-amber-light:#FAEEDA;
    --znbbs-gray:       #888780;
    --znbbs-radius:     10px;
    --znbbs-radius-sm:  6px;
    --znbbs-shadow:     0 1px 3px rgba(0,0,0,0.08);
}

/* ============================================================
   ラッパー
   ============================================================ */
.znbbs-wrap,
.znbbs-form-wrap {
    width: 100%;
    font-size: 14px;
    line-height: 1.6;
}

/* ============================================================
   言語バー
   ============================================================ */
.znbbs-lang-bar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 8px 0 12px;
    flex-wrap: wrap;
    gap: 8px;
}

.znbbs-lang-notice {
    font-size: 11px;
    color: #888;
}

.znbbs-lang-toggle {
    display: flex;
    border: 1px solid #ddd;
    border-radius: 20px;
    overflow: hidden;
}

.znbbs-lt-btn {
    padding: 3px 12px;
    border: none;
    background: transparent;
    cursor: pointer;
    font-size: 12px;
    color: #888;
    transition: all 0.15s;
}

.znbbs-lt-btn.active {
    background: var(--znbbs-pink);
    color: #fff;
    font-weight: 500;
}

/* ============================================================
   スレッドタブ
   ============================================================ */
.znbbs-thread-tabs {
    display: flex;
    border-bottom: 1px solid #e5e5e5;
    margin-bottom: 14px;
}

.znbbs-tab-btn {
    flex: 1;
    padding: 10px 8px;
    border: none;
    background: transparent;
    cursor: pointer;
    font-size: 13px;
    color: #888;
    border-bottom: 2px solid transparent;
    font-weight: 500;
    text-align: center;
    text-decoration: none;
    transition: all 0.15s;
}

.znbbs-tab-btn.active {
    color: var(--znbbs-pink);
    border-bottom-color: var(--znbbs-pink);
}

/* ============================================================
   フォームセクション
   ============================================================ */
.znbbs-section {
    background: #fff;
    border: 1px solid #e5e5e5;
    border-radius: var(--znbbs-radius);
    padding: 14px;
    margin-bottom: 10px;
}

.znbbs-label {
    display: block;
    font-size: 11px;
    font-weight: 600;
    color: #888;
    letter-spacing: 0.05em;
    margin-bottom: 6px;
    text-transform: uppercase;
}

.znbbs-req { color: var(--znbbs-pink); }

.znbbs-hint {
    font-size: 11px;
    color: #aaa;
    margin: 5px 0 0;
}

.znbbs-row-2 {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
}

.znbbs-section input[type="text"],
.znbbs-section input[type="email"],
.znbbs-section input[type="date"],
.znbbs-section select,
.znbbs-section textarea {
    width: 100%;
    padding: 8px 10px;
    border: 1px solid #ddd;
    border-radius: var(--znbbs-radius-sm);
    font-size: 13px;
    box-sizing: border-box;
    background: #fafafa;
    transition: border 0.15s;
}

.znbbs-section input:focus,
.znbbs-section select:focus,
.znbbs-section textarea:focus {
    outline: none;
    border-color: var(--znbbs-pink);
    background: #fff;
}

/* ============================================================
   写真アップロード
   ============================================================ */
.znbbs-photo-upload {
    display: flex;
    gap: 12px;
    align-items: flex-start;
}

.znbbs-photo-main {
    width: 72px;
    height: 72px;
    border-radius: var(--znbbs-radius-sm);
    background: var(--znbbs-pink-light);
    border: 1px dashed var(--znbbs-pink);
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    flex-shrink: 0;
    font-size: 24px;
    color: var(--znbbs-pink);
    position: relative;
    overflow: hidden;
}

.znbbs-photo-main input[type="file"] {
    position: absolute;
    inset: 0;
    opacity: 0;
    cursor: pointer;
    width: 100%;
    height: 100%;
}

.znbbs-photo-blue {
    background: var(--znbbs-blue-light);
    border-color: var(--znbbs-blue);
    color: var(--znbbs-blue);
}

.znbbs-photo-hint {
    font-size: 11px;
    color: #aaa;
    margin: 0 0 6px;
}

/* ============================================================
   選択ボタン（エリア・ステータス・目的）
   ============================================================ */
.znbbs-choice-group {
    display: flex;
    flex-wrap: wrap;
    gap: 7px;
}

.znbbs-choice-btn {
    padding: 7px 13px;
    border-radius: var(--znbbs-radius-sm);
    border: 1px solid #ddd;
    background: #f7f7f7;
    color: #666;
    font-size: 12px;
    cursor: pointer;
    transition: all 0.15s;
}

.znbbs-choice-btn.active,
.znbbs-choice-btn:hover {
    border-color: var(--znbbs-pink);
    background: var(--znbbs-pink-light);
    color: var(--znbbs-pink-dark);
}

/* ============================================================
   連絡先
   ============================================================ */
.znbbs-contact-list {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.znbbs-contact-row {
    display: flex;
    align-items: center;
    gap: 9px;
}

.znbbs-contact-row input {
    flex: 1;
    padding: 7px 10px;
    border: 1px solid #ddd;
    border-radius: var(--znbbs-radius-sm);
    font-size: 12px;
    background: #fafafa;
    box-sizing: border-box;
}

.znbbs-contact-icon {
    width: 34px;
    height: 34px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 11px;
    font-weight: 600;
    flex-shrink: 0;
    color: #fff;
}

.znbbs-icon-line   { background: #06C755; }
.znbbs-icon-kakao  { background: #FAE300; color: #3A1D1D; }
.znbbs-icon-x      { background: #1a1a1a; }
.znbbs-icon-email  { background: #888; }
.znbbs-icon-ig     { background: #E1306C; }
.znbbs-icon-of     { background: #00AFF0; }

/* X プレビュー */
.znbbs-x-preview {
    margin-left: 43px;
    background: #f7f7f7;
    border: 1px solid #ddd;
    border-radius: var(--znbbs-radius-sm);
    padding: 8px 10px;
}

.znbbs-x-preview-inner {
    display: flex;
    align-items: center;
    gap: 8px;
}

.znbbs-x-avatar {
    width: 30px;
    height: 30px;
    border-radius: 50%;
    background: #1a1a1a;
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 12px;
    font-weight: 600;
    flex-shrink: 0;
}

.znbbs-x-name   { margin: 0; font-size: 12px; font-weight: 500; }
.znbbs-x-handle { margin: 0; font-size: 11px; color: #888; }

/* ============================================================
   インフォボックス
   ============================================================ */
.znbbs-info-box {
    border-radius: var(--znbbs-radius-sm);
    padding: 9px 12px;
    font-size: 12px;
    line-height: 1.7;
    margin-bottom: 12px;
}

.znbbs-info-green { background: var(--znbbs-green-light); border: 1px solid var(--znbbs-green-border); color: #2d5a0e; }
.znbbs-info-blue  { background: var(--znbbs-blue-light);  border: 1px solid #85B7EB; color: #185FA5; }
.znbbs-info-amber { background: var(--znbbs-amber-light); border: 1px solid #FAC775; color: #7a4a0a; }

/* ============================================================
   ボタン
   ============================================================ */
.znbbs-submit-btn {
    width: 100%;
    padding: 13px;
    border: none;
    border-radius: var(--znbbs-radius);
    font-size: 14px;
    font-weight: 600;
    cursor: pointer;
    transition: opacity 0.2s;
}

.znbbs-submit-btn:disabled { opacity: 0.6; cursor: not-allowed; }

.znbbs-btn-pink { background: var(--znbbs-pink); color: #fff; }
.znbbs-btn-blue { background: var(--znbbs-blue); color: #fff; }
.znbbs-btn-pink:hover { background: var(--znbbs-pink-dark); }
.znbbs-btn-blue:hover { background: #185FA5; }

.znbbs-btn-outline {
    background: transparent;
    border: 1px solid var(--znbbs-pink);
    color: var(--znbbs-pink-dark);
    border-radius: var(--znbbs-radius-sm);
    cursor: pointer;
    font-size: 11px;
    padding: 4px 10px;
    white-space: nowrap;
}

.znbbs-btn-sm { padding: 4px 9px; font-size: 11px; }

/* ============================================================
   メッセージエリア
   ============================================================ */
.znbbs-form-msg {
    padding: 10px 14px;
    border-radius: var(--znbbs-radius-sm);
    font-size: 13px;
    margin-bottom: 12px;
}

.znbbs-msg-success { background: var(--znbbs-green-light); border: 1px solid var(--znbbs-green-border); color: #2d5a0e; }
.znbbs-msg-error   { background: #FCEBEB; border: 1px solid #F09595; color: #A32D2D; }

/* ============================================================
   ギャラリー
   ============================================================ */
.znbbs-gallery-upload {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 6px;
}

.znbbs-gallery-slot {
    height: 60px;
    border-radius: var(--znbbs-radius-sm);
    border: 1px dashed #ddd;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    font-size: 20px;
    color: #aaa;
    background: #fafafa;
    transition: border-color 0.15s;
}

.znbbs-gallery-slot:first-child {
    background: var(--znbbs-pink-light);
    border-color: var(--znbbs-pink);
    color: var(--znbbs-pink);
}

/* ============================================================
   カードグリッド（一覧）
   ============================================================ */
.znbbs-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 12px;
    margin-bottom: 16px;
}

@media (max-width: 768px) {
    .znbbs-grid { grid-template-columns: repeat(2, 1fr); gap: 8px; }
    .znbbs-row-2 { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 480px) {
    .znbbs-grid { grid-template-columns: repeat(2, 1fr); gap: 6px; }
}

/* ============================================================
   カード
   ============================================================ */
.znbbs-card {
    background: #fff;
    border: 1px solid #e5e5e5;
    border-radius: var(--znbbs-radius);
    overflow: hidden;
    display: flex;
    flex-direction: column;
    box-shadow: var(--znbbs-shadow);
}

.znbbs-card-photo {
    position: relative;
    width: 100%;
    height: 130px;
    background: #f4c0d1;
    background-size: cover;
    background-position: center;
    overflow: hidden;
}

.znbbs-card-photo-placeholder {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 32px;
    opacity: 0.5;
}

/* サムネイルストリップ */
.znbbs-gallery-strip {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 2px;
    background: #e5e5e5;
    height: 36px;
}

.znbbs-gallery-thumb {
    height: 36px;
    background-size: cover;
    background-position: center;
    background-color: #f4c0d1;
}

.znbbs-card-body {
    padding: 10px;
    display: flex;
    flex-direction: column;
    gap: 6px;
    flex: 1;
}

.znbbs-card-header {
    display: flex;
    align-items: center;
    gap: 5px;
    flex-wrap: wrap;
}

.znbbs-card-name {
    font-weight: 600;
    font-size: 14px;
    color: #333;
}

.znbbs-card-country {
    font-size: 11px;
    color: #888;
    background: #f5f5f5;
    padding: 1px 6px;
    border-radius: 4px;
}

.znbbs-card-purposes {
    display: flex;
    gap: 3px;
    flex-wrap: wrap;
}

.znbbs-card-message p {
    font-size: 12px;
    color: #666;
    margin: 0 0 4px;
    line-height: 1.6;
}

.znbbs-msg-translated {
    font-size: 12px;
    color: #888;
    background: #f7f7f7;
    border-radius: var(--znbbs-radius-sm);
    padding: 6px 8px;
    line-height: 1.6;
    margin-bottom: 4px;
}

.znbbs-translate-btn {
    font-size: 11px;
    color: var(--znbbs-pink-dark);
    background: var(--znbbs-pink-light);
    border: 1px solid var(--znbbs-pink-border);
    padding: 2px 9px;
    border-radius: var(--znbbs-radius-sm);
    cursor: pointer;
    width: fit-content;
}

/* ============================================================
   SNSリンク
   ============================================================ */
.znbbs-sns-row {
    display: flex;
    gap: 6px;
    flex-wrap: wrap;
}

.znbbs-sns-btn {
    padding: 4px 10px;
    border-radius: 20px;
    font-size: 11px;
    font-weight: 600;
    color: #fff;
    text-decoration: none;
    display: inline-flex;
    align-items: center;
    gap: 4px;
}

.znbbs-sns-x  { background: #1a1a1a; }
.znbbs-sns-ig { background: #E1306C; }
.znbbs-sns-of { background: #00AFF0; }

/* ============================================================
   カードフッター・連絡先
   ============================================================ */
.znbbs-card-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    border-top: 1px solid #f0f0f0;
    padding-top: 8px;
    margin-top: 2px;
    flex-wrap: wrap;
    gap: 5px;
}

.znbbs-card-footer-left {
    display: flex;
    align-items: center;
    gap: 6px;
    flex-wrap: wrap;
}

.znbbs-date-text {
    font-size: 11px;
    color: #aaa;
}

.znbbs-contact-btn {
    width: 26px;
    height: 26px;
    border-radius: 50%;
    background: var(--znbbs-green-light);
    border: 1px solid var(--znbbs-green-border);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 9px;
    font-weight: 600;
    color: #2d5a0e;
    cursor: pointer;
    text-decoration: none;
}

.znbbs-contact-line { background: #d4f5e3; border-color: #06C755; color: #065c28; }
.znbbs-contact-x    { background: #e8e8e8; border-color: #1a1a1a; color: #1a1a1a; }

.znbbs-comment-toggle {
    font-size: 11px;
    color: #888;
    background: transparent;
    border: 1px solid #e5e5e5;
    padding: 3px 9px;
    border-radius: var(--znbbs-radius-sm);
    cursor: pointer;
    white-space: nowrap;
}

/* ============================================================
   いいね
   ============================================================ */
.znbbs-like-btn {
    margin-left: auto;
    display: flex;
    align-items: center;
    gap: 4px;
    padding: 4px 10px;
    border-radius: 20px;
    border: 1px solid #ddd;
    background: transparent;
    cursor: pointer;
    font-size: 13px;
    color: #888;
    transition: all 0.2s;
}

.znbbs-like-btn.liked {
    border-color: var(--znbbs-pink);
    background: var(--znbbs-pink-light);
    color: var(--znbbs-pink);
}

/* ============================================================
   コメント
   ============================================================ */
.znbbs-comments {
    border-top: 1px solid #f0f0f0;
    padding-top: 8px;
    margin-top: 4px;
}

.znbbs-comment {
    display: flex;
    gap: 7px;
    font-size: 12px;
    color: #666;
    padding: 4px 0;
    border-bottom: 1px solid #f7f7f7;
    line-height: 1.6;
}

.znbbs-comment-author {
    font-weight: 600;
    color: #444;
    min-width: 48px;
    flex-shrink: 0;
}

.znbbs-comment-form {
    display: flex;
    gap: 5px;
    margin-top: 8px;
    flex-wrap: wrap;
}

.znbbs-comment-name {
    width: 80px;
    padding: 5px 8px;
    border: 1px solid #ddd;
    border-radius: var(--znbbs-radius-sm);
    font-size: 12px;
    box-sizing: border-box;
}

.znbbs-comment-input {
    flex: 1;
    min-width: 100px;
    padding: 5px 8px;
    border: 1px solid #ddd;
    border-radius: var(--znbbs-radius-sm);
    font-size: 12px;
    box-sizing: border-box;
}

.znbbs-comment-form button {
    padding: 5px 11px;
    background: var(--znbbs-pink);
    color: #fff;
    border: none;
    border-radius: var(--znbbs-radius-sm);
    font-size: 12px;
    cursor: pointer;
}

/* ============================================================
   バッジ・タグ
   ============================================================ */
@keyframes znbbs-pulse { 0%,100%{opacity:1} 50%{opacity:0.3} }

.znbbs-live-dot {
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: var(--znbbs-green);
    display: inline-block;
    animation: znbbs-pulse 1.5s infinite;
}

.znbbs-coming-dot {
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: var(--znbbs-amber);
    display: inline-block;
    flex-shrink: 0;
    margin-left: auto;
}

.znbbs-badge {
    position: absolute;
    border-radius: 20px;
    padding: 2px 8px;
    font-size: 10px;
    font-weight: 600;
    display: inline-flex;
    align-items: center;
    gap: 4px;
}

.znbbs-badge-green { top: 7px; left: 7px; background: rgba(0,0,0,0.52); color: #fff; }
.znbbs-badge-amber { top: 7px; left: 7px; background: rgba(0,0,0,0.52); color: #FAC775; }
.znbbs-badge-gray  { top: 7px; left: 7px; background: rgba(0,0,0,0.52); color: #ccc; }
.znbbs-badge-area  { top: 7px; right: 7px; background: rgba(0,0,0,0.52); color: #fff; }

.znbbs-stat-badge {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    font-size: 11px;
    padding: 3px 10px;
    border-radius: 20px;
}

.znbbs-stat-green { background: var(--znbbs-green-light); color: #2d5a0e; border: 1px solid var(--znbbs-green-border); }
.znbbs-stat-amber { background: var(--znbbs-amber-light);  color: #7a4a0a; border: 1px solid #FAC775; }

.znbbs-tag {
    font-size: 10px;
    padding: 2px 6px;
    border-radius: 4px;
    font-weight: 500;
}

.znbbs-tag-food { background: #FAEEDA; color: #7a4a0a; }
.znbbs-tag-biz  { background: var(--znbbs-blue-light); color: #185FA5; }
.znbbs-tag-date { background: var(--znbbs-pink-light); color: var(--znbbs-pink-dark); }

.znbbs-badge-green-inline,
.znbbs-badge-green {
    background: var(--znbbs-green-light);
    color: #2d5a0e;
    font-size: 10px;
    padding: 2px 7px;
    border-radius: 20px;
    border: 1px solid var(--znbbs-green-border);
}

/* ============================================================
   フィルター
   ============================================================ */
.znbbs-filter-wrap {
    border: 1px solid #e5e5e5;
    border-radius: var(--znbbs-radius-sm);
    overflow: hidden;
    margin-bottom: 14px;
}

.znbbs-filter-toggle {
    width: 100%;
    padding: 9px 14px;
    background: #f7f7f7;
    border: none;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: space-between;
    font-size: 13px;
    font-weight: 500;
    color: #555;
}

.znbbs-filter-panel {
    padding: 12px 14px;
    border-top: 1px solid #e5e5e5;
    background: #fff;
}

.znbbs-filter-row {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
    margin-bottom: 8px;
}

.znbbs-filter-row:last-child { margin-bottom: 0; }

.znbbs-filter-title {
    font-size: 11px;
    color: #888;
    min-width: 36px;
    font-weight: 500;
}

.znbbs-filter-btns {
    display: flex;
    gap: 5px;
    flex-wrap: wrap;
}

.znbbs-filter-btn {
    padding: 3px 10px;
    border-radius: 20px;
    border: 1px solid #ddd;
    background: transparent;
    color: #888;
    font-size: 11px;
    cursor: pointer;
    text-decoration: none;
    transition: all 0.15s;
}

.znbbs-filter-btn.active,
.znbbs-filter-btn:hover {
    background: var(--znbbs-pink);
    border-color: var(--znbbs-pink);
    color: #fff;
}

/* ============================================================
   投稿ボタン
   ============================================================ */
.znbbs-post-btn {
    display: block;
    width: 100%;
    padding: 12px;
    border-radius: var(--znbbs-radius);
    border: 1px dashed var(--znbbs-pink);
    background: var(--znbbs-pink-light);
    color: var(--znbbs-pink-dark);
    font-size: 13px;
    font-weight: 600;
    text-align: center;
    text-decoration: none;
    cursor: pointer;
    margin-top: 14px;
    transition: background 0.15s;
}

.znbbs-post-btn.znbbs-btn-blue {
    border-color: var(--znbbs-blue);
    background: var(--znbbs-blue-light);
    color: #185FA5;
}

/* ============================================================
   ページネーション
   ============================================================ */
.znbbs-pagination {
    display: flex;
    justify-content: center;
    gap: 5px;
    margin: 12px 0;
    flex-wrap: wrap;
}

.znbbs-page-btn {
    width: 32px;
    height: 32px;
    border-radius: var(--znbbs-radius-sm);
    border: 1px solid #ddd;
    background: #fff;
    color: #666;
    font-size: 13px;
    display: flex;
    align-items: center;
    justify-content: center;
    text-decoration: none;
    transition: all 0.15s;
}

.znbbs-page-btn.active,
.znbbs-page-btn:hover {
    background: var(--znbbs-pink);
    border-color: var(--znbbs-pink);
    color: #fff;
}

/* ============================================================
   空状態
   ============================================================ */
.znbbs-empty {
    text-align: center;
    padding: 32px;
    color: #aaa;
    font-size: 14px;
}

/* ============================================================
   サイドバー
   ============================================================ */
.znbbs-sidebar {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.znbbs-sidebar-section {
    background: #fff;
    border: 1px solid #e5e5e5;
    border-radius: var(--znbbs-radius-sm);
    padding: 10px 12px;
}

.znbbs-sidebar-label {
    font-size: 10px;
    font-weight: 600;
    color: #aaa;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    margin: 0 0 7px;
    display: flex;
    align-items: center;
    gap: 5px;
}

.znbbs-sidebar-notice {
    font-size: 12px;
    color: #555;
    line-height: 1.7;
}

.znbbs-sidebar-person {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 6px 0;
    border-bottom: 1px solid #f7f7f7;
}

.znbbs-sidebar-person:last-child { border-bottom: none; }

.znbbs-sidebar-avatar {
    width: 30px;
    height: 30px;
    border-radius: 8px;
    flex-shrink: 0;
    background: #f4c0d1;
    background-size: cover;
    background-position: center;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 13px;
    font-weight: 600;
    color: #72243E;
}

.znbbs-sidebar-avatar-amber { background: #B5D4F4; color: #0C447C; }

.znbbs-sidebar-person-info { flex: 1; min-width: 0; }

.znbbs-sidebar-person-name {
    margin: 0;
    font-size: 12px;
    font-weight: 600;
    color: #333;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.znbbs-sidebar-person-sub {
    margin: 0;
    font-size: 10px;
    color: #aaa;
}

.znbbs-sidebar-filter {
    display: flex;
    flex-wrap: wrap;
    gap: 4px;
}

.znbbs-sidebar-rules {
    list-style: none;
    padding: 0;
    margin: 0;
    font-size: 11px;
    color: #888;
    line-height: 1.9;
}

.znbbs-sidebar-rules li::before { content: '・'; }

/* ============================================================
   統計
   ============================================================ */
.znbbs-stats {
    display: flex;
    gap: 6px;
    flex-wrap: wrap;
    align-items: center;
}

/* ============================================================
   サイドバー：来日登録ボタン
   ============================================================ */
.znbbs-sidebar-register-btn {
    display: block;
    width: 100%;
    padding: 13px;
    border-radius: var(--znbbs-radius);
    background: var(--znbbs-pink);
    color: #fff !important;
    font-size: 14px;
    font-weight: 700;
    text-align: center;
    text-decoration: none !important;
    cursor: pointer;
    margin-bottom: 12px;
    letter-spacing: 0.03em;
    transition: background 0.2s;
    box-shadow: 0 2px 8px rgba(212,83,126,0.35);
}

.znbbs-sidebar-register-btn:hover {
    background: var(--znbbs-pink-dark);
}

/* ============================================================
   サイドバー：自己紹介2カラムグリッド
   ============================================================ */
.znbbs-sidebar-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 6px;
}

.znbbs-sidebar-card {
    border-radius: var(--znbbs-radius-sm);
    overflow: hidden;
    border: 0.5px solid #eee;
    background: #fff;
    cursor: pointer;
    transition: box-shadow 0.15s;
}

.znbbs-sidebar-card:hover {
    box-shadow: 0 2px 8px rgba(0,0,0,0.1);
}

.znbbs-sidebar-card-photo {
    width: 100%;
    height: 80px;
    background: #F4C0D1;
    background-size: cover;
    background-position: center;
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
}

.znbbs-sidebar-card-initial {
    font-size: 22px;
    font-weight: 700;
    color: #fff;
    text-shadow: 0 1px 3px rgba(0,0,0,0.2);
}

.znbbs-sidebar-card-flag {
    position: absolute;
    bottom: 4px;
    right: 4px;
    font-size: 13px;
    line-height: 1;
}

.znbbs-sidebar-card-info {
    padding: 5px 6px;
}

.znbbs-sidebar-card-name {
    margin: 0 0 2px;
    font-size: 11px;
    font-weight: 600;
    color: #333;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.znbbs-sidebar-card-like {
    margin: 0;
    font-size: 10px;
    color: var(--znbbs-pink);
}

/* ============================================================
   画像プレビュー関連
   ============================================================ */
.znbbs-photo-main[style*="background-image"] span,
.znbbs-photo-blue[style*="background-image"] span {
    display: none !important;
}

.znbbs-gallery-slot[style*="background-image"] span {
    display: none !important;
}

.znbbs-size-badge {
    font-size: 10px;
    color: #3B6D11;
    background: #EAF3DE;
    padding: 2px 7px;
    border-radius: 10px;
    margin-top: 4px;
    display: inline-block;
}

.znbbs-extra-preview {
    display: flex;
    gap: 6px;
    flex-wrap: wrap;
    margin-top: 8px;
}

/* ============================================================
   写真3枚横並びスロット
   ============================================================ */
.znbbs-photos-row {
    display: grid;
    grid-template-columns: 2fr 1fr 1fr;
    gap: 8px;
}

.znbbs-photo-slot {
    position: relative;
    border-radius: var(--znbbs-radius-sm);
    background: var(--znbbs-pink-light);
    border: 1px dashed var(--znbbs-pink);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    overflow: hidden;
    background-size: cover;
    background-position: center;
    transition: border-color 0.15s;
}

.znbbs-photo-main-slot { height: 120px; }
.znbbs-photo-sub-slot  { height: 120px; background: var(--color-background-secondary, #f7f7f7); border-color: #ddd; }

.znbbs-photo-slot input[type="file"] {
    position: absolute;
    inset: 0;
    opacity: 0;
    cursor: pointer;
    width: 100%;
    height: 100%;
}

.znbbs-slot-plus {
    font-size: 24px;
    color: var(--znbbs-pink);
    line-height: 1;
    pointer-events: none;
}

.znbbs-photo-sub-slot .znbbs-slot-plus { color: #aaa; }

.znbbs-slot-label {
    font-size: 10px;
    color: #aaa;
    margin-top: 4px;
    pointer-events: none;
}

.znbbs-photo-slot[style*="background-image"] .znbbs-slot-plus,
.znbbs-photo-slot[style*="background-image"] .znbbs-slot-label {
    display: none;
}

/* ============================================================
   投稿日時
   ============================================================ */
.znbbs-post-date {
    font-size: 10px;
    color: #bbb;
}

/* ============================================================
   Lady Directoryラップ
   ============================================================ */
.znbbs-ladies-wrap .znbbs-grid { margin-top: 12px; }
.znbbs-card-ladies .znbbs-card-photo-placeholder {
    font-size: 36px;
    font-weight: 700;
    color: #fff;
    background: var(--znbbs-pink);
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
}

/* ============================================================
   サイドバー：申請ボックス
   ============================================================ */
.znbbs-sidebar-apply-box {
    background: #1a1a1a;
    border-radius: var(--znbbs-radius);
    padding: 12px;
    margin-bottom: 12px;
}

.znbbs-sidebar-apply-box .znbbs-sidebar-label {
    color: #ccc;
}

.znbbs-sidebar-apply-box input {
    background: #333;
    border-color: #555;
    color: #fff;
}

.znbbs-sidebar-apply-box input::placeholder { color: #888; }

/* ============================================================
   Lady List グリッド（3列 PC / 2列 SP）
   ============================================================ */
.znbbs-ladies-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 14px;
    margin-top: 12px;
}

@media (max-width: 768px) {
    .znbbs-ladies-grid { grid-template-columns: repeat(2, 1fr); gap: 10px; }
}

/* カード（aタグ） */
.znbbs-lady-card {
    display: block;
    background: #fff;
    border: 1px solid #eee;
    border-radius: var(--znbbs-radius);
    overflow: hidden;
    text-decoration: none !important;
    color: inherit;
    transition: box-shadow 0.15s, transform 0.15s;
}

.znbbs-lady-card:hover {
    box-shadow: 0 4px 16px rgba(0,0,0,0.12);
    transform: translateY(-2px);
}

/* 写真（縦横比 3:4 で全体表示） */
.znbbs-lady-photo {
    position: relative;
    width: 100%;
    padding-top: 133%; /* 3:4 */
    overflow: hidden;
    background: #F4C0D1;
}

.znbbs-lady-photo img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: top center;
}

.znbbs-lady-initial {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 48px;
    font-weight: 700;
    color: #fff;
    background: var(--znbbs-pink);
}

.znbbs-lady-badge-japan {
    position: absolute;
    top: 8px;
    left: 8px;
    background: rgba(0,0,0,0.55);
    color: #fff;
    font-size: 11px;
    padding: 3px 9px;
    border-radius: 20px;
    display: flex;
    align-items: center;
    gap: 5px;
}

/* 情報エリア */
.znbbs-lady-info {
    padding: 10px 12px;
}

.znbbs-lady-name-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 6px;
}

.znbbs-lady-name {
    font-weight: 600;
    font-size: 14px;
    color: #333;
}

.znbbs-lady-flag {
    font-size: 16px;
}

.znbbs-lady-sns {
    display: flex;
    gap: 5px;
    margin-bottom: 7px;
    flex-wrap: wrap;
}

.znbbs-lady-likes {
    font-size: 12px;
    color: var(--znbbs-pink);
    font-weight: 500;
}

/* ============================================================
   英日併記（言語切り替え）
   ============================================================ */
.znbbs-empty-en { display: inline; }
.znbbs-empty-ja { display: none; }
.znbbs-lang-en .znbbs-empty-en { display: inline; }
.znbbs-lang-en .znbbs-empty-ja { display: none; }
body:not(.znbbs-lang-en) .znbbs-empty-en { display: none; }
body:not(.znbbs-lang-en) .znbbs-empty-ja { display: inline; }
