/* 교우소식 카드: 결혼('축하해요', 꽉 찬 블루 라벨) / 군 입대('응원해요', 외곽선 라벨). 로고의 꽉 찬 면 + 외곽선 짝. */
.nc { background: var(--card); }
.nc-photo { aspect-ratio: 4 / 3; overflow: hidden; background: linear-gradient(160deg, #2A3B5E, #0C0F16); }
.nc-photo img { width: 100%; height: 100%; object-fit: cover; }
.nc-cap { display: block; padding: 12px 14px; color: rgba(255,255,255,.78); font-size: 13px; font-weight: 650; }
.nc-body { padding: 20px 20px 22px; }
.nc-top { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.nc-label { display: inline-flex; align-items: center; min-height: 28px; padding: 0 12px; border-radius: 999px; font-size: 13px; font-weight: 750; white-space: nowrap; flex: none; }
.nc-wedding .nc-label, .nr-wedding .nc-label { background: var(--blue); color: #fff; }
.nc-military .nc-label, .nr-military .nc-label { border: 1.5px solid var(--blue); color: var(--blue); }
.nc-tag { display: inline-block; padding: 2px 9px; border: 1.5px dashed #8A90A0; border-radius: 999px; font-size: 12px; font-weight: 650; color: var(--ink-2); white-space: nowrap; flex: none; }
.nc-name { margin: 14px 0 0; font-size: 26px; line-height: 1.2; letter-spacing: -0.035em; font-weight: 780; }
.nc-when { margin: 4px 0 0; color: var(--ink-2); font-weight: 600; }
.nc-dday { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; margin-top: 18px; }
.nc-dday .k { font-weight: 700; }
.nc-dday b { font-size: 34px; line-height: 1; font-weight: 820; letter-spacing: -0.03em; color: var(--blue); }
.nc-bar { height: 6px; margin-top: 10px; border-radius: 999px; background: #E6E9EE; overflow: hidden; }
.nc-bar span { display: block; height: 100%; background: var(--blue); border-radius: inherit; }
.nc-note { margin: 8px 0 0; font-size: 13px; color: var(--ink-2); }
.nc-msg { margin: 16px 0 0; padding-top: 14px; border-top: 1px solid #E6E9EE; font-size: 17px; }
.nc.is-past .nc-name { font-size: 21px; }
.nc.is-past .nc-label { background: none; border: 1.5px solid #8A90A0; color: var(--ink-2); }

/* 홈의 작은 줄 */
.nr { display: flex; align-items: center; gap: 12px; min-height: 64px; padding: 10px 16px; background: var(--card); transition: transform 160ms var(--ease-out); }
.nr:active { transform: scale(0.98); }
.nr-text { display: flex; flex-direction: column; min-width: 0; flex: 1; line-height: 1.35; }
.nr-text b { font-weight: 750; }
.nr-text span { font-size: 14px; color: var(--ink-2); }
.nr .nc-label { min-width: 80px; justify-content: center; } /* 꽉 찬 라벨과 외곽선 라벨의 폭을 맞춘다 */
