/**
 * nudge.css — **권유 카드** 모양·자리 정본 (2026-10-04 신설)
 *
 * 권유 = 사용자가 요청하지 않은 비긴급 안내(앱 설치 · 앱 재설치 · 알림 받기). 그리는 코드는 `pwa.js` `renderNudge` 한 벌이고,
 * 이 파일은 그 카드의 모양·자리만 소유한다. 적재는 `fragments/head-pwa.html` 의 FEATURE_PWA 켜짐 분기(pwa.js 와 같은 조건).
 *
 * 🔴 불변식 N1 「권유는 사용자가 연 것과 사용자의 입력 자리를 가리지 않는다」
 *   ① 층 — `--z-banner`(z-layers.css)는 **L1 크롬 최하위**다: 콘텐츠 위 · 하단 탭바·선택 바·케밥·상단바/알림 패널·드롭다운·
 *      L2·L3(시트·모달·확인창) 아래. 종전 L4(10000, "항상 L3 위")라 열린 알림 패널 19%·폴더 시트 30% 를 덮고
 *      모달 백드롭 위에서 눌렸다(dev 실측 2026-10-04 · 분석 plan/2026-10-04/analysis_results-20261004-191800.md §11).
 *   ② 자리 — 채움 화면(`.snav-fill-viewport` — 바닥이 입력창인 조교 채팅·메시지)에서는 **위쪽**(상단바 아래)에 선다.
 *      층을 내려도 입력창은 콘텐츠라 가려진다(종전 조교 화면 입력창 100% 가림) — 층이 아니라 자리로 푼다(사용자 결정 D1).
 * 🔴 값(위치·간격)은 종전 인라인 스타일 그대로다 — 하단은 판정 변수 `--snav-pad-bottom`(탭바 높이+safe-area)에서 파생.
 *    폰 대역을 여기서 다시 판정하지 말 것(판정 정본은 student-nav.css §레이아웃 판정 블록).
 */
.pwa-nudge {
    position: fixed;
    left: 16px;
    right: 16px;
    bottom: calc(var(--snav-pad-bottom, 0px) + 16px);
    max-width: 480px;
    margin: 0 auto;
    z-index: var(--z-banner);
    background: var(--t-surface, #fff);
    color: var(--t-on-surface, #222);
    border: 1px solid var(--t-card-border, rgba(128, 128, 128, .25));
    border-radius: 14px;
    padding: 14px 16px;
    box-shadow: 0 6px 24px rgba(0, 0, 0, .3);
    font-size: .9rem;
}

/* 채움 화면 — 바닥은 입력창의 몫이다. 판정은 채움 정본 클래스(student-nav.css 소유)를 그대로 읽는다(판정 두 벌 금지) */
body:has(.snav-fill-viewport) .pwa-nudge {
    top: calc(var(--snav-pad-top, 0px) + 8px);
    bottom: auto;
}

.pwa-nudge__title {
    font-weight: 700;
    margin-bottom: 4px;
}

.pwa-nudge__desc {
    opacity: .8;
    margin-bottom: 10px;
}

.pwa-nudge__actions {
    display: flex;
    gap: 8px;
    justify-content: flex-end;
}
