/* ==========================================================================
   [개인 포털 · 이슈 화면] - sem-frontend.css 위에 덧붙임
   ========================================================================== */
.sem-portal-wrap .sem-portal-desc { font-size: 14px; color: #64748b; line-height: 1.6; margin: 0 0 12px; }
.sem-portal-node-id { font-size: 11px; color: #94a3b8; font-weight: normal; margin-left: 4px; }

/* 분야 섹션 (트리 깊이별 들여쓰기) */
.sem-portal-field { margin: 25px 0; }
.sem-portal-field h3 { font-size: 1.15rem; color: #1e293b; border-left: 4px solid #2271b1; padding-left: 10px; margin-bottom: 10px; }
.sem-portal-field.depth-1 { margin-left: 16px; }
.sem-portal-field.depth-1 h3 { border-left-color: #64748b; font-size: 1.05rem; }
.sem-portal-field.depth-2, .sem-portal-field.depth-3 { margin-left: 32px; }
.sem-portal-field.depth-2 h3, .sem-portal-field.depth-3 h3 { border-left-color: #cbd5e1; font-size: 1rem; }

/* 보유 칸 표 */
.sem-portal-wrap .sem-frontend-table { min-width: 680px; font-size: 14px; }
.sem-portal-wrap .sem-frontend-table .sem-trade-status,
.sem-portal-wrap .sem-frontend-table .sem-btn-exchange-link,
.sem-portal-wrap .sem-frontend-table .sem-condition-text { white-space: nowrap; }
.sem-portal-wrap .sem-frontend-table .sem-btn-exchange-link { padding: 6px 12px; font-size: 13px; }
.sem-portal-slot-table tr.is-empty td { background: #fcfcfd; }
.sem-portal-empty { display: inline-block; padding: 2px 10px; border: 1px dashed #cbd5e1; border-radius: 4px; color: #94a3b8; font-size: 12px; font-weight: 600; }
.sem-portal-stance { display: inline-block; padding: 2px 8px; border-radius: 4px; background: #e8f4fd; color: #1d6fa5; font-size: 12px; font-weight: bold; }
.sem-portal-btn-clear { margin-left: 6px; padding: 7px 10px; font-size: 12px; border: 1px solid #cbd5e1; border-radius: 6px; background: #f8fafc; color: #475569; cursor: pointer; }
.sem-portal-btn-clear:hover { background: #fef2f2; color: #991b1b; border-color: #fecaca; }
button.sem-btn-exchange-link { border: none; cursor: pointer; font-size: 14px; }

/* 빵부스러기 */
.sem-portal-breadcrumb { font-size: 13px; color: #64748b; margin-bottom: 8px; }
.sem-portal-breadcrumb a { color: #2271b1; text-decoration: none; }

/* 의견 분포 막대 */
.sem-portal-dist { border: 1px solid #e2e8f0; border-radius: 6px; padding: 12px 15px; background: #fff; }
.sem-portal-dist-row { display: grid; grid-template-columns: 140px 1fr 120px; gap: 12px; align-items: center; padding: 8px 0; }
.sem-portal-dist-label { font-weight: 600; color: #334155; font-size: 14px; }
.sem-portal-dist-bar { height: 14px; background: #f1f5f9; border-radius: 7px; overflow: hidden; }
.sem-portal-dist-bar span { display: block; height: 100%; background: #2271b1; border-radius: 7px; min-width: 2px; }
.sem-portal-dist-num { font-size: 13px; color: #475569; text-align: right; }
.sem-portal-holders { padding: 0 0 10px 152px; display: flex; flex-wrap: wrap; gap: 6px; border-bottom: 1px dashed #e2e8f0; }
.sem-portal-holders a { font-size: 12px; padding: 2px 8px; border: 1px solid #e2e8f0; border-radius: 10px; color: #475569; text-decoration: none; background: #f8fafc; }
.sem-portal-holders a:hover { border-color: #2271b1; color: #2271b1; }
@media (max-width: 600px) {
    .sem-portal-dist-row { grid-template-columns: 1fr; gap: 4px; }
    .sem-portal-dist-num { text-align: left; }
    .sem-portal-holders { padding-left: 0; }
}

/* 저작물 본문 */
.sem-portal-work-content { font-size: 15px; line-height: 1.8; color: #1e293b; }
.sem-portal-work-content.is-preview { color: #64748b; background: #f8fafc; padding: 15px; border-radius: 6px; border: 1px solid #e2e8f0; }

/* 공통 이슈 트리 */
.sem-portal-tree { list-style: none; margin: 0 0 0 4px; padding-left: 16px; border-left: 2px solid #e2e8f0; }
.sem-portal-tree li { margin: 6px 0; }
.sem-portal-tree li.is-issue a { color: #2271b1; text-decoration: none; }
.sem-portal-tree li.is-issue a::before { content: "• "; color: #94a3b8; }

.sem-portal-wrap .sem-ajax-msg.is-error { color: #c5221f; }
.sem-portal-wrap .sem-ajax-msg.is-ok { color: #137333; }

/* ==========================================================================
   [관점 프로필 · 포털 목록] v1.5.1
   ========================================================================== */
.sem-portal-done { display: inline-block; margin-left: 6px; padding: 2px 8px; border-radius: 10px; background: #e6f4ea; color: #137333; font-size: 11px; font-weight: bold; vertical-align: middle; }
.sem-portal-progress { display: inline-block; margin-left: 6px; padding: 2px 8px; border-radius: 10px; background: #f1f5f9; color: #64748b; font-size: 11px; font-weight: 600; vertical-align: middle; }
.sem-portal-profile { display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 10px; }
.sem-portal-profile-item { display: block; padding: 10px 14px; border: 1px solid #bbf7d0; background: #f0fdf4; border-radius: 6px; text-decoration: none; color: #166534; }
.sem-portal-profile-item span { display: block; font-size: 12px; color: #475569; margin-top: 2px; }
.sem-portal-profile-item:hover { border-color: #16a34a; }
.sem-portal-leaders { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 12px; }
.sem-portal-leaders .sem-metric-card { text-align: left; }
.sem-portal-leaders .sem-metric-label a { color: #1e293b; text-decoration: none; font-size: 14px; }
.sem-portal-leader-row { display: flex; justify-content: space-between; font-size: 13px; padding: 4px 0; border-bottom: 1px dashed #e2e8f0; }
.sem-portal-leader-row a { color: #2271b1; text-decoration: none; }
.sem-portal-leader-row span { color: #64748b; }

/* ==========================================================================
   [v1.5.2] 개인 포털 · 포털 목록 화면을 테마 본문 폭보다 넓게 (최대 1100px)
   블록 테마의 좁은 본문 폭(content-size) 안에서 화면 가운데를 기준으로 좌우로 펼친다
   ========================================================================== */
.sem-portal-wrap.sem-portal-wide {
    width: min(1100px, calc(100vw - 32px));
    max-width: none !important;
    position: relative;
    left: 50%;
    transform: translateX(-50%);
    box-sizing: border-box;
}
.sem-portal-wide .sem-portal-slot-table { min-width: 0; table-layout: auto; }
.sem-portal-wide .sem-portal-slot-table td:first-child { min-width: 140px; }
.sem-portal-wide .sem-portal-slot-table td:last-child { white-space: nowrap; }
.sem-portal-wide .sem-portal-slot-table .sem-date-cell { white-space: nowrap; }
@media (max-width: 760px) {
    .sem-portal-wide .sem-portal-slot-table { min-width: 680px; } /* 좁은 화면에서는 가로 스크롤 */
}
