/* Portal and reader scope preserves operator styles. */
.airi-home-boards{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1.2fr) minmax(0,1.6fr);gap:16px;margin-top:24px}.airi-board-panel{background:var(--airi-paper);border:1px solid var(--airi-border);border-radius:var(--airi-radius-lg);padding:20px;min-width:0}.airi-board-heading{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:14px}.airi-board-heading h2{font-size:18px}.airi-board-heading>a{font-size:12px;color:var(--airi-primary);white-space:nowrap}.portal-row{padding:12px 0;border-top:1px solid var(--airi-line)}.portal-row h3{font-size:15px;line-height:1.6}.portal-row p{font-size:13px;color:var(--airi-muted);line-height:1.7}.portal-row time{font-size:12px;color:var(--airi-muted)}.airi-home .auth,.airi-home .status{margin-bottom:12px}.airi-reader>header.airi-header{background:var(--airi-paper);color:var(--airi-ink);padding:0;display:block}.airi-reader .airi-header nav,.airi-reader .airi-footer nav{display:flex}.airi-reader>footer.airi-footer{display:block;padding:0;background:var(--airi-paper)}.airi-reader .airi-nav a{color:var(--airi-primary)}
@media(max-width:780px){.airi-home-main{display:flex;flex-direction:column}.airi-home-layout{display:contents}.airi-catalog{order:1}.airi-home-boards{order:2;grid-template-columns:minmax(0,1fr)}.airi-home-aside{order:3;margin-top:24px}.airi-home-main>.auth,.airi-home-main>.status,.airi-home-main>.preview{order:0}.airi-reader .airi-header-inner{flex-wrap:wrap}}

@media(min-width:781px){.airi-home-main{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1.2fr) minmax(0,1.6fr);gap:0 16px}.airi-home-layout{display:contents}.airi-home-main>.preview,.airi-home-main>.auth,.airi-home-main>.status{grid-column:1/-1}.airi-home-main>.preview{grid-row:1}.airi-home-main>.auth{grid-row:2}.airi-home-main>.status{grid-row:3}.airi-home-main .airi-catalog{grid-column:1/3;grid-row:4}.airi-home-aside{grid-column:3;grid-row:4}.airi-home-boards{grid-column:1/-1;grid-row:5}}

.airi-home .portal-row:has(.news-visual){display:grid;grid-template-columns:minmax(0,1fr) 96px;column-gap:14px}.airi-home .portal-row .news-visual{grid-column:2;grid-row:1/4;margin:0;align-self:center}.airi-home .news-visual img{width:96px;height:68px;object-fit:cover;border-radius:6px}.airi-home .news-visual figcaption{font-size:10px;color:var(--airi-muted)}
.airi-home .portal-row h3,.airi-home .portal-row p,.airi-home .portal-row time{min-width:0}.airi-home .portal-row p{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;margin-top:6px}.airi-home .portal-row h3 a:hover{text-decoration:underline;text-underline-offset:3px}.airi-home .preview{padding:10px 16px;background:var(--airi-note-bg);color:var(--airi-note);font-size:12px;border-radius:var(--airi-radius)}.airi-home .auth{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:12px 0;font-size:13px}.airi-home .auth label{display:block}.airi-home .auth select,.airi-home .auth input,.airi-home .auth button{font:inherit;padding:8px 12px;min-height:40px;border:1px solid var(--airi-rule-strong);border-radius:var(--airi-radius);background:white;max-width:100%}.airi-home .auth button{background:var(--airi-primary);color:white}.airi-home .status{font-size:13px;color:var(--airi-muted);min-width:0;overflow-wrap:anywhere}.airi-home .status:empty{display:none}.airi-reader .airi-nav a[aria-current=page]{font-weight:600}.airi-home .portal-row .news-visual img{display:block}.airi-home .portal-row .news-visual figcaption{margin-top:4px}
@media(max-width:980px){.airi-reader .airi-header-inner{gap:18px}.airi-reader .airi-nav{gap:16px}.airi-reader .airi-nav-extra{gap:12px;padding-inline-start:16px}}
@media(max-width:650px){.airi-reader .airi-nav{gap:16px}.airi-home .airi-nav{gap:16px}.airi-home .auth label{flex:0 0 100%}.airi-home .portal-row:has(.news-visual){grid-template-columns:minmax(0,1fr) 80px}.airi-home .news-visual img{width:80px;height:56px}}
.airi-reader>footer.airi-footer{width:100%;max-width:none;margin-inline:0;margin-bottom:0}.airi-reader>header.airi-header{width:100%;max-width:none}

.airi-home .airi-tool-actions{margin-top:18px;margin-inline-start:34px}.airi-home .airi-tool-actions .airi-btn{min-width:192px;min-height:48px;padding:12px 24px;font-size:15px}

@media(max-width:560px){.airi-home .airi-tool-actions{margin-inline-start:26px}}


/* 홈 패널: 응답 전 실제 행 구조(제목 한 줄 + 요약 두 줄)에 맞춰 공간을 예약한다.
 * 실제 결과 추가로 생기는 높이 변화는 남지만, 한 줄로 축소됐다가 커지는 출렁임은 없앤다.
 * 고정 giant height나 overflow 숨김으로 맞추지 않는다. */
.portal-skeleton{display:grid;gap:0;padding:0}
.portal-skeleton-row{display:grid;gap:6px;padding:12px 0;border-top:1px solid var(--airi-line)}
.portal-skeleton-row i{display:block;height:14px;border-radius:3px;background:linear-gradient(90deg,#f1f3f5,#f7f8fa 60%,#f1f3f5)}
.portal-skeleton-row i:nth-child(2){height:11px;width:70%}
.portal-skeleton-row i:nth-child(3){height:11px;width:45%}
@media(max-width:560px){.portal-skeleton-row i{height:13px}.portal-skeleton-row i:nth-child(2),.portal-skeleton-row i:nth-child(3){height:10px}}

.portal-empty{display:grid;gap:6px;padding:20px 16px;border:1px dashed var(--airi-rule-strong);border-radius:var(--airi-radius);background:var(--airi-bg,transparent);text-align:center}.portal-empty strong{font-size:15px;font-weight:600}.portal-empty span{font-size:13px;color:var(--airi-muted);line-height:1.7}
