/* 커피챗 화면 통일 디자인 (2026-10-20, Claude)
   기준: 프로필 카드 — 흰 카드, 16px 곡률, 남색 #1f3a8a, 연한 파란 안내 박스.
   규칙: 상태는 "왼쪽 레일 + 알약" 하나로만 표시하고 나머지는 중립색으로 둔다.
   범위: 표현만. API 동작·예약 정책·DOM 선택자는 바꾸지 않는다. */
:root {
 --meeting-ink:#192744; --meeting-muted:#68758c; --meeting-line:#e3e8f3;
 --meeting-blue:#1f3a8a; --meeting-soft:#eef2ff; --meeting-paper:#fff;
 --meeting-radius:16px; --meeting-wash:#f7f9fd; --meeting-track:#edf1f8;
}
.home-page,.directory-page,.meeting-detail-page { color:var(--meeting-ink); }
:is(.home-page,.directory-page,.meeting-detail-page) .page-header { margin-bottom:24px; }
:is(.home-page,.directory-page,.meeting-detail-page) .page-header h1 { font-size:26px; font-weight:750; letter-spacing:-.045em; line-height:1.35; }
:is(.home-page,.directory-page,.meeting-detail-page) .page-header p { color:var(--meeting-muted); font-size:14px; line-height:1.65; }
:is(.home-page,.directory-page,.meeting-detail-page) button { font-family:inherit; }
:is(.home-page,.directory-page,.meeting-detail-page) :is(.btn-primary,.btn-secondary) { border-radius:10px; font-size:13px; min-height:42px; }

/* ── 한 벌의 부품 ───────────────────────────── */
/* 탭: 요청함 방향 탭 · 찾기 상태 탭 · 홈 보기 전환이 같은 모양 */
:is(.request-tabs,.directory-stats) { display:flex; gap:6px; padding:5px; margin:0 0 20px; background:var(--meeting-track); border:1px solid #e7ecf5; border-radius:13px; overflow:visible; }
:is(.directory-page) :is(.request-tabs,.directory-stats)>button { flex:1; min-width:0; min-height:44px; display:flex; align-items:center; justify-content:center; gap:8px; padding:8px 10px; border:0; border-radius:10px; background:transparent; color:var(--meeting-muted); font-size:14px; font-weight:600; text-align:center; box-shadow:none; }
:is(.directory-page) :is(.request-tabs,.directory-stats)>button:hover { background:#f6f8fd; }
:is(.directory-page) :is(.request-tabs,.directory-stats)>button:is(.btn-primary,.selected) { background:#fff; color:var(--meeting-blue); box-shadow:0 2px 8px #1f3a8a12; }
.directory-stat>span { display:inline; margin:0; font-size:14px; color:inherit; font-weight:inherit; white-space:nowrap; }
.directory-stat>span::before { display:none; }
.directory-stat strong { display:inline-block; margin:0; padding:1px 7px; background:#e3e9f8; color:var(--meeting-blue); border-radius:6px; font-size:12px; font-weight:700; line-height:1.6; }
.directory-stat strong small { display:none; }
.request-tab-count { display:inline-block; min-width:19px; padding:1px 6px; background:#e3e9f8; color:var(--meeting-blue); border-radius:6px; font-size:12px; font-weight:700; }
/* 주 버튼은 남색 하나 */
:is(.home-page,.directory-page,.meeting-detail-page,.mr-profile-card,.mr-view-tabs,.mr-mobile-dock,.mr-application-page,.profile-detail-page,.home-detail,.slot-panel,.modal-content) .btn-primary { background:var(--meeting-blue); border-color:var(--meeting-blue); color:#fff; opacity:1; }
:is(.home-page,.directory-page,.meeting-detail-page,.mr-profile-card,.mr-view-tabs,.mr-mobile-dock,.mr-application-page,.profile-detail-page,.home-detail,.slot-panel,.modal-content) .btn-primary:hover { background:#17306f; border-color:#17306f; }
:is(.home-page,.directory-page,.meeting-detail-page,.mr-profile-card,.mr-view-tabs,.mr-mobile-dock,.mr-application-page,.profile-detail-page,.home-detail,.slot-panel,.modal-content) .btn-primary:disabled { background:#aab6d3; border-color:#aab6d3; }
.mr-view-tabs button.btn-primary,.mr-mobile-dock button.btn-primary { background:var(--meeting-blue); border-color:var(--meeting-blue); color:#fff; }
/* 알약: 어디서나 같은 크기 */
:is(.member-status,.directory-status) { display:inline-flex; align-items:center; gap:6px; padding:4px 10px; border-radius:999px; font-size:12px; font-weight:650; line-height:1.4; white-space:nowrap; border:0; }
.member-status::before { content:''; width:6px; height:6px; border-radius:50%; background:currentColor; flex:none; }
/* 검색·조건 상자 */
.directory-page .directory-box { background:transparent; border:0; box-shadow:none; overflow:visible; }
.directory-page .directory-filters.filters { padding:18px; margin:0 0 16px; border:1px solid var(--meeting-line); border-radius:14px; background:#fff; }
.directory-page .directory-searchline { gap:8px; }
.directory-page .directory-searchline strong { font-size:14px; }
.directory-page .directory-searchline input { min-width:0; min-height:42px; background:#fafbfe; border-radius:9px; }
.directory-page .request-options { gap:12px; margin-top:12px; padding-top:12px; border-top:1px solid #f0f3f9; }
.directory-page .request-options label { font-size:12px; color:var(--meeting-muted); }
.directory-page .directory-foot { padding:14px 4px; color:var(--meeting-muted); font-size:12px; }
/* 행 카드: 흰 바탕, 1px 선, 왼쪽 상태 레일 */
:is(.request-table,.home-schedule-table) { display:block; width:100%; border:0; border-spacing:0; }
:is(.request-table,.home-schedule-table) :is(tbody) { display:grid; gap:12px; }
:is(.request-table,.home-schedule-table) thead { display:none; }
:is(.request-table .request-row,.home-schedule-table .home-schedule-row) { position:relative; display:grid; align-items:center; width:100%; padding:20px 22px 20px 28px; border:1px solid var(--meeting-line); border-radius:var(--meeting-radius); background:#fff; opacity:1; overflow:hidden; box-shadow:none; outline:0; cursor:pointer; }
:is(.request-table .request-row,.home-schedule-table .home-schedule-row)::before { content:''; position:absolute; left:0; top:0; bottom:0; width:5px; background:var(--request-accent,#c9d2e6); }
:is(.request-table .request-row,.home-schedule-table .home-schedule-row):hover { border-color:#b9c6e8; background:#fbfcff; }
:is(.request-table .request-row,.home-schedule-table .home-schedule-row):is(.selected,.request-focused) { border-color:var(--meeting-blue); background:#f5f8ff; box-shadow:0 0 0 1px var(--meeting-blue); outline:0; }
:is(.request-table .request-row,.home-schedule-table .home-schedule-row):focus-visible { outline:3px solid #5270b5; outline-offset:2px; }
:is(.request-table .request-row.tone-off,.home-schedule-table .home-schedule-row.tone-off,.home-schedule-row.is-past) { background:#fafbfd; opacity:1; }
:is(.request-table .request-row.tone-off,.home-schedule-table .home-schedule-row.tone-off) :is(.request-identity-text b,.home-cell-company,.request-schedule strong) { color:#56627a; }
:is(.request-table .request-row,.home-schedule-table .home-schedule-row) td { display:block; min-width:0; padding:0; border:0; background:none; box-shadow:none; width:auto; height:auto; }

/* ── 홈 ───────────────────────────────────── */
.home-page .company-dashboard { gap:12px; margin-bottom:24px; }
.home-page .company-stat { display:grid; grid-template-columns:1fr auto; align-items:center; gap:6px 12px; min-height:92px; padding:18px 20px; border:1px solid var(--meeting-line); border-radius:var(--meeting-radius); background:#fff; text-align:left; }
.home-page .company-stat>span:first-child { color:var(--meeting-muted); font-size:13px; font-weight:600; }
.home-page .company-stat>strong { grid-column:2; grid-row:1/3; font-size:28px; line-height:1.2; color:var(--meeting-ink); letter-spacing:-.04em; }
.home-page .company-stat>strong small { font-size:12px; margin-left:5px; color:var(--meeting-muted); font-weight:500; }
.home-page .company-stat-link { font-size:12px; margin:0; color:var(--meeting-blue); }
.home-page .company-stat.is-zero { background:#f8f9fc; opacity:1; }
.home-page .company-stat:hover { border-color:#aebce2; background:#fafbff; }
.home-page .home-agenda { border:1px solid var(--meeting-line); border-radius:var(--meeting-radius); padding:24px; box-shadow:none; }
.home-page .home-agenda-head h2 { font-size:19px; letter-spacing:-.035em; }
.home-page .home-view-toggle { padding:4px; border-radius:12px; background:var(--meeting-track); }
.home-page .home-view-toggle button { padding:8px 14px; border-radius:8px; min-height:38px; }
.home-page .home-calendar-help { font-size:13px; margin:12px 0 18px; }
.home-page .home-date-filter { gap:6px; margin-bottom:20px; }
.home-page .home-date { border-radius:10px; min-height:40px; font-size:12px; border:1px solid var(--meeting-line); background:#fff; color:var(--meeting-muted); }
.home-page .home-date.on { background:var(--meeting-blue); border-color:var(--meeting-blue); color:#fff; }
.home-page .slot-workspace .slot-summary { display:flex; gap:20px; align-items:center; padding:12px 16px; background:var(--meeting-wash); border:1px solid #edf0f7; border-radius:12px; }
.home-page .slot-workspace .slot-summary>div { display:flex; flex-direction:row; align-items:baseline; gap:6px; background:none; padding:0; font-size:12px; }
.home-page .slot-workspace .slot-summary b { font-size:18px; color:var(--meeting-blue); }
.home-page .slot-help { color:var(--meeting-muted); font-size:12px; line-height:1.65; margin:12px 0 16px; }
.home-page .slot-workspace .slot-board { gap:8px; }
.home-page .slot-workspace :is(.board-day>h3,.slot-time-axis>h3),.home-personal-calendar h3 { border-bottom:1px solid var(--meeting-line); padding:10px 0; font-weight:650; color:var(--meeting-ink); }
.home-page .slot-workspace :is(.tl-row,.slot-time-axis>div) { height:110px; }
.home-page .slot-workspace .slot-ev { border:1px solid var(--meeting-line); border-left:3px solid var(--request-accent,#aebce2); border-radius:10px; background:#fff; box-shadow:0 2px 4px #19274404; padding:10px 9px 28px; }
.home-page .slot-workspace .slot-ev:hover { border-color:#aebce2; background:#f8faff; }
.home-page .slot-workspace .slot-ev .home-row-open { min-height:50px; text-align:left; }
.home-page .slot-workspace .slot-ev .home-row-open b { font-size:13px; line-height:1.4; }
.home-page .slot-workspace .slot-ev small { line-height:1.5; }
.home-page .slot-workspace .ev-empty { background:#fafbfe; border-color:#d9e0f0; border-radius:10px; color:#7b89a3; }
.home-page .slot-workspace .ev-empty:hover { background:var(--meeting-soft); color:var(--meeting-blue); }
.home-personal-calendar { gap:8px; grid-template-rows:auto repeat(9,minmax(110px,auto)); }
.home-calendar-time { min-height:110px; background:#fafbfe; border-color:#edf0f7; border-radius:10px; }
.home-calendar-event { padding:10px; background:#fff; border:1px solid var(--meeting-line); border-left:3px solid var(--request-accent,#aebce2); border-radius:9px; }
.home-calendar-event .home-row-open strong { color:var(--meeting-ink); font-size:13px; }
/* 홈 목록 보기 — 시간 · 상대 · 장소 · 메시지 */
.home-schedule-table .home-row-open { display:block; width:100%; padding:0; border:0; background:none; text-align:left; color:inherit; font:inherit; cursor:pointer; }
.home-schedule-table .home-schedule-row { grid-template-columns:190px minmax(0,1.1fr) minmax(0,1fr) minmax(0,1.3fr); column-gap:24px; row-gap:6px; }
.home-schedule-row .home-cell-time { grid-row:1; grid-column:1; }
.home-schedule-row .home-cell-time .home-row-open { display:flex; flex-direction:column; align-items:flex-start; gap:8px; }
.home-schedule-row .home-cell-time strong { font-size:15px; font-weight:700; letter-spacing:-.03em; line-height:1.45; }
.home-schedule-row .home-cell-company,.home-schedule-row .home-cell-names { grid-row:1; grid-column:2; font-size:16px; font-weight:700; letter-spacing:-.035em; color:var(--meeting-ink); }
.home-schedule-row .home-cell-place { grid-row:1; grid-column:3; font-size:13px; color:var(--meeting-muted); }
.home-schedule-row .home-cell-message { grid-row:1; grid-column:4; font-size:13px; color:var(--meeting-muted); line-height:1.65; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.home-schedule-table.for-company .home-schedule-row { grid-template-columns:190px minmax(0,1.2fr) minmax(0,1fr) 84px 150px; }
.home-schedule-table.for-company .home-cell-place { grid-row:1; grid-column:3; }
.home-schedule-table.for-company .home-cell-count { grid-row:1; grid-column:4; font-size:13px; font-weight:650; color:var(--meeting-blue); text-align:right; }
.home-schedule-table.for-company .home-cell-waiting { grid-row:1; grid-column:5; font-size:12px; color:var(--meeting-muted); text-align:right; }

/* ── 요청함 ────────────────────────────────── */
.requests-page .directory-main { container-type:inline-size; }
.requests-page .request-table .request-row { grid-template-columns:minmax(210px,.9fr) minmax(0,1.5fr) 176px; column-gap:24px; }
.request-table .request-row .directory-who { display:flex; flex-direction:column; align-items:flex-start; gap:8px; position:static; padding:0; box-shadow:none; }
.request-table .request-direction { display:inline-flex; position:static; align-items:center; gap:3px; padding:0; margin:0; color:var(--request-accent,var(--meeting-muted)); font-size:11px; font-weight:700; letter-spacing:.02em; }
.request-table .request-received .request-direction::before { content:'↘'; }
.request-table .request-sent .request-direction::before { content:'↗'; }
.request-table .request-identity { display:flex; align-items:center; gap:12px; width:100%; min-width:0; min-height:0; padding:0; border:0; background:none; text-align:left; }
.request-table .request-identity .media-avatar { width:46px; height:46px; flex:0 0 46px; }
.request-table .request-identity-text { min-width:0; }
.request-table .request-identity-text b { display:block; font-size:16px; font-weight:700; letter-spacing:-.035em; color:var(--meeting-ink); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.request-table .request-identity-text small { display:block; margin-top:3px; font-size:12px; line-height:1.5; color:var(--meeting-muted); white-space:normal; font-weight:400; }
.request-table .request-detail { display:grid; gap:10px; min-width:0; }
.request-table .request-schedule { display:grid; gap:3px; margin:0; font-size:13px; line-height:1.55; }
.request-table .request-schedule strong { font-size:15px; font-weight:700; letter-spacing:-.03em; color:var(--meeting-ink); }
.request-table .request-schedule span { font-size:13px; color:var(--meeting-muted); }
.request-table .request-excerpt { margin:0; padding:2px 0 2px 12px; border-left:2px solid #dbe3f5; font-size:13px; line-height:1.65; color:#4b5870; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.request-table .request-state { display:flex; flex-direction:column; align-items:flex-end; gap:8px; text-align:right; }
.request-table .request-state-line { display:flex; flex-direction:column; align-items:flex-end; gap:5px; margin:0; }
.request-table .request-left { font-size:12px; color:var(--meeting-muted); }
.request-table .request-row-actions { display:flex; justify-content:flex-end; flex-wrap:wrap; gap:6px; margin:4px 0 0; }
.request-table .request-row-actions:empty { display:none; }
.request-table .request-row-actions button { min-width:104px; min-height:40px; padding:8px 14px; font-size:13px; }
.request-table .request-created { display:none; }
.request-table .request-row.tone-ok,.request-table .request-row.tone-wait,.request-table .request-row.tone-open { background:#fff; }
.requests-page .request-focus-note { padding:10px 14px; margin:0 0 12px; font-size:12px; color:#545d70; background:var(--meeting-wash); border-radius:10px; }
.requests-page .request-table .request-row:is(.selected,.request-focused) td:first-child,.requests-page .request-table .request-row td:first-child { box-shadow:none; }
@container(max-width:760px) {
 .requests-page .request-table .request-row { grid-template-columns:minmax(0,1fr) auto; row-gap:14px; column-gap:12px; padding:18px 18px 18px 24px; }
 .request-table .request-row .directory-who { grid-column:1; grid-row:1; }
 .request-table .request-row .request-detail { grid-column:1/-1; grid-row:2; padding-top:14px; border-top:1px solid #eef1f8; }
 .request-table .request-row .request-state { display:contents; }
 .request-table .request-row .request-state-line { grid-column:2; grid-row:1; }
 .request-table .request-row .request-row-actions { grid-column:1/-1; grid-row:3; margin:0; }
 .request-table .request-row .request-row-actions button { flex:1; }
}

/* ── 찾기(기업·참가자 목록) ───────────────────── */
.directory-table { width:100%; border-collapse:separate; border-spacing:0; background:#fff; border:1px solid var(--meeting-line); border-radius:var(--meeting-radius); overflow:hidden; font-size:13px; }
.directory-table:is(.company-directory,.participant-directory) th { padding:12px 14px; background:var(--meeting-wash); border:0; border-bottom:1px solid var(--meeting-line); color:var(--meeting-muted); font-size:12px; font-weight:600; }
.directory-table:is(.company-directory,.participant-directory) td { height:72px; padding:12px 14px; border-bottom:1px solid #eef1f8; }
.directory-table:is(.company-directory,.participant-directory) tbody tr:last-child td { border-bottom:0; }
.directory-table:is(.company-directory,.participant-directory) .directory-row:hover td { background:#fafbff; }
.directory-table:is(.company-directory,.participant-directory) .directory-row.selected td { background:#f2f6ff; }
.directory-table:is(.company-directory,.participant-directory) .directory-row.selected td:first-child { box-shadow:inset 4px 0 var(--meeting-blue); }
.directory-person { gap:12px; }
.directory-person .media-avatar { width:42px; height:42px; flex-basis:42px; }
.directory-table .directory-name { font-size:15px; font-weight:700; letter-spacing:-.03em; color:var(--meeting-ink); }
.directory-person small { margin-top:2px; font-size:12px; color:var(--meeting-muted); }
.directory-headline>span,.participant-message { font-size:13px; color:#4b5870; }
.directory-seats b { font-size:15px; color:var(--meeting-ink); }
.directory-chips>span { border-radius:7px; font-size:12px; background:#fff; }
.directory-arrow { color:#a3adc2; font-size:18px; }

/* ── 상세 면(홈 패널·일정 패널·확정 일정) ───────── */
:is(.home-detail,.slot-panel,.meeting-booking-card) { border:1px solid var(--meeting-line); border-radius:var(--meeting-radius); background:#fff; color:var(--meeting-ink); }
.home-detail { padding:22px; box-shadow:0 6px 24px #22366a07; }
.home-detail>.row:first-child { align-items:flex-start; gap:12px; padding-bottom:18px; border-bottom:1px solid var(--meeting-line); }
.home-detail>.row:first-child h2 { font-size:18px; line-height:1.5; font-weight:750; letter-spacing:-.035em; }
.home-detail>.row:first-child button { min-height:36px; padding:7px 10px; font-size:12px; border-radius:9px; }
.home-panel-meta { padding:16px 0; border-bottom:1px solid var(--meeting-line); }
.home-panel-meta p { color:var(--meeting-muted); font-size:13px; line-height:1.6; }
.home-slot-count { padding:12px 14px; background:#f1f4fc; border-radius:10px; color:var(--meeting-blue); }
.meeting-detail-section { margin-top:24px; }
.meeting-detail-section h3 { display:flex; align-items:center; gap:8px; margin:0 0 12px; font-size:14px; font-weight:700; }
.meeting-section-count { display:inline-flex; align-items:center; justify-content:center; padding:3px 7px; background:#eef2fa; color:var(--meeting-muted); border-radius:6px; font-size:11px; font-weight:600; }
.home-roster { gap:12px; }
.home-roster-person { padding:16px; border:1px solid var(--meeting-line); border-radius:12px; background:#fff; }
.home-roster-identity { display:flex; align-items:center; gap:12px; padding-bottom:12px; }
.home-roster-identity>.media-avatar { width:42px; height:42px; flex-basis:42px; }
.home-roster-identity>div { display:flex; gap:8px; align-items:center; flex-wrap:wrap; min-width:0; }
.home-roster-identity .home-profile-name { font-size:15px; min-height:32px; padding:0; }
.home-roster-person .home-contact { padding-top:10px; border-top:1px solid #edf0f7; }
.home-roster-person .home-contact-line { margin:8px 0; font-size:12px; gap:8px; }
.home-roster-person .home-contact-value { line-height:1.6; }
.home-roster-person .home-contact-line button { min-width:48px; min-height:36px; border-radius:8px; font-size:12px; }
.home-panel-message { padding:12px; background:#f4f6fc; border-radius:9px; font-size:13px; line-height:1.7; }
.profile-schedule-help,.booking-help { padding:12px 14px; background:var(--meeting-wash); color:var(--meeting-muted); border-radius:10px; font-size:12px; line-height:1.7; }
.slot-panel-overlay .slot-panel { padding:24px; border-radius:18px 0 0 18px; }
.slot-panel .slot-panel-when { background:#f5f7fd; padding:16px; border:0; border-radius:12px; }
.slot-panel .slot-panel-when p { line-height:1.7; color:var(--meeting-muted); }
.meeting-booking-card { max-width:760px; padding:28px; box-shadow:0 6px 24px #22366a05; }
.meeting-booking-person { padding-bottom:22px; border-bottom:1px solid var(--meeting-line); }
.meeting-booking-person .home-person strong { font-size:22px; letter-spacing:-.04em; }
.meeting-booking-person .media-avatar { width:64px; height:64px; flex-basis:64px; }
.meeting-booking-card .home-confirmed { padding:22px 0 0; border:0; background:none; }
.meeting-booking-card .meeting-time { font-size:19px; }
.meeting-booking-card .home-contact { background:var(--meeting-wash); border-radius:12px; padding:14px; }
.home-schedule-modal .modal-content { border-top:6px solid #e4ebfc; padding:24px; }
.home-schedule-modal h2 { font-size:19px; letter-spacing:-.035em; line-height:1.5; }
:is(.home-detail,.home-schedule-modal,.slot-panel) .member-status { font-size:11px; padding:4px 8px; font-weight:650; }

/* ── 프로필 = 커피챗 티켓 ─────────────────────────
   위쪽은 티켓 앞면(상대 소개), 점선 아래는 떼어 내는 부분(우리 사이의 상태·요청·행동).
   확정되면 아래에 바코드가 붙어 티켓이 완성된다. 색·곡률·글자는 기존 프로필 카드 그대로. */
.mr-profile-card { --ticket-bg:#f6f7f9; --ticket-line:#b7c5ea; --ticket-edge:#d5ddf0; position:relative; border-radius:18px; border-color:var(--ticket-edge); box-shadow:0 8px 24px #22366a0d; }
:is(.home-detail,.modal-content,.slot-panel) .mr-profile-card { --ticket-bg:#fff; box-shadow:none; }
.mr-band { height:84px; }
.mr-ticket-label { position:absolute; top:16px; left:18px; z-index:1; padding:3px 9px 3px 12px; border:1.5px solid #1f3a8a40; border-radius:6px; color:#1f3a8a99; font-size:10px; font-weight:800; letter-spacing:.24em; line-height:1.5; }
.mr-company-card .mr-ticket-label { border-color:#16704d40; color:#16704d99; }
.mr-card-inner { --pad:18px; padding:0 var(--pad) var(--pad); }
.mr-card-inner>.media-avatar { margin-top:-42px; }
.mr-stub { position:relative; display:flex; flex-direction:column; gap:14px; margin:6px calc(var(--pad)*-1) calc(var(--pad)*-1); padding:26px var(--pad) 20px; border-top:2px dashed var(--ticket-line); background:linear-gradient(#f5f8ff,#eef3fd); }
.mr-stub::before,.mr-stub::after { content:''; position:absolute; top:-15px; z-index:1; width:28px; height:28px; border-radius:50%; background:var(--ticket-bg); border:1px solid var(--ticket-edge); box-sizing:border-box; box-shadow:inset 0 0 0 1px #fff; }
.mr-stub::before { left:-15px; }
.mr-stub::after { right:-15px; }
.mr-stub:has(.profile-request) .mr-relation { display:none; }
.mr-stub .mr-relation { padding:0; border:0; background:none; }
.mr-stub .mr-relation b { font-size:11px; letter-spacing:.06em; color:var(--meeting-muted); font-weight:700; }
.ticket-field { display:flex; flex-direction:column; gap:3px; min-width:0; }
.ticket-field small { font-size:10px; font-weight:700; letter-spacing:.08em; color:#8a93a6; line-height:1.4; }
.ticket-field b { font-size:15px; font-weight:700; letter-spacing:-.02em; line-height:1.5; color:var(--meeting-ink); overflow-wrap:anywhere; }
.profile-request { margin:0; padding:0; border:0; border-radius:0; background:none; }
.profile-request-heading { display:flex; align-items:center; justify-content:space-between; font-size:14px; }
.profile-request-heading>b { color:var(--meeting-blue); font-size:11px; font-weight:800; letter-spacing:.08em; }
.profile-request-time { display:grid; grid-template-columns:minmax(0,1fr); gap:10px; margin:12px 0 4px; padding:0; border:0; background:none; font-size:inherit; font-weight:inherit; }
.profile-request-time .ticket-field+.ticket-field { padding:10px 0 0; border-top:1px dashed var(--ticket-line); }
.profile-request-deadline { margin:10px 0 0; font-size:12px; color:var(--meeting-muted); }
.profile-request-message { margin:14px 0 0; padding:14px 16px; border:0; border-left:4px solid var(--meeting-blue); border-radius:4px 12px 12px 4px; background:#eaf0ff; }
.profile-request-message>b { display:block; font-size:11px; font-weight:600; color:#6b7aa8; }
.profile-request-message p { margin:6px 0 0; font-size:14px; line-height:1.75; color:var(--meeting-blue); font-weight:600; }
.profile-response-actions { display:grid; grid-template-columns:1fr 1fr; gap:10px; margin-top:16px; }
.profile-response-actions button { min-height:48px; font-size:15px; font-weight:700; border-radius:12px; }
.profile-request .action-group { margin-top:14px; }
.mr-barcode { position:relative; height:54px; margin-top:4px; background:repeating-linear-gradient(90deg,#1f3a8a 0 2px,transparent 2px 5px,#1f3a8a 5px 6px,transparent 6px 8px,#1f3a8a 8px 11px,transparent 11px 13px,#1f3a8a 13px 14px,transparent 14px 18px,#1f3a8a 18px 20px,transparent 20px 22px,#1f3a8a 22px 23px,transparent 23px 27px) top/100% 34px no-repeat; opacity:.88; }
.mr-barcode::after { content:'확정된 커피챗'; position:absolute; left:0; right:0; bottom:0; text-align:center; color:#6b7aa8; font-size:10px; font-weight:700; letter-spacing:.14em; }

/* ── 3단 티켓 (10/20 사용자 의견) ─────────────────
   위: 상대 소개 / 가운데: 우리 사이의 커피챗 / 아래: 소개·리포트 버튼. 칸마다 절취선과 양옆 홈. */
.mr-stub { margin:6px calc(var(--pad)*-1) 0; }
.mr-stub:last-child { margin-bottom:calc(var(--pad)*-1); }
.mr-stub+.mr-stub { margin-top:0; }
.mr-links { gap:0; padding:24px var(--pad) var(--pad); background:#fff; }
.mr-chat-head { display:flex; align-items:center; justify-content:space-between; gap:8px; }
.mr-chat-head>b { color:var(--meeting-blue); font-size:11px; font-weight:800; letter-spacing:.08em; }
.mr-chat-empty { margin:0; color:var(--meeting-muted); font-size:12px; line-height:1.6; text-align:center; }
.mr-chat .mr-request { display:block; }
.mr-chat .mr-request .action-wrap { display:flex; flex-direction:column; gap:6px; width:100%; max-width:none; }
.mr-chat .mr-request :is(button,a) { width:100%; min-height:46px; margin:0; border-radius:12px; font-size:14px; font-weight:700; justify-content:center; }
.mr-chat .mr-request .reason { font-size:11px; color:var(--meeting-muted); text-align:center; }
.mr-chat .mr-contact-open { width:100%; min-height:46px; border-radius:12px; font-size:14px; font-weight:700; }
.mr-chat .mr-barcode { margin-top:0; }
.mr-link-actions { grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; }
.mr-link-actions.mr-company-actions { grid-template-columns:repeat(2,minmax(0,1fr)); }
.mr-link-actions>* { grid-column:auto !important; grid-row:auto !important; }
.mr-link-actions :is(button,a) { padding:10px 4px; font-size:12px; word-break:keep-all; }

/* 연락처 박스: 사람마다 네모 칸, 값은 옅은 코드 블록 + 복사 */
.contact-modal .modal-content { max-width:460px; }
.contact-intro { margin:4px 0 14px; color:var(--meeting-muted); font-size:13px; line-height:1.6; }
.contact-cards { display:grid; gap:12px; }
.contact-card { padding:16px; border:1px solid var(--meeting-line); border-radius:12px; background:#fff; }
.contact-card header { display:flex; flex-wrap:wrap; align-items:baseline; gap:4px 8px; padding-bottom:10px; border-bottom:1px solid #edf0f7; }
.contact-card header b { font-size:15px; color:var(--meeting-ink); }
.contact-card header small { color:var(--meeting-muted); font-size:12px; }
.contact-lines { padding-top:4px; border-top:1px solid #edf0f7; }
.contact-line { display:grid; grid-template-columns:44px minmax(0,1fr) auto; align-items:center; gap:8px; margin-top:10px; }
.contact-label { color:var(--meeting-muted); font-size:12px; font-weight:600; }
.contact-code { display:block; min-width:0; padding:8px 11px; border:1px solid #e3e8f3; border-radius:8px; background:#f4f6fa; color:#1d2433; font-family:ui-monospace,SFMono-Regular,Consolas,monospace; font-size:13px; line-height:1.5; overflow-wrap:anywhere; user-select:all; }
.contact-copy { min-width:64px; min-height:38px; padding:6px 10px; border:1px solid #c9d3f3; border-radius:8px; background:#eef2ff; color:var(--meeting-blue); font-size:12px; font-weight:700; white-space:nowrap; }
.contact-copy::before { content:'⧉ '; }
.contact-copy:hover { background:#e2e9ff; }
.contact-copy.is-copied { border-color:#bfe5cf; background:#e7f6ee; color:#16704d; }
.contact-copy.is-copied::before { content:'✓ '; }

/* 홈 일정 패널 = 티켓 (참가자는 기업 프로필 티켓, 기업은 시간 티켓) */
.home-page .home-detail.is-ticket { padding:0; border:0; background:transparent; box-shadow:none; }
.home-detail.is-ticket>.home-panel-close { position:absolute; top:10px; right:10px; z-index:2; }
.home-panel-title { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; }
.home-detail.is-ticket .mr-profile-card,.home-schedule-modal .mr-profile-card { margin:0; }
.home-schedule-modal .mr-profile-card { --ticket-bg:#fff; }
.slot-ticket-tool { display:inline-flex; align-items:center; justify-content:center; width:34px; height:34px; min-width:34px; min-height:34px; padding:0; border:1px solid #e3e8f3; border-radius:9px; background:#fff; color:#55607a; font-size:17px; line-height:1; cursor:pointer; }
.slot-ticket-tool:hover { background:#f3f6fd; color:var(--meeting-blue); }
.slot-ticket { --ticket-bg:#f6f7f9; --ticket-line:#b7c5ea; --ticket-edge:#d5ddf0; --pad:20px; position:relative; overflow:hidden; border:1px solid var(--ticket-edge); border-radius:18px; background:#fff; box-shadow:0 8px 24px #22366a0d; color:var(--meeting-ink); }
.home-schedule-modal .slot-ticket { --ticket-bg:#fff; box-shadow:none; }
.slot-ticket-band { position:relative; display:flex; justify-content:flex-end; align-items:flex-start; min-height:58px; padding:12px; background:linear-gradient(120deg,#dfe8ff,#eef2ff 55%,#e8e2ff); }
.slot-ticket-band .mr-ticket-label { top:16px; left:18px; }
.slot-ticket-tools { display:flex; gap:6px; }
.slot-ticket-head { padding:16px var(--pad) 18px; }
.slot-ticket-head h2 { margin:0; font-size:19px; font-weight:750; line-height:1.45; letter-spacing:-.035em; }
.slot-ticket-place { margin:4px 0 12px; color:var(--meeting-muted); font-size:13px; line-height:1.6; overflow-wrap:anywhere; }
.slot-ticket-meta { display:flex; flex-wrap:wrap; align-items:center; gap:8px; }
.slot-ticket-meta .home-slot-count { padding:0; background:none; color:var(--meeting-blue); font-size:13px; font-weight:600; }
.slot-ticket-body { position:relative; margin:0; padding:0 var(--pad); }
.slot-ticket-body>.meeting-detail-section,.slot-ticket-body.is-settings { position:relative; margin:0 calc(var(--pad)*-1); padding:18px var(--pad) 20px; border-top:2px dashed var(--ticket-line); }
.slot-ticket-body>.meeting-detail-section:first-child { background:linear-gradient(#f5f8ff,#eef3fd); }
.slot-ticket-body.is-settings { margin:0; }
.slot-ticket-body>.meeting-detail-section::before,.slot-ticket-body>.meeting-detail-section::after,.slot-ticket-body.is-settings::before,.slot-ticket-body.is-settings::after { content:''; position:absolute; top:-15px; z-index:1; width:28px; height:28px; border-radius:50%; background:var(--ticket-bg); border:1px solid var(--ticket-edge); box-sizing:border-box; }
.slot-ticket-body>.meeting-detail-section::before,.slot-ticket-body.is-settings::before { left:-15px; }
.slot-ticket-body>.meeting-detail-section::after,.slot-ticket-body.is-settings::after { right:-15px; }
.slot-ticket .meeting-detail-section h3 { margin:0 0 12px; color:var(--meeting-blue); font-size:12px; font-weight:800; letter-spacing:.04em; }
.slot-ticket .home-roster-person .contact-line { grid-template-columns:40px minmax(0,1fr) auto; }
.slot-ticket-body.is-settings>button:first-child { min-height:36px; padding:6px 12px; border-radius:9px; font-size:12px; }
.slot-ticket-body.is-settings h3 { margin:16px 0 2px; color:var(--meeting-blue); font-size:12px; font-weight:800; letter-spacing:.04em; }
.slot-ticket .slot-setting { padding:14px 0; border-bottom:1px solid #edf0f7; }
.slot-ticket .slot-setting:last-child { border-bottom:0; padding-bottom:0; }
.slot-ticket .slot-setting b { display:block; margin-bottom:8px; font-size:14px; font-weight:700; line-height:1.5; overflow-wrap:anywhere; }
.slot-ticket .slot-setting p { margin:0 0 8px; color:var(--meeting-muted); font-size:12px; line-height:1.6; }
.slot-ticket .slot-setting button { min-height:38px; padding:7px 14px; border-radius:9px; font-size:13px; }
.slot-ticket .slot-setting .reason { font-size:11px; }

/* ── 태블릿 이하 ────────────────────────────── */
@media(max-width:1000px) {
 .home-page .home-agenda { padding:18px; }
 .home-personal-calendar { display:block; }
 .home-calendar-day { display:none; }
 .home-calendar-day.day-visible { display:block; }
 .home-calendar-axis { display:none; }
 .home-calendar-time { min-height:72px; margin-bottom:8px; }
 .home-page .slot-workspace .tl-row { height:auto; min-height:82px; }
 .home-page .slot-workspace .slot-ev { min-height:88px; }
 .home-schedule-modal .modal-content { border-radius:20px 20px 0 0; padding:22px 18px max(22px,env(safe-area-inset-bottom)); max-height:90dvh; }
 .slot-panel-overlay .slot-panel { border-radius:20px 20px 0 0; padding:22px 18px; }
 .mr-card-inner { --pad:16px; }
 /* 목록 행은 좁아지면 위아래로 쌓는다 */
 .home-schedule-table .home-schedule-row,.home-schedule-table.for-company .home-schedule-row { grid-template-columns:minmax(0,1fr) auto; column-gap:12px; row-gap:8px; padding:18px 18px 18px 24px; }
 .home-schedule-row .home-cell-time { grid-column:1/-1; grid-row:1; }
 .home-schedule-row .home-cell-time .home-row-open { flex-direction:row; align-items:center; justify-content:space-between; width:100%; }
 .home-schedule-row :is(.home-cell-company,.home-cell-names) { grid-column:1/-1; grid-row:2; font-size:17px; }
 .home-schedule-row .home-cell-place,.home-schedule-table.for-company .home-cell-place { grid-column:1; grid-row:3; }
 .home-schedule-table.for-company .home-cell-count { grid-column:2; grid-row:3; }
 .home-schedule-row .home-cell-message { grid-column:1/-1; grid-row:4; padding:2px 0 2px 12px; border-left:2px solid #dbe3f5; }
 .home-schedule-table.for-company .home-cell-waiting { grid-column:1/-1; grid-row:4; text-align:left; }
 .home-schedule-table .home-schedule-row :is(.home-cell-company,.home-cell-names,.home-cell-place,.home-cell-message,.home-cell-waiting) { max-width:none; text-align:left; align-self:start; justify-self:stretch; }
 .home-schedule-table .home-schedule-row .home-cell-count { max-width:none; align-self:start; }
 .home-schedule-table .home-cell-message>span { white-space:normal; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; }
 .home-schedule-table .home-cell-place>span { white-space:normal; }
 /* 찾기 목록: 좁은 화면에서는 표가 아니라 카드 */
 .directory-table:is(.company-directory,.participant-directory) { background:transparent; border:0; border-radius:0; overflow:visible; }
 .directory-table:is(.company-directory,.participant-directory) td { height:auto; padding:0; border:0; }
 .directory-table:is(.company-directory,.participant-directory) .directory-row:hover td { background:none; }
 .directory-table .directory-row { padding:16px 16px 16px 20px; margin-bottom:10px; border-radius:var(--meeting-radius); border-color:var(--meeting-line); }
 .directory-table .directory-row:has(.status-confirmed) { box-shadow:inset 5px 0 var(--member-ok); }
 .directory-table .directory-row:has(.status-invited,.status-applied) { box-shadow:inset 5px 0 var(--member-wait); }
 .directory-table .directory-row:hover { background:#fbfcff; }
}
/* ── 휴대폰 ─────────────────────────────────── */
@media(max-width:600px) {
 :is(.home-page,.directory-page,.meeting-detail-page) .page-header { margin-bottom:20px; }
 :is(.home-page,.directory-page,.meeting-detail-page) .page-header h1 { font-size:24px; }
 :is(.home-page,.directory-page,.meeting-detail-page) .page-header p { font-size:13px; }
 :is(.request-tabs,.directory-stats) { gap:2px; padding:4px; margin-bottom:16px; }
 :is(.directory-page) :is(.request-tabs,.directory-stats)>button { gap:5px; padding:8px 4px; font-size:13px; }
 .directory-stat strong,.request-tab-count { padding:0 5px; font-size:11px; }
 .directory-page .directory-filters.filters { padding:14px; border-radius:12px; }
 .home-page .company-dashboard { gap:7px; margin-bottom:18px; }
 .home-page .company-stat { display:flex; align-items:flex-start; justify-content:center; flex-direction:column; gap:8px; min-height:98px; padding:13px 10px; border-radius:12px; }
 .home-page .company-stat>span:first-child { font-size:11px; }
 .home-page .company-stat>strong { font-size:24px; }
 .home-page .company-stat-link { display:none; }
 .home-page .home-agenda { padding:16px 12px; }
 .home-page .home-agenda-head { gap:12px; }
 .home-page .home-agenda-head h2 { font-size:17px; }
 .home-page .home-view-toggle button { padding:7px 9px; font-size:11px; }
 .home-page .home-calendar-help { font-size:12px; margin-bottom:14px; }
 .home-page .home-date { min-height:42px; font-size:11px; }
 .home-page .slot-workspace .slot-summary { gap:8px; padding:10px; justify-content:space-between; }
 .home-page .slot-workspace .slot-summary>div { flex-direction:column; gap:3px; font-size:10px; }
 .home-page .slot-workspace .slot-summary b { font-size:18px; }
 :is(.request-table,.home-schedule-table) tbody { gap:10px; }
 .requests-page .request-table .request-row { padding:16px 16px 16px 22px; }
 .request-table .request-identity { gap:10px; }
 .request-table .request-identity .media-avatar { width:40px; height:40px; flex-basis:40px; }
 .request-table .request-identity-text b { font-size:16px; }
 .request-table .request-identity-text small { font-size:12px; }
 .request-table .request-schedule strong { font-size:15px; }
 .request-table .request-excerpt { font-size:13px; }
 .request-table .request-row-actions button { min-height:44px; font-size:14px; }
 .home-schedule-table .home-schedule-row,.home-schedule-table.for-company .home-schedule-row { padding:16px 16px 16px 22px; }
 .meeting-booking-card { padding:20px; }
 .meeting-booking-person .home-person strong { font-size:20px; }
 .meeting-booking-card .meeting-time { font-size:17px; }
 .home-roster-person { padding:14px; }
 .profile-response-actions button { min-height:50px; }
}
/* 휴대폰 프로필: 카드 안 3단에 버튼이 모두 있으므로 하단 고정 줄은 리포트 보기에서만 쓴다 */
@media(max-width:768px) {
 .mr-card-view .mr-mobile-dock { display:none; }
 .mr-page.mr-card-view { padding-bottom:24px; }
}
.home-full-profile { width:100%; margin-top:10px; }
/* 기업 목록 보기: 요청·대기, 승인 필요를 크게 (10/20 사용자 의견 2차) */
.home-schedule-table.for-company .home-cell-waiting { display:flex; flex-direction:column; align-items:flex-end; gap:6px; color:var(--meeting-muted); font-size:14px; }
.home-schedule-table.for-company .home-cell-waiting b { color:var(--meeting-ink); font-size:18px; font-weight:800; }
.home-schedule-table.for-company .home-cell-waiting.has-waiting>span { color:var(--meeting-ink); font-weight:600; }
.home-needs-chip { padding:4px 10px; border:1px solid #fed7aa; border-radius:999px; background:#fff1e6; color:#c2410c; font-size:13px; font-style:normal; font-weight:800; white-space:nowrap; }
.home-layout.has-detail .home-schedule-table.for-company .home-schedule-row { grid-template-columns:minmax(150px,auto) minmax(0,1fr) auto; row-gap:6px; }
.home-layout.has-detail .home-schedule-table.for-company .home-cell-place { grid-column:2; grid-row:2; }
.home-layout.has-detail .home-schedule-table.for-company .home-cell-count { grid-column:3; grid-row:1; }
.home-layout.has-detail .home-schedule-table.for-company .home-cell-waiting { grid-column:3; grid-row:2; }
.mine-conflict .ev-reason { color:#8a5a00; }
