*{box-sizing:border-box;margin:0;padding:0}
:root{--brand:#2d7a4f;--brand-rgb:45,122,79;--brand-dark:#0f6e56;--brand-soft:#e1f5ee;--brand-border:#a8dbc8;--brand-shadow-14:rgba(45,122,79,.14);--brand-shadow-18:rgba(45,122,79,.18);--brand-shadow-22:rgba(45,122,79,.22);--brand-grad:linear-gradient(135deg,var(--brand),var(--brand-dark));}
body{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;background:#e8e8e8;color:#111}
button,input,select,textarea{font-family:inherit}
.app{max-width:430px;margin:0 auto;background:#fff;min-height:100vh;display:flex;flex-direction:column;box-shadow:0 0 24px rgba(0,0,0,.08)}
.header{background:var(--brand);color:#fff;padding:10px 14px;display:flex;align-items:center;gap:10px;position:sticky;top:0;z-index:100;padding-top:max(10px, env(safe-area-inset-top))}
.header h1{font-size:17px;font-weight:700;flex:1}.header-btn{background:rgba(255,255,255,.20);border:none;color:#fff;border-radius:9px;padding:7px 10px;cursor:pointer;font-size:12px;font-weight:700}
.logo-face{width:34px;height:34px;border-radius:10px;background:#fff;display:flex;align-items:center;justify-content:center;overflow:hidden;flex-shrink:0}.logo-face img{width:100%;height:100%;object-fit:cover}
.nav{display:flex;border-top:.5px solid #e5e5e5;background:#fff;position:sticky;bottom:0;z-index:100;padding-bottom:env(safe-area-inset-bottom);min-height:64px}
.nav-btn{flex:1;padding:10px 4px 8px;border:none;background:#fff;cursor:pointer;font-size:11.5px;color:#888;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;min-height:64px}.nav-btn span{font-size:24px;line-height:1}.nav-btn.active{color:var(--brand);font-weight:800}
.content{flex:1;overflow-y:auto;padding:16px;background:#f0f0f0}.screen{display:none}.screen.active{display:block}.mb14{margin-bottom:14px}.mb10{margin-bottom:10px}
.login-wrap{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100vh;gap:20px;padding:24px;background:#fff;padding-top:max(24px,env(safe-area-inset-top));padding-bottom:max(24px,env(safe-area-inset-bottom))}.login-logo-block{text-align:center;display:flex;flex-direction:column;align-items:center;gap:12px;margin-bottom:0}.logo-face-lg{width:96px;height:96px;margin:0 auto;border-radius:24px;background:var(--brand-soft);display:flex;align-items:center;justify-content:center;overflow:hidden}.logo-face-lg img{width:100%;height:100%;object-fit:cover}.login-title{font-size:24px;font-weight:800;color:var(--brand);letter-spacing:-.5px}.login-sub{font-size:13px;color:#888;margin-top:0}.login-form{background:#fff;width:100%}.login-error{margin-bottom:14px;border-radius:8px;background:#fcebeb;color:#a32d2d;font-size:13px;padding:10px 12px}
.form-label{font-size:13px;color:#777;margin-bottom:6px;display:block}.form-group{margin-bottom:14px}.form-group input,.form-group select,.form-group textarea{width:100%;padding:11px 12px;border:.5px solid #ddd;border-radius:9px;font-size:14px;background:#fff;color:#111}.form-group textarea{resize:vertical;min-height:72px}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:10px}.inline-input{border:.5px solid #ddd;border-radius:8px;padding:8px 10px;max-width:160px;text-align:right}
.btn-primary{background:var(--brand);color:#fff;border:none;border-radius:9px;padding:13px;font-size:15px;font-weight:700;cursor:pointer;width:100%}.btn-secondary{background:#f5f5f5;color:#111;border:.5px solid #ddd;border-radius:9px;padding:10px 12px;font-size:13px;cursor:pointer;font-weight:700}.btn-green-sm{background:var(--brand);color:#fff;border:none;border-radius:8px;padding:8px 12px;font-size:13px;cursor:pointer;font-weight:700;display:inline-flex;align-items:center;gap:4px}.btn-upload{background:#e6f1fb;color:#185fa5;border:.5px solid #b5d4f4;border-radius:8px;padding:8px 12px;font-size:13px;cursor:pointer;font-weight:700}.btn-danger-sm{background:#fcebeb;color:#a32d2d;border:.5px solid #f7c1c1;border-radius:7px;padding:6px 9px;font-size:12px;cursor:pointer;font-weight:700}.btn-edit-sm{background:#eeedfe;color:#3c3489;border:.5px solid #c5c2f8;border-radius:7px;padding:6px 9px;font-size:12px;cursor:pointer;font-weight:700}.btn-row{display:flex;gap:6px;align-items:center;flex-wrap:wrap}.btn-refresh{border:none;border-radius:10px;padding:11px 10px;background:var(--brand-soft);color:var(--brand-dark);font-weight:800;cursor:pointer}.btn-refresh.all{background:#a32d2d;color:#fff}.action-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:14px}
.btn-install{width:100%;background:#fff;color:var(--brand);border:1.5px solid var(--brand);border-radius:8px;padding:12px 14px;font-size:14px;font-weight:600;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:6px}.btn-install:active{background:var(--brand-soft)}.install-icon{font-size:16px;line-height:1}.install-area{width:100%;margin-top:8px}.install-divider{display:flex;align-items:center;text-align:center;color:#bbb;font-size:12px;margin:18px 0}.install-divider::before,.install-divider::after{content:"";flex:1;border-bottom:.5px solid #e0e0e0}.install-divider span{padding:0 10px}.install-hint{text-align:center;font-size:12px;color:#999;margin-top:8px}.ios-install-hint{width:100%;margin-top:14px;background:#f5f5f5;border-radius:10px;padding:12px 14px;font-size:12.5px;color:#666;line-height:1.6;display:flex;align-items:flex-start;gap:8px}.ios-install-icon{font-size:16px;color:var(--brand);flex-shrink:0;margin-top:1px;font-weight:800}
.card{background:#fff;border:.5px solid #e5e5e5;border-radius:12px;padding:14px 16px;margin-bottom:12px}.card-title{font-size:15px;font-weight:800;margin-bottom:12px}.info-card{background:var(--brand-soft);border-color:var(--brand-border);color:var(--brand-dark);font-size:13px;line-height:1.6}.row-between{display:flex;align-items:center;justify-content:space-between}.screen-title{font-size:16px;font-weight:800}.section-title{font-size:12px;font-weight:800;color:#777;letter-spacing:.04em}.muted{color:#888}.small{font-size:12px}.green{color:var(--brand-dark)}.red{color:#a32d2d}.blue{color:#185fa5}
.stat-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:14px}.stat-card{background:#fff;border:.5px solid #e5e5e5;border-radius:12px;padding:13px}.stat-label{font-size:12px;color:#888;margin-bottom:5px}.stat-val{font-size:20px;font-weight:900;color:#111;letter-spacing:-.02em}.stat-sub{font-size:11px;color:#888;margin-top:2px}.stat-val.red,.profit.red,.rate.red{color:#c42828}.stat-val.blue,.profit.blue,.rate.blue{color:#1e64c8}
.filter-row{display:flex;gap:8px;overflow-x:auto;margin-bottom:12px;padding-bottom:4px}.chip{flex-shrink:0;padding:8px 15px;border-radius:99px;font-size:13px;border:.5px solid #ddd;background:#f5f5f5;cursor:pointer;color:#777;white-space:nowrap;font-weight:700}.chip.active{background:var(--brand);color:#fff;border-color:var(--brand)}.chip.add{border-style:dashed;color:var(--brand-dark);background:var(--brand-soft)}
.search-wrap{position:relative;margin-bottom:12px}.search-wrap input{width:100%;padding:10px 14px 10px 38px;border:.5px solid #ddd;border-radius:9px;font-size:14px;background:#fff;color:#111}.search-wrap span{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:#888;font-size:16px}
.holding-card{background:#fff;border:.5px solid #e5e5e5;border-radius:14px;padding:14px;margin-bottom:10px;overflow:hidden}.holding-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:10px}.holding-name{font-size:15px;font-weight:900;line-height:1.25;word-break:keep-all}.holding-code{font-size:12px;color:#888;margin-top:3px}.badge{display:inline-flex;align-items:center;justify-content:center;min-width:42px;padding:4px 9px;border-radius:99px;font-size:12px;font-weight:900}.badge-loss{background:#e6f1fb;color:#185fa5}.badge-hold{background:#f1efe8;color:#5f5e5a}.badge-near{background:#faeeda;color:#854f0b}.badge-hit{background:var(--brand-soft);color:var(--brand-dark)}.badge-watch{background:#fcebeb;color:#a32d2d}.hgrid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:10px}.hitem{background:#f5f5f5;border-radius:10px;padding:9px}.hlabel{font-size:11px;color:#888;margin-bottom:3px}.hval{font-size:14px;font-weight:800}.hval.qty{color:#163d63}.hval.avg{color:#0e6b64}.trend-row{display:flex;align-items:center;gap:8px;margin:6px 0 10px}.trend{font-weight:900;font-size:18px;min-width:22px;text-align:center}.trend.up{color:#c42828}.trend.down{color:#1e64c8}.trend.flat,.trend.none{color:#888}.change{font-size:13px;font-weight:800}.card-actions{display:flex;gap:6px;flex-wrap:wrap;border-top:.5px solid #eee;padding-top:10px}.empty{background:#fff;border:.5px dashed #ccc;border-radius:12px;padding:22px;text-align:center;color:#888;font-size:13px;line-height:1.6}
.fee-row{display:flex;align-items:center;justify-content:space-between;padding:10px 0;border-bottom:.5px solid #e5e5e5;font-size:14px}.fee-row:last-child,.fee-row.last{border:none}.fee-val{font-weight:800;font-size:14px}.catalog-pill{display:inline-flex;margin:0 6px 6px 0;padding:6px 10px;border-radius:999px;background:#f5f5f5;border:.5px solid #ddd;font-size:12px;color:#666}
.trade-card{background:#fff;border:.5px solid #e5e5e5;border-radius:12px;padding:13px;margin-bottom:10px}.trade-title{font-weight:900;font-size:14px}.trade-meta{font-size:12px;color:#888;margin-top:4px}.trade-buy{color:#c42828}.trade-sell{color:#1e64c8}
.modal-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,.45);z-index:200;align-items:flex-end;justify-content:center}.modal-overlay.open{display:flex}.modal{background:#fff;border-radius:14px 14px 0 0;width:100%;max-width:430px;max-height:92vh;overflow-y:auto;padding:20px;padding-bottom:max(20px, env(safe-area-inset-bottom))}.modal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.modal-title{font-size:17px;font-weight:900}.close-btn{border:none;background:#f5f5f5;border-radius:9px;width:34px;height:34px;font-size:22px;cursor:pointer}.modal-actions{display:flex;gap:10px;margin-top:16px}.modal-actions .btn-primary{flex:2}.modal-actions .btn-secondary{flex:1}.toast{position:fixed;left:50%;bottom:calc(72px + env(safe-area-inset-bottom));transform:translateX(-50%) translateY(20px);background:rgba(0,0,0,.82);color:#fff;padding:10px 14px;border-radius:999px;font-size:13px;z-index:400;opacity:0;pointer-events:none;transition:.2s;max-width:360px;text-align:center}.toast.show{opacity:1;transform:translateX(-50%) translateY(0)}
@media (min-width:431px){body{background:#e8e8e8}.app{min-height:100vh}}
@media (min-width:760px){.app{max-width:960px}.content{padding:22px}.holding-wrap-desktop{display:grid;grid-template-columns:1fr 1fr;gap:12px}.holding-card{margin-bottom:0}.nav-btn{font-size:12px}.stat-val{font-size:24px}}

/* FIX3 사용자 관리 */
.no-margin{margin-bottom:0!important}
.user-list{display:flex;flex-direction:column;gap:8px;margin-top:12px}
.user-row{display:flex;align-items:center;justify-content:space-between;gap:10px;background:#f8faf9;border:.5px solid #e2e8e5;border-radius:12px;padding:11px 12px}
.user-info{min-width:0;flex:1}.user-main{font-size:14px;font-weight:900;color:#111;line-height:1.3}.user-id{display:inline-block;margin-left:6px;font-size:12px;font-weight:700;color:var(--brand-dark);background:var(--brand-soft);border-radius:999px;padding:2px 7px;vertical-align:1px}.user-meta{font-size:12px;color:#888;margin-top:4px;line-height:1.35}.user-actions{display:flex;gap:6px;flex-shrink:0}.btn-green-mini{background:var(--brand-soft);color:var(--brand-dark);border:.5px solid var(--brand-border);border-radius:7px;padding:6px 9px;font-size:12px;cursor:pointer;font-weight:700}.empty.compact{padding:14px;font-size:12px}
@media (max-width:430px){.user-row{align-items:flex-start;flex-direction:column}.user-actions{width:100%}.user-actions button{flex:1}}

/* FIX4 사용자별 독립 상황판 */
.chip .chip-owner{display:block;font-size:10.5px;font-weight:700;opacity:.78;margin-top:2px;line-height:1.05}.chip.danger{background:#fff1f1;color:#a32d2d;border-color:#f1bcbc}.chip.danger:active{background:#ffe4e4}


/* FIX6 가독성 개선: 전체 폰트 확대 */
body{font-size:16px;line-height:1.45}
.header{padding:12px 15px;gap:11px;padding-top:max(12px, env(safe-area-inset-top))}
.header h1{font-size:19px;letter-spacing:-.25px}.header-btn{font-size:13.5px;padding:8px 11px;border-radius:10px}.logo-face{width:38px;height:38px;border-radius:11px}
.nav-btn{font-size:12px;padding:10px 4px 8px;gap:4px;min-height:64px}.nav-btn span{font-size:24px;line-height:1}.content{padding:17px}
.login-title{font-size:27px}.login-sub{font-size:14.5px}.login-error{font-size:14px}.form-label{font-size:14.5px;margin-bottom:7px}.form-group input,.form-group select,.form-group textarea{font-size:16px;padding:13px 13px;border-radius:10px}.inline-input{font-size:16px;padding:10px 11px}
.btn-primary{font-size:16.5px;padding:14px}.btn-secondary{font-size:14.5px;padding:11px 13px}.btn-green-sm,.btn-upload{font-size:14.5px;padding:9px 13px}.btn-danger-sm,.btn-edit-sm,.btn-green-mini{font-size:13.5px;padding:7px 10px}.btn-refresh{font-size:15px;padding:12px 11px}.btn-install{font-size:15.5px;padding:13px 15px}
.card{padding:15px 17px;border-radius:13px}.card-title{font-size:17px}.screen-title{font-size:18px}.section-title{font-size:13px}.small{font-size:13px}.muted{font-size:14px}.info-card{font-size:14.5px}
.stat-grid{gap:11px}.stat-card{padding:15px}.stat-label{font-size:13.5px}.stat-val{font-size:23px}.stat-sub{font-size:12.5px}
.filter-row{gap:9px}.chip{font-size:15px;padding:10px 17px}.chip .chip-owner{font-size:12px;margin-top:3px}
.search-wrap input{font-size:16px;padding:12px 14px 12px 40px}.search-wrap span{font-size:18px}
.holding-card{padding:16px;border-radius:15px;margin-bottom:12px}.holding-name{font-size:18px;line-height:1.3}.holding-code{font-size:13.5px}.badge{font-size:13.5px;min-width:46px;padding:5px 10px}.hgrid{gap:9px}.hitem{padding:11px;border-radius:11px}.hlabel{font-size:12.5px}.hval{font-size:16.5px}.trend{font-size:21px;min-width:25px}.change{font-size:15px}.empty{font-size:14.5px}.catalog-pill{font-size:13.5px;padding:7px 11px}
.fee-row{font-size:15.5px}.fee-val{font-size:15.5px}.trade-title{font-size:16px}.trade-meta{font-size:13.5px}.modal{padding:22px}.modal-title{font-size:19px}.close-btn{width:37px;height:37px}.toast{font-size:14px;padding:11px 15px}
.user-row{padding:13px}.user-main{font-size:16px}.user-id{font-size:13px}.user-meta{font-size:13.5px}
@media (min-width:760px){.app{max-width:980px}.content{padding:24px}.stat-val{font-size:27px}.holding-name{font-size:19px}.hval{font-size:17px}.nav-btn{font-size:13px}.nav-btn span{font-size:24px}}

/* FIX7: 종목 카드 수량 강조 */
.hitem.qty-box{background:linear-gradient(135deg,#edf6ff,#f8fbff);border:.5px solid #cfe5ff;box-shadow:inset 0 0 0 1px rgba(22,61,99,.03)}
.hitem.qty-box .hlabel{font-size:14px;font-weight:900;color:#163d63;letter-spacing:-.2px}
.hval.qty{font-size:22px!important;font-weight:1000;line-height:1.1;color:#123a61;letter-spacing:-.3px}
@media (min-width:760px){.hval.qty{font-size:24px!important}.hitem.qty-box .hlabel{font-size:14.5px}}

/* FIX8: 종목코드 옆 투자금액 표시 */
.holding-code{display:flex;align-items:center;gap:7px;flex-wrap:wrap;line-height:1.45}
.invest-pill{display:inline-flex;align-items:center;justify-content:center;padding:3px 7px;border-radius:999px;background:#fff4e1;color:#9a5a08;border:.5px solid #f0d4a1;font-size:12.5px;font-weight:900;letter-spacing:-.2px}
@media (min-width:760px){.invest-pill{font-size:13.5px;padding:4px 8px}}

/* FIX9: 국내 일봉 미니 차트 */
.btn-chart-sm{background:#fff4e1;color:#9a5a08;border:.5px solid #f0d4a1;border-radius:7px;padding:7px 10px;font-size:13.5px;cursor:pointer;font-weight:800}
.btn-chart-sm:active{background:#ffe9bf}
.chart-title-block{margin-bottom:12px}.chart-stock-name{font-size:19px;font-weight:1000;letter-spacing:-.3px;color:#111;line-height:1.3}
.chart-summary-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:12px 0}.chart-summary-grid>div{background:#f6f7f7;border:.5px solid #e7e9e9;border-radius:11px;padding:10px}.chart-summary-grid span{display:block;font-size:12.5px;color:#888;margin-bottom:3px}.chart-summary-grid strong{font-size:18px;font-weight:1000;color:#111;letter-spacing:-.3px}
.chart-box{background:linear-gradient(180deg,#ffffff,#f7faf9);border:.5px solid #e4e8e6;border-radius:14px;padding:10px;margin:10px 0 8px;overflow:hidden}.mini-chart{display:block;width:100%;height:170px}.chart-grid-line{stroke:#e7ece9;stroke-width:1;stroke-dasharray:4 5}.chart-range{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:13px;color:#777;font-weight:800;margin:4px 0 12px}.chart-recent-title{font-size:13px;font-weight:900;color:#555;margin:12px 0 6px}.chart-recent-list{background:#fafafa;border:.5px solid #e8e8e8;border-radius:11px;overflow:hidden}.chart-row{display:flex;align-items:center;justify-content:space-between;padding:9px 11px;border-bottom:.5px solid #ececec;font-size:14px}.chart-row:last-child{border-bottom:none}.chart-row span{color:#777}.chart-row strong{font-weight:900;color:#111}.chart-note{margin-top:10px;line-height:1.55}
@media (min-width:760px){.btn-chart-sm{font-size:13.5px}.mini-chart{height:190px}.chart-stock-name{font-size:20px}}

/* FIX14 업데이트 자동반영 */
.update-card .btn-primary.full{
  width:100%;
  margin-top:12px;
  min-height:46px;
  font-weight:900;
}
.update-card .fee-row{ align-items:center; }
#update-status-label{ color:#4b5563; }


/* FIX16: 종목관리 전용 정렬/필터 */
.manage-control-card{background:#fff;border:.5px solid #e5e5e5;border-radius:13px;padding:12px 13px;margin:0 0 12px}
.manage-control-title{font-size:13px;font-weight:1000;color:#5f6b64;margin-bottom:8px;letter-spacing:-.15px}
.manage-control-title.second{margin-top:11px}
.manage-chip-row{display:flex;gap:7px;overflow-x:auto;padding-bottom:2px}
.manage-chip{flex-shrink:0;border:.5px solid #dce4e0;background:#f6f8f7;color:#4b5f55;border-radius:999px;padding:8px 12px;font-size:13.5px;font-weight:900;cursor:pointer;white-space:nowrap}
.manage-chip.active{background:var(--brand);color:#fff;border-color:var(--brand);box-shadow:0 2px 8px var(--brand-shadow-18)}
.manage-chip.sort.active{background:var(--brand-dark);border-color:var(--brand-dark)}
.manage-chip:active{transform:translateY(1px)}
@media (min-width:760px){.manage-control-card{padding:14px 15px}.manage-chip{font-size:14px;padding:8px 13px}.manage-chip-row{flex-wrap:wrap;overflow-x:visible}}


/* FIX17: 관리자 종목관리 사용자 필터/소유자 배지 */
#stock-owner-filter-wrap{margin-bottom:12px;border:.5px solid #e5e8e6;background:#f8faf9;border-radius:13px;padding:12px 13px}
.manage-chip.owner{background:#f7fbff;color:#24527a;border-color:#cfe0ef}
.manage-chip.owner.active{background:#24527a;color:#fff;border-color:#24527a;box-shadow:0 2px 8px rgba(36,82,122,.18)}
.owner-login{display:block;font-size:11px;font-weight:800;opacity:.78;line-height:1.05;margin-top:2px}
.owner-badge-row{display:flex;gap:5px;flex-wrap:wrap;margin-top:6px}
.owner-badge{display:inline-flex;align-items:center;max-width:100%;padding:4px 8px;border-radius:999px;font-size:12px;font-weight:1000;letter-spacing:-.25px;line-height:1.1}
.owner-badge.user{background:#eaf2ff;color:#24527a;border:.5px solid #cfe0ef}
.owner-badge.investor{background:var(--brand-soft);color:var(--brand-dark);border:.5px solid var(--brand-border)}
@media (min-width:760px){.owner-badge{font-size:12.5px;padding:4px 9px}.owner-login{font-size:11.5px}}

/* FIX25: 상황판/종목관리 사용자 선택 통일 */
.owner-filter-card{background:#fff;border:.5px solid #e5e8e6;border-radius:13px;padding:12px 13px;margin:0 0 12px;box-shadow:0 3px 12px rgba(0,0,0,.025)}
.owner-filter-title{font-size:13px;font-weight:1000;color:#5f6b64;margin-bottom:8px;letter-spacing:-.15px}
.owner-filter-row{margin-bottom:0}
.chip.owner-choice{background:#f8faf9;color:#4b5f55;border-color:#dce4e0;min-width:74px;text-align:center}
.chip.owner-choice.active{background:var(--brand);color:#fff;border-color:var(--brand);box-shadow:0 2px 8px var(--brand-shadow-18)}
.chip.owner-choice.active .chip-owner{color:rgba(255,255,255,.82)}
.owner-filter-title-row{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px}
.owner-filter-title-row .owner-filter-title{margin-bottom:0}
.manage-current-owner{align-items:center;max-width:58%;background:var(--brand-soft);border:.5px solid #b8decf;color:var(--brand-dark);border-radius:999px;padding:5px 9px;font-size:12px;font-weight:1000;line-height:1.1;letter-spacing:-.25px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
@media (min-width:760px){.owner-filter-card{padding:14px 15px}.owner-filter-row{flex-wrap:wrap;overflow-x:visible}.manage-current-owner{font-size:12.5px;max-width:68%}}

/* FIX18: 평균가/수량 빠른 수정 */
.quick-edit-guide{
  background:#f1f8f4;
  border:.5px solid #cfe8d8;
  color:#23623e;
  border-radius:12px;
  padding:10px 12px;
  margin-bottom:12px;
  font-size:13.5px;
  font-weight:900;
  line-height:1.45;
  letter-spacing:-.2px;
}
@media (min-width:760px){.quick-edit-guide{font-size:14px}}

/* FIX21: 종목관리 상단 전체 갱신 버튼 */
.btn-refresh-manage{padding:9px 13px;font-size:14.5px;border-radius:8px;white-space:nowrap}

/* FIX22: 상황판 의사결정 패널 */
.decision-card{background:#fff;border:.5px solid #e5e8e6;border-radius:15px;padding:13px;margin:0 0 12px;box-shadow:0 3px 12px rgba(0,0,0,.035)}
.decision-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:10px}
.decision-title{font-size:16px;font-weight:1000;letter-spacing:-.3px;color:#123d2a}
.decision-sub{font-size:12.5px;color:#6b746f;font-weight:700;line-height:1.45;margin-top:2px}
.decision-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.decision-tile{border:.5px solid #e1e8e4;background:#f8faf9;border-radius:13px;padding:10px 9px;text-align:left;cursor:pointer;min-height:74px;display:flex;flex-direction:column;justify-content:center;gap:2px}
.decision-tile.active{background:var(--brand);border-color:var(--brand);color:#fff;box-shadow:0 4px 14px var(--brand-shadow-18)}
.decision-tile:active{transform:translateY(1px)}
.decision-count{font-size:22px;font-weight:1000;letter-spacing:-.4px;line-height:1.05}
.decision-label{font-size:13.5px;font-weight:1000;letter-spacing:-.2px}
.decision-desc{font-size:11.5px;font-weight:800;color:#7a8580;line-height:1.25}
.decision-tile.active .decision-desc{color:rgba(255,255,255,.78)}
.decision-tag-row{display:flex;gap:5px;flex-wrap:wrap;margin-top:7px}
.decision-tag{display:inline-flex;align-items:center;padding:4px 8px;border-radius:999px;font-size:12px;font-weight:1000;line-height:1.1;letter-spacing:-.25px;border:.5px solid transparent}
.decision-tag.hit{background:#ffecef;color:#d53943;border-color:#ffc7cd}
.decision-tag.watch{background:#fff4e1;color:#9a5a08;border-color:#f0d4a1}
.decision-tag.near{background:#fff8dc;color:#8d6a00;border-color:#ead58a}
.decision-tag.up{background:#ffecef;color:#d53943;border-color:#ffc7cd}
.decision-tag.down,.decision-tag.loss{background:#eef4ff;color:#2061b2;border-color:#cbdcff}
@media (min-width:760px){.decision-card{padding:15px}.decision-grid{grid-template-columns:repeat(5,minmax(0,1fr))}.decision-title{font-size:17px}.decision-count{font-size:24px}.decision-label{font-size:14px}.decision-desc{font-size:12px}.decision-tag{font-size:12.5px}}

/* FIX27: 사용자 선택창 단일화 */
.global-owner-filter{margin:0 0 14px}
.global-owner-filter .owner-filter-title{display:flex;align-items:center;gap:6px}

/* =========================================================
   그누보드 모바일 PWA v0.4 - stock_manager.zip 실제 UI 이식용 추가 매핑
   원본 주식매니저 CSS는 위에 그대로 두고, 게시판 앱에 필요한 클래스만 보강합니다.
   ========================================================= */
html{background:#e8e8e8;min-height:100%}
body{-webkit-text-size-adjust:100%}
.hidden{display:none!important}.header-title-wrap{flex:1;min-width:0}.header-title-wrap p{font-size:11.5px;color:rgba(255,255,255,.78);margin-top:2px;font-weight:600}.screen-content{padding-bottom:88px}.bottom-nav{position:fixed;bottom:0;left:50%;transform:translateX(-50%);width:min(430px,100%)}.icon-btn{min-width:34px;height:34px;display:inline-flex;align-items:center;justify-content:center;font-size:22px;line-height:1}.gnb-hero{background:#fff;border:.5px solid #e5e5e5;border-radius:14px;padding:15px;margin-bottom:12px}.gnb-hero-title{font-size:18px;font-weight:1000;letter-spacing:-.6px;color:#111;margin-bottom:4px}.gnb-hero-sub{font-size:12.5px;color:#888;line-height:1.5}.gnb-board-card{background:#fff;border:.5px solid #e5e5e5;border-radius:14px;padding:14px;margin-bottom:10px;overflow:hidden;cursor:pointer}.gnb-board-card:active,.holding-card:active,.photo-card:active{transform:translateY(1px)}.gnb-board-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:10px}.gnb-board-title{font-size:15px;font-weight:900;line-height:1.25;word-break:keep-all}.gnb-board-meta{font-size:12px;color:#888;margin-top:4px;line-height:1.45}.gnb-board-desc{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:10px}.gnb-desc-item{background:#f5f5f5;border-radius:10px;padding:9px}.gnb-desc-label{font-size:11px;color:#888;margin-bottom:3px}.gnb-desc-val{font-size:14px;font-weight:800;color:#111}.gnb-post-row{display:flex;gap:10px;align-items:center;min-width:0}.gnb-post-row>div{min-width:0}.gnb-thumb{width:70px;height:70px;object-fit:cover;border-radius:12px;background:var(--brand-soft);border:.5px solid #dbe8e2;flex:0 0 auto;display:flex;align-items:center;justify-content:center;color:var(--brand-dark);font-size:22px;font-weight:900}.gnb-post-title{font-size:15px;font-weight:900;line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.gnb-post-content{line-height:1.72;word-break:break-word;color:#222;font-size:14.5px}.gnb-post-content img,.gnb-post-images img{max-width:100%;height:auto;border-radius:12px;margin:8px 0;border:.5px solid #e5e5e5;cursor:zoom-in;display:block}.gnb-post-images{display:grid;gap:8px}.gnb-photo-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.photo-card{background:#fff;border:.5px solid #e5e5e5;border-radius:12px;overflow:hidden;cursor:pointer}.photo-card img{width:100%;aspect-ratio:1/1;object-fit:cover;display:block;background:var(--brand-soft)}.photo-card-title{padding:9px 10px;font-size:12px;font-weight:900;color:#555;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.preview-list{display:grid;gap:10px;margin-top:12px}.preview-item{display:flex;gap:10px;background:#fff;border:.5px solid #e5e5e5;border-radius:12px;padding:10px;align-items:center}.preview-item img{width:62px;height:62px;object-fit:cover;border-radius:10px;background:var(--brand-soft)}.preview-item strong{display:block;font-size:13px;color:#111;word-break:break-all}.lightbox{position:fixed;inset:0;z-index:300;background:rgba(0,0,0,.92);display:flex;align-items:center;justify-content:center;padding:18px}.lightbox img{max-width:100%;max-height:90vh;object-fit:contain;border-radius:12px}.lightbox button{position:absolute;top:max(16px, env(safe-area-inset-top));right:16px;width:44px;height:44px;border:none;border-radius:50%;font-size:30px;line-height:1;background:rgba(255,255,255,.18);color:#fff}.full{width:100%}.no-margin{margin:0!important}.upload-drop{background:var(--brand-soft)!important;border-color:var(--brand-border)!important;border-style:dashed!important;color:var(--brand-dark)!important}.link-clean{color:inherit;text-decoration:none}.badge-gallery{background:var(--brand-soft);color:var(--brand-dark)}.badge-board{background:#f1efe8;color:#5f5e5a}.badge-upload{background:#e6f1fb;color:#185fa5}.badge-readonly{background:#fcebeb;color:#a32d2d}.search-wrap .secondary{flex-shrink:0}.toast{max-width:390px}.nav-btn span{line-height:1}@media (max-width:420px){.content{padding:14px;padding-bottom:86px}.gnb-thumb{width:66px;height:66px}.gnb-photo-grid{gap:8px}.header h1{font-size:16px}}

/* v0.5 관리자 게시판 연결 + 앱 로그인 보강 */
.mapp-login-wrap{min-height:calc(100vh - 120px);padding:22px 16px;background:#f0f0f0;justify-content:flex-start}
.login-card{width:100%;background:#fff;border:.5px solid #e5e8e6;border-radius:16px;padding:16px;box-shadow:0 3px 12px rgba(0,0,0,.035)}
.check-row{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:800;color:#555;margin:8px 0 14px;cursor:pointer;user-select:none}
.check-row input{width:18px;height:18px;accent-color:var(--brand)}.login-link-row{display:flex;align-items:center;justify-content:center;gap:10px;margin-top:14px;font-size:13px;font-weight:800;color:#777}.login-link-row a{color:var(--brand);text-decoration:none}.login-link-row span{width:1px;height:12px;background:#ddd}.form-inline{display:flex;gap:8px}.form-inline input{flex:1}.mt6{margin-top:6px}.toggle-grid{display:grid;grid-template-columns:1fr 1fr;gap:4px 10px;margin:4px 0 12px}.setting-board-item{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;border:.5px solid #e5e8e6;background:#f8faf9;border-radius:13px;padding:12px;margin-top:10px}.setting-board-item>div:first-child{min-width:0}.btn-danger{background:#fcebeb;color:#a32d2d;border:.5px solid #f7c1c1;border-radius:9px;padding:12px 14px;font-size:14px;font-weight:900;cursor:pointer;margin-top:12px}.btn-danger.full{width:100%}.empty .btn-green-sm{margin-top:10px}.nav-btn.hidden{display:none!important}
@media (max-width:420px){.toggle-grid{grid-template-columns:1fr}.setting-board-item{flex-direction:column}.setting-board-item .btn-row{width:100%;justify-content:flex-end}}

/* v0.6 church home */
.church-hero-top{background:var(--brand-grad);color:#fff;border-radius:18px;padding:18px;margin-bottom:14px;display:flex;align-items:flex-end;justify-content:space-between;gap:12px;box-shadow:0 10px 22px var(--brand-shadow-18)}
.church-welcome{font-size:12px;font-weight:800;opacity:.82;margin-bottom:5px}.church-title{font-size:22px;font-weight:1000;letter-spacing:-.8px}.church-sub{font-size:12.5px;line-height:1.45;opacity:.88;margin-top:5px}.home-section{margin-bottom:14px}.sermon-card{background:#fff;border:.5px solid #e5e5e5;border-radius:16px;overflow:hidden;cursor:pointer;box-shadow:0 6px 16px rgba(0,0,0,.04)}.sermon-thumb{position:relative;background:#111;aspect-ratio:16/9;overflow:hidden}.sermon-thumb img{width:100%;height:100%;object-fit:cover;display:block}.video-play-badge{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:54px;height:54px;border-radius:50%;background:rgba(var(--brand-rgb),.92);color:#fff;display:flex;align-items:center;justify-content:center;font-size:23px;padding-left:3px;box-shadow:0 8px 22px rgba(0,0,0,.25)}.sermon-body{padding:14px}.sermon-title{font-size:17px;font-weight:1000;letter-spacing:-.55px;line-height:1.3;color:#111}.sermon-meta{font-size:12px;color:#888;margin-top:5px}.latest-list{background:#fff;border:.5px solid #e5e5e5;border-radius:14px;overflow:hidden}.latest-row{display:flex;gap:10px;align-items:center;padding:12px 13px;border-bottom:.5px solid #eeeeee;cursor:pointer}.latest-row:last-child{border-bottom:none}.latest-dot{width:7px;height:7px;border-radius:50%;background:var(--brand);flex:0 0 auto}.latest-main{min-width:0;flex:1}.latest-title{font-size:14px;font-weight:900;color:#111;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.home-photo-grid{display:grid;gap:7px}.home-photo{position:relative;aspect-ratio:1/1;border-radius:12px;overflow:hidden;background:var(--brand-soft);cursor:pointer}.home-photo img{width:100%;height:100%;object-fit:cover;display:block}.home-photo span{position:absolute;left:0;right:0;bottom:0;padding:18px 6px 6px;background:linear-gradient(transparent,rgba(0,0,0,.68));color:#fff;font-size:10.5px;font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.home-shortcut-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:14px 0}.home-shortcut{border:none;border-radius:14px;background:#fff;border:.5px solid #e5e5e5;padding:12px 8px;font-weight:900;color:#333;display:flex;flex-direction:column;align-items:center;gap:6px}.home-shortcut span:first-child{font-size:22px}.btn-text-sm{border:none;background:transparent;color:var(--brand);font-weight:900;font-size:12px;padding:4px 2px}.youtube-box{position:relative;width:100%;aspect-ratio:16/9;background:#000;border-radius:14px;overflow:hidden;margin-bottom:14px}.youtube-box iframe{position:absolute;inset:0;width:100%;height:100%;border:0}.comment-list{display:grid;gap:9px;margin-bottom:12px}.comment-item{background:#f7f8f7;border:.5px solid #e7e7e7;border-radius:12px;padding:10px}.comment-meta{font-size:11.5px;color:#777;font-weight:800;margin-bottom:5px}.comment-content{font-size:13.5px;color:#222;line-height:1.55}.comment-form{display:grid;gap:8px}.comment-form textarea{min-height:78px}.home-setting-row{border:.5px solid #e5e5e5;border-radius:14px;background:#fafafa;padding:12px;margin-bottom:10px}.home-setting-row strong{font-size:13.5px}.nav.bottom-nav .nav-btn{font-size:10.5px}.nav.bottom-nav .nav-btn span{font-size:17px}@media(max-width:420px){.church-title{font-size:20px}.church-hero-top{border-radius:16px;padding:16px}.home-photo-grid{gap:6px}.latest-row{padding:11px 12px}.nav.bottom-nav .nav-btn{font-size:10px}}

/* v0.8 앱 아이콘/앱명 설정 */
.app-setting-card .app-icon-preview{width:64px;height:64px;border-radius:18px;background:var(--brand-soft);overflow:hidden;box-shadow:0 4px 14px rgba(0,0,0,.08);flex:0 0 auto}
.app-setting-card .app-icon-preview img{width:100%;height:100%;object-fit:cover;display:block}
.app-setting-card input[type="file"]{padding:10px;background:#f8faf9;border:.5px solid #e5e8e6;border-radius:10px;width:100%;box-sizing:border-box}


.sermon-video{position:relative;width:100%;aspect-ratio:16/9;background:#000;overflow:hidden}
.sermon-video iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.sermon-card-video{cursor:default}.sermon-card-video .sermon-body{cursor:default}.mt10{margin-top:10px!important}

/* v0.8.6 게시글 목록 보강 */
.search-card{display:flex;gap:8px;background:#fff;border-radius:18px;padding:10px;box-shadow:0 8px 22px rgba(0,0,0,.06);margin-bottom:12px}
.search-card input{flex:1;border:1px solid #e3e8e4;border-radius:12px;padding:10px 12px;font-size:14px;outline:none;background:#fafafa}
.post-list-box{display:flex;flex-direction:column;gap:10px}
.post-row-card{display:flex;gap:12px;align-items:center;background:#fff;border-radius:18px;padding:12px;box-shadow:0 8px 22px rgba(0,0,0,.06);cursor:pointer}
.post-thumb{width:72px;height:58px;border-radius:14px;overflow:hidden;background:#eef4ef;flex:0 0 auto;display:flex;align-items:center;justify-content:center;color:var(--brand);font-size:12px;font-weight:800}
.post-thumb img{width:100%;height:100%;object-fit:cover;display:block}
.post-thumb-empty{border:1px solid #dfe8e2}
.post-row-main{min-width:0;flex:1}
.post-row-title{font-weight:800;color:#17251b;font-size:15px;line-height:1.35;margin-bottom:5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.compact-hero{margin-bottom:12px}

/* v0.9.1 home update alert + install/version info */
.home-hero-icon{width:58px;height:58px;border-radius:18px;background:rgba(255,255,255,.18);display:flex;align-items:center;justify-content:center;flex:0 0 auto;overflow:hidden;border:1px solid rgba(255,255,255,.26)}
.home-hero-icon img{width:100%;height:100%;object-fit:cover;display:block}
.home-shortcut-grid.home-shortcut-grid-2{grid-template-columns:repeat(2,1fr)}
.app-info-card{background:#fff;border:.5px solid #e5e5e5;border-radius:16px;padding:14px;box-shadow:0 6px 16px rgba(0,0,0,.04)}
.app-info-card.compact{padding:12px 14px}.app-info-logo{width:44px;height:44px;border-radius:14px;overflow:hidden;background:#f5f7f6;border:.5px solid #e5e5e5;flex:0 0 auto}.app-info-logo img{width:100%;height:100%;object-fit:cover;display:block}.install-copy{font-size:12.5px;color:#666;line-height:1.55;margin:0 0 10px}.home-ios-hint{margin-top:8px}

.home-update-alert{margin-top:10px;border:1px solid rgba(255,255,255,.55);background:rgba(255,255,255,.16);color:#fff;border-radius:999px;padding:8px 10px;display:inline-flex;align-items:center;gap:8px;font-size:12px;font-weight:900;box-shadow:0 6px 14px rgba(0,0,0,.08);cursor:pointer}.home-update-alert span{display:inline-flex;align-items:center;gap:4px}.home-update-alert span::before{content:"●";font-size:8px;color:#ffdd57}.home-update-alert strong{font-size:11px;opacity:.92;font-weight:800}.home-update-alert:active{transform:translateY(1px);background:rgba(255,255,255,.22)}

/* v0.9.3 iPhone 설치 안내 + 홈 QR */
.home-hero-qr{width:58px;height:58px;border-radius:18px;background:#fff;border:1px solid rgba(255,255,255,.75);box-shadow:0 8px 18px rgba(0,0,0,.10);display:flex;align-items:center;justify-content:center;flex-direction:column;gap:1px;overflow:hidden;flex:0 0 auto;padding:5px;cursor:pointer;color:var(--brand);font-size:9px;font-weight:900;line-height:1}
.home-hero-qr img{width:42px;height:42px;object-fit:contain;display:block;image-rendering:auto}
.home-hero-qr:active{transform:translateY(1px)}
.qr-mini{padding:4px;background:#fff;cursor:pointer}
.qr-mini img{object-fit:contain!important}
.ios-install-steps{display:grid;grid-template-columns:1fr;gap:6px;margin-top:10px}
.ios-install-steps div{display:flex;align-items:center;gap:7px;background:#f6faf7;border:1px solid #e3eee7;border-radius:12px;padding:8px 10px;font-size:12.5px;color:#2c3a31;font-weight:700}
.ios-install-steps b{width:20px;height:20px;border-radius:50%;background:var(--brand);color:#fff;display:inline-flex;align-items:center;justify-content:center;font-size:11px;flex:0 0 auto}
.install-url-text{margin-top:10px;font-size:11px;color:#6d756f;background:#f7f8f7;border-radius:10px;padding:7px 9px;word-break:break-all}
.lightbox img[alt="앱 설치 QR코드"]{background:#fff;padding:18px;box-sizing:border-box;max-width:min(82vw,360px);max-height:min(82vw,360px);object-fit:contain;border-radius:18px}

/* v0.9.3 로그인 전 앱 설치 안내 */
.login-install-block{width:100%;max-width:390px;margin:14px auto 0;}
.login-install-card{margin:0;text-align:left;}
.login-install-card .ios-install-steps{margin-top:8px;}


.upload-action-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:8px}.upload-action-btn{border:none;border-radius:13px;padding:14px 10px;font-weight:900;font-size:14px;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:7px;min-height:52px}.upload-action-btn.album{background:#e6f1fb;color:#185fa5;border:.5px solid #b5d4f4}.upload-action-btn.camera{background:var(--brand-soft);color:var(--brand-dark);border:.5px solid var(--brand-border)}.upload-action-btn:active{transform:translateY(1px)}.hidden-file-input{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}.upload-help{font-size:12px;color:#777;line-height:1.45;margin-top:8px;background:#f7faf8;border:.5px solid #e3ede7;border-radius:10px;padding:9px}.upload-count{font-size:12px;font-weight:900;color:var(--brand-dark);background:var(--brand-soft);border-radius:999px;padding:7px 10px;display:inline-flex;width:max-content}.preview-item{position:relative;padding-right:42px}.preview-remove{position:absolute;right:10px;top:50%;transform:translateY(-50%);width:28px;height:28px;border:none;border-radius:50%;background:#fcebeb;color:#a32d2d;font-size:20px;line-height:1;cursor:pointer;font-weight:900}


.optional-label{display:inline-flex;align-items:center;margin-left:4px;padding:2px 7px;border-radius:999px;background:#eef7f1;color:var(--brand);font-size:11px;font-weight:800;vertical-align:middle}


.login-divider{display:flex;align-items:center;gap:10px;margin:14px 0 12px;color:#aaa;font-size:12px;font-weight:800}.login-divider::before,.login-divider::after{content:"";height:1px;background:#e5e5e5;flex:1}.btn-kakao{width:100%;border:none;border-radius:9px;background:#FEE500;color:#191919;padding:13px;font-size:15px;font-weight:900;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:8px}.btn-kakao:active{filter:brightness(.96)}.kakao-mark{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:50%;background:#191919;color:#FEE500;font-size:12px;font-weight:900;line-height:1}

/* v0.9.9 multi-board latest section */
.latest-board-badge{
  display:inline-flex;
  align-items:center;
  margin-right:6px;
  padding:2px 6px;
  border-radius:999px;
  background:rgba(var(--brand-rgb),.10);
  color:var(--brand);
  font-size:11px;
  font-weight:700;
  vertical-align:middle;
}

/* v1.0.0 latest section column support */
.latest-list.latest-grid{
  display:grid;
  gap:8px;
  background:transparent;
  border:0;
  border-radius:0;
  overflow:visible;
}
.latest-list.latest-grid .latest-row{
  min-width:0;
  align-items:flex-start;
  background:#fff;
  border:.5px solid #e5e5e5;
  border-radius:13px;
  padding:12px;
  min-height:76px;
  box-shadow:0 4px 12px rgba(0,0,0,.035);
}
.latest-list.latest-grid .latest-row:last-child{border-bottom:.5px solid #e5e5e5}
.latest-list.latest-grid .latest-title{
  white-space:normal;
  display:-webkit-box;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
  min-height:36px;
}
.latest-list.latest-grid .gnb-board-meta{
  margin-top:5px;
  line-height:1.35;
}
.latest-list.latest-grid .latest-dot{margin-top:6px}

/* v1.0.1 홈 상단 새글 제목 */
.home-header-latest-wrap {
  display: flex;
  flex-direction: column;
  gap: 6px;
  margin-top: 6px;
}
.home-header-latest {
  display: flex;
  align-items: center;
  gap: 7px;
  width: 100%;
  border: 0;
  border-radius: 999px;
  background: rgba(255,255,255,.18);
  color: #fff;
  padding: 7px 10px;
  text-align: left;
  font: inherit;
  cursor: pointer;
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.18);
}
.home-header-latest-label {
  flex: 0 0 auto;
  font-size: 11px;
  font-weight: 800;
  background: rgba(255,255,255,.9);
  color: var(--brand, var(--brand));
  border-radius: 999px;
  padding: 2px 6px;
}
.home-header-latest-title {
  min-width: 0;
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
  font-size: 13px;
  font-weight: 700;
}
.setting-subbox {
  margin: 12px 0;
  padding: 12px;
  border-radius: 14px;
  background: #f5f8f6;
  border: 1px solid #e3ede6;
}
.card-title.mini {
  font-size: 14px;
  margin-bottom: 4px;
}


.lightbox{touch-action:none;overflow:hidden}.lightbox img{touch-action:none;user-select:none;-webkit-user-select:none;-webkit-user-drag:none;transform-origin:center center;transition:transform .05s linear;will-change:transform;cursor:zoom-in}.lightbox:not(.hidden) img{overscroll-behavior:contain}.lightbox-zoom-guide{position:absolute;left:50%;bottom:calc(22px + env(safe-area-inset-bottom));transform:translateX(-50%);font-size:12px;color:#fff;background:rgba(0,0,0,.38);border:1px solid rgba(255,255,255,.18);border-radius:999px;padding:7px 12px;pointer-events:none}

/* v1.0.5 - 핀치 줌 확대창 닫기 버튼 중앙/대형화 */
.lightbox button#lightboxClose{
  position:absolute;
  top:max(18px, env(safe-area-inset-top));
  left:50%;
  right:auto;
  transform:translateX(-50%);
  width:58px;
  height:58px;
  min-width:58px;
  min-height:58px;
  border:none;
  border-radius:999px;
  font-size:42px;
  font-weight:300;
  line-height:52px;
  text-align:center;
  z-index:320;
  background:rgba(255,255,255,.26);
  color:#fff;
  box-shadow:0 8px 24px rgba(0,0,0,.28);
  backdrop-filter:blur(6px);
  -webkit-backdrop-filter:blur(6px);
  touch-action:manipulation;
}
.lightbox button#lightboxClose:active{
  transform:translateX(-50%) scale(.96);
  background:rgba(255,255,255,.36);
}
.lightbox img{
  max-height:calc(100vh - 120px);
}
@media (max-width:420px){
  .lightbox button#lightboxClose{
    width:62px;
    height:62px;
    min-width:62px;
    min-height:62px;
    font-size:44px;
    line-height:55px;
  }
}


/* v1.0.6 - 확대창 X 버튼 하단 중앙 배치 + 게시판 이미지 확대 안내 */
.lightbox{
  padding:18px 18px calc(96px + env(safe-area-inset-bottom));
}
.lightbox button#lightboxClose{
  top:auto !important;
  bottom:calc(22px + env(safe-area-inset-bottom));
  left:50% !important;
  right:auto !important;
  transform:translateX(-50%) !important;
  width:64px;
  height:64px;
  min-width:64px;
  min-height:64px;
  font-size:44px;
  line-height:58px;
}
.lightbox button#lightboxClose:active{
  transform:translateX(-50%) scale(.96) !important;
}
.lightbox-zoom-guide{
  top:calc(18px + env(safe-area-inset-top));
  bottom:auto;
  max-width:calc(100% - 40px);
  white-space:nowrap;
}
.lightbox img{
  max-height:calc(100vh - 150px);
}
.zoomable-wrap{
  position:relative;
  display:block;
  max-width:100%;
  margin:8px 0;
  line-height:0;
}
.zoomable-wrap > img{
  margin:0 !important;
}
.zoomable-hint{
  position:absolute;
  right:10px;
  bottom:10px;
  z-index:2;
  pointer-events:none;
  display:inline-flex;
  align-items:center;
  gap:4px;
  padding:6px 9px;
  border-radius:999px;
  background:rgba(0,0,0,.54);
  color:#fff;
  font-size:11.5px;
  font-weight:800;
  line-height:1;
  box-shadow:0 4px 14px rgba(0,0,0,.2);
}
.zoomable-hint::before{
  content:'🔍';
  font-size:12px;
}
.gnb-post-content .zoomable-wrap:first-of-type::after,
.gnb-post-images .zoomable-wrap:first-of-type::after{
  content:'사진을 터치하면 크게 보고, 두 손가락으로 확대할 수 있습니다';
  display:block;
  line-height:1.45;
  font-size:12px;
  color:#777;
  background:#f5f7f6;
  border:1px solid #e5e5e5;
  border-radius:10px;
  padding:8px 10px;
  margin-top:7px;
}
@media (max-width:420px){
  .lightbox button#lightboxClose{
    width:68px;
    height:68px;
    min-width:68px;
    min-height:68px;
    font-size:46px;
    line-height:61px;
  }
}

/* v1.0.7 사진보기 최근순/카테고리/페이지 */
.photo-category-row{
  display:flex;
  gap:8px;
  overflow-x:auto;
  padding:2px 2px 10px;
  margin-bottom:8px;
}
.photo-category-chip{
  flex:0 0 auto;
  border:.5px solid #dfe8e2;
  background:#fff;
  color:#54635b;
  border-radius:999px;
  padding:8px 13px;
  font-size:13px;
  font-weight:900;
  cursor:pointer;
  white-space:nowrap;
}
.photo-category-chip.active{
  background:var(--brand);
  border-color:var(--brand);
  color:#fff;
  box-shadow:0 3px 10px var(--brand-shadow-18);
}
.photo-card-category{
  display:inline-flex;
  align-items:center;
  margin-right:5px;
  padding:1px 5px;
  border-radius:999px;
  background:var(--brand-soft);
  color:var(--brand);
  font-size:10px;
  font-weight:900;
  vertical-align:middle;
}
.photo-pagination{
  display:flex;
  justify-content:center;
  gap:6px;
  margin:14px 0 4px;
  flex-wrap:wrap;
}
.photo-pagination button{
  min-width:34px;
  height:34px;
  border:.5px solid #dfe8e2;
  background:#fff;
  color:#405047;
  border-radius:10px;
  font-size:13px;
  font-weight:1000;
  cursor:pointer;
}
.photo-pagination button.active{
  background:var(--brand);
  border-color:var(--brand);
  color:#fff;
  box-shadow:0 4px 12px rgba(var(--brand-rgb),.20);
}

/* v1.0.8 그누보드 카테고리 연동 보강 */
.photo-category-chip em{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:18px;
  height:18px;
  margin-left:5px;
  padding:0 5px;
  border-radius:999px;
  background:#eef4f0;
  color:#66736a;
  font-size:11px;
  font-style:normal;
  font-weight:900;
}
.photo-category-chip.active em{
  background:rgba(255,255,255,.22);
  color:#fff;
}

/* v1.1.3 - 사진 확대 뷰어 이전/다음 이동 */
.lightbox .lightbox-nav{
  position:absolute;
  top:50%;
  transform:translateY(-50%);
  z-index:322;
  width:54px;
  height:76px;
  min-width:54px;
  min-height:76px;
  border:none;
  border-radius:20px;
  font-size:54px;
  font-weight:200;
  line-height:66px;
  background:rgba(255,255,255,.18);
  color:#fff;
  box-shadow:0 8px 24px rgba(0,0,0,.22);
  backdrop-filter:blur(6px);
  -webkit-backdrop-filter:blur(6px);
  touch-action:manipulation;
}
.lightbox .lightbox-prev{left:10px;right:auto;}
.lightbox .lightbox-next{right:10px;left:auto;}
.lightbox .lightbox-nav:active{background:rgba(255,255,255,.32);}
.lightbox-counter{
  position:absolute;
  left:50%;
  top:calc(52px + env(safe-area-inset-top));
  transform:translateX(-50%);
  z-index:323;
  color:#fff;
  background:rgba(0,0,0,.42);
  border:1px solid rgba(255,255,255,.16);
  border-radius:999px;
  padding:6px 12px;
  font-size:12px;
  font-weight:800;
  pointer-events:none;
}
@media (max-width:420px){
  .lightbox .lightbox-nav{
    width:46px;
    height:66px;
    min-width:46px;
    min-height:66px;
    font-size:46px;
    line-height:58px;
    border-radius:16px;
  }
  .lightbox .lightbox-prev{left:6px;}
  .lightbox .lightbox-next{right:6px;}
  .lightbox-counter{top:calc(50px + env(safe-area-inset-top));}
}

/* v1.1.5 section title/content character options */
.latest-excerpt{
  margin-top:5px;
  font-size:12.5px;
  line-height:1.45;
  color:#666;
  display:-webkit-box;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
  overflow:hidden;
}
.latest-list.latest-grid .latest-excerpt{
  margin-top:6px;
  -webkit-line-clamp:3;
}

/* v1.1.7 Bible/Hymn reader */
.reader-hero{background:var(--brand-grad);color:#fff;border-radius:18px;padding:17px 16px;margin-bottom:12px;display:flex;align-items:flex-start;justify-content:space-between;gap:12px;box-shadow:0 8px 20px var(--brand-shadow-18)}
.reader-kicker{font-size:12px;font-weight:900;opacity:.82;margin-bottom:5px}.reader-title{font-size:21px;font-weight:1000;letter-spacing:-.7px;line-height:1.25}.reader-font-tools{display:flex;gap:6px;flex-shrink:0}.reader-font-tools button{border:none;border-radius:999px;background:rgba(255,255,255,.18);color:#fff;font-weight:1000;padding:8px 10px;font-size:12px}.reader-controls{margin-bottom:12px}.reader-nav-row{display:grid;grid-template-columns:1fr 1fr;gap:8px}.reader-nav-row button:nth-child(2):not(:last-child){grid-column:auto}.reader-body{background:#fff;border:.5px solid #e5e5e5;border-radius:16px;padding:16px;margin-bottom:14px;color:#111;line-height:1.8;word-break:keep-all}.bible-body p{margin:0 0 9px}.verse-no{display:inline-flex;align-items:center;justify-content:center;min-width:24px;height:24px;border-radius:999px;background:var(--brand-soft);color:var(--brand-dark);font-size:.72em;font-weight:1000;margin-right:7px;vertical-align:1px}.hymn-body{text-align:center;line-height:1.95}.hymn-body p{margin:0 0 8px}.hymn-title-line{font-weight:1000;font-size:1.08em;color:var(--brand-dark);margin-bottom:14px!important}.hymn-list-card{margin-bottom:14px}.hymn-list{display:grid;grid-template-columns:1fr;gap:6px;max-height:430px;overflow:auto;padding-right:2px}.hymn-list-item{display:flex;align-items:center;gap:9px;text-align:left;border:.5px solid #e6ebe8;background:#fff;border-radius:10px;padding:9px 10px;color:#333}.hymn-list-item strong{font-size:12px;color:var(--brand-dark);min-width:34px}.hymn-list-item span{font-size:13px;font-weight:800;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.hymn-list-item.active{border-color:var(--brand);background:var(--brand-soft)}.home-shortcut-scripture{background:linear-gradient(180deg,#fff,#f4fbf7)!important;border-color:#cde9dc!important;color:var(--brand-dark)!important}@media(max-width:420px){.reader-title{font-size:19px}.reader-body{padding:14px;line-height:1.75}.reader-nav-row{gap:6px}.hymn-list{max-height:360px}}


/* v1.1.8 Hymn input readability */
.reader-controls .form-label{font-size:14px;font-weight:1000;color:#0f3f31}
.reader-controls input,.reader-controls select{font-size:18px!important;font-weight:900;min-height:48px;border-radius:14px;padding:11px 13px}
#hymnNoInput{font-size:22px!important;text-align:center;font-weight:1000;letter-spacing:.4px}
#hymnSearch{font-size:17px!important}
.hymn-body{font-size:1.08em;line-height:2.05}
.hymn-body p{margin-bottom:10px}.hymn-list-item{padding:12px 12px}.hymn-list-item strong{font-size:14px}.hymn-list-item span{font-size:15px}
.reader-nav-row button{font-size:15px;font-weight:1000;min-height:44px}
@media(max-width:420px){.reader-controls input,.reader-controls select{font-size:17px!important;min-height:46px}#hymnNoInput{font-size:21px!important}.hymn-body{font-size:1.05em}}


/* v1.1.9 Hymn swipe navigation */
.hymn-swipe-wrap{position:relative;margin-bottom:14px;touch-action:pan-y}
.hymn-swipe-wrap .reader-body{margin-bottom:8px;padding-left:42px;padding-right:42px;min-height:220px}
.hymn-side-nav{position:absolute;top:50%;transform:translateY(-50%);z-index:5;width:42px;height:64px;border:none;border-radius:999px;background:rgba(var(--brand-rgb),.88);color:#fff;font-size:34px;font-weight:1000;line-height:1;display:flex;align-items:center;justify-content:center;box-shadow:0 8px 18px var(--brand-shadow-18)}
.hymn-side-prev{left:8px}.hymn-side-next{right:8px}
.hymn-side-nav:disabled{opacity:.25;background:#89938f;box-shadow:none}
.hymn-swipe-hint{text-align:center;font-size:12px;font-weight:800;color:#6f7773;margin:4px 0 12px}
@media(max-width:420px){.hymn-swipe-wrap .reader-body{padding-left:38px;padding-right:38px}.hymn-side-nav{width:38px;height:58px;font-size:31px}.hymn-side-prev{left:5px}.hymn-side-next{right:5px}}

/* v1.2.0 hymn fixed navigation */
.hymn-swipe-wrap{padding-bottom:72px}
.hymn-swipe-wrap .reader-body{padding-left:16px!important;padding-right:16px!important}
.hymn-fixed-nav{position:fixed;left:50%;bottom:calc(74px + env(safe-area-inset-bottom));transform:translateX(-50%);z-index:180;width:min(390px,calc(100vw - 36px));display:flex;align-items:center;justify-content:space-between;pointer-events:none}
.hymn-fixed-nav .hymn-side-nav{position:static!important;transform:none!important;pointer-events:auto;width:54px;height:54px;border-radius:50%;font-size:34px;background:rgba(var(--brand-rgb),.92);box-shadow:0 10px 24px var(--brand-shadow-22)}
.hymn-fixed-nav .hymn-side-nav:active{transform:scale(.96)!important}
.hymn-fixed-nav .hymn-side-nav:disabled{opacity:.28;background:#89938f;box-shadow:none}
.hymn-list-card{display:none!important}
@media(max-width:420px){.hymn-fixed-nav{bottom:calc(70px + env(safe-area-inset-bottom));width:calc(100vw - 28px)}.hymn-fixed-nav .hymn-side-nav{width:50px;height:50px;font-size:32px}.hymn-swipe-wrap{padding-bottom:64px}}

/* v1.2.1 hymn readable colored controls */
.hymn-hero{position:relative;justify-content:center;text-align:center;padding:18px 16px 20px}
.hymn-hero-center{width:100%;padding:0 58px}
.hymn-current-no{font-size:42px;font-weight:1000;line-height:1;letter-spacing:-1.4px;color:#fff;text-shadow:0 2px 10px rgba(0,0,0,.16);margin:2px 0 7px}
.hymn-current-title{font-size:22px!important;font-weight:1000;line-height:1.22;color:#fff}
.hymn-font-tools{position:absolute;right:12px;top:12px;flex-direction:column;gap:7px}
.hymn-font-tools button{background:rgba(255,255,255,.96)!important;color:var(--brand-dark)!important;border:1px solid rgba(255,255,255,.7)!important;box-shadow:0 5px 14px rgba(0,0,0,.13);font-size:13px!important;padding:7px 10px!important}
.hymn-controls{border:1px solid #cfe9dd;background:linear-gradient(180deg,#ffffff,#f5fbf8);box-shadow:0 8px 20px rgba(15,110,86,.08)}
.hymn-controls .form-label{font-size:13px;color:var(--brand-dark);font-weight:1000}
.hymn-controls input{border:1.5px solid #cfe9dd!important;background:#fff!important;color:#10251f!important;font-weight:900;box-shadow:inset 0 1px 0 rgba(0,0,0,.02)}
.hymn-controls input:focus{outline:none;border-color:var(--brand)!important;box-shadow:0 0 0 3px var(--brand-shadow-14)}
.hymn-nav-stack{display:grid;grid-template-columns:1fr;gap:9px;margin-top:10px}
.hymn-prev-next-row{display:grid;grid-template-columns:1fr 1fr;gap:9px}
.hymn-action-btn{border:none;border-radius:14px;min-height:48px;padding:12px 14px;font-size:17px;font-weight:1000;letter-spacing:-.3px;color:#fff;box-shadow:0 8px 18px rgba(0,0,0,.13)}
.hymn-go-btn{background:linear-gradient(180deg,var(--brand),var(--brand-dark));font-size:19px;min-height:52px}
.hymn-prev-btn{background:linear-gradient(180deg,#607d8b,#455a64)}
.hymn-next-btn{background:linear-gradient(180deg,var(--brand),var(--brand-dark))}
.hymn-action-btn:disabled{background:#b9c2be!important;color:#eef3f1!important;box-shadow:none;opacity:.68}
.hymn-action-btn:active{transform:translateY(1px) scale(.99)}
.hymn-body{font-size:1.14em;line-height:2.12}.hymn-body p{margin-bottom:11px}
@media(max-width:420px){.hymn-hero{padding:16px 12px 18px}.hymn-hero-center{padding:0 50px}.hymn-current-no{font-size:38px}.hymn-current-title{font-size:20px!important}.hymn-action-btn{min-height:46px;font-size:16px}.hymn-go-btn{font-size:18px;min-height:50px}}


/* v1.2.4 scripture shortcut placement + larger hymn readability */
.scripture-shortcut-after-section{margin:12px 0 16px}
.hymn-current-no{font-size:46px}
.hymn-current-title{font-size:24px!important}
#hymnNoInput{font-size:24px!important;min-height:52px}
#hymnSearch{font-size:18px!important;min-height:52px}
.hymn-body{font-size:1.2em;line-height:2.22}
.hymn-body p{margin-bottom:13px}
.hymn-title-line{font-size:1.12em}
@media(max-width:420px){.hymn-current-no{font-size:42px}.hymn-current-title{font-size:22px!important}.hymn-body{font-size:1.16em;line-height:2.16}#hymnNoInput{font-size:23px!important}}

/* v1.2.5 bible fixed swipe navigation */
.bible-swipe-wrap{position:relative;margin-bottom:14px;padding-bottom:72px;touch-action:pan-y}
.bible-swipe-wrap .reader-body{margin-bottom:8px;min-height:260px}
.bible-swipe-hint{text-align:center;font-size:12px;font-weight:800;color:#6f7773;margin:4px 0 12px}
.bible-fixed-nav{position:fixed;left:50%;bottom:calc(74px + env(safe-area-inset-bottom));transform:translateX(-50%);z-index:180;width:min(390px,calc(100vw - 36px));display:flex;align-items:center;justify-content:space-between;pointer-events:none}
.bible-fixed-nav .bible-side-nav{pointer-events:auto;width:54px;height:54px;border:none;border-radius:50%;background:rgba(var(--brand-rgb),.92);color:#fff;font-size:34px;font-weight:1000;line-height:1;display:flex;align-items:center;justify-content:center;box-shadow:0 10px 24px var(--brand-shadow-22)}
.bible-fixed-nav .bible-side-nav:active{transform:scale(.96)}
.bible-fixed-nav .bible-side-nav:disabled{opacity:.28;background:#89938f;box-shadow:none}
@media(max-width:420px){.bible-fixed-nav{bottom:calc(70px + env(safe-area-inset-bottom));width:calc(100vw - 28px)}.bible-fixed-nav .bible-side-nav{width:50px;height:50px;font-size:32px}.bible-swipe-wrap{padding-bottom:64px}}

/* v1.2.7 home scripture icons + upload readability */
.scripture-shortcut-after-section .home-shortcut{
  min-height:92px;
  padding:18px 12px 15px;
  font-size:40px;
  border-radius:20px;
  box-shadow:0 8px 20px rgba(15,110,86,.08);
}
.scripture-shortcut-after-section .home-shortcut span{
  display:block;
  margin-top:8px;
  font-size:18px;
  font-weight:1000;
  letter-spacing:-.4px;
}
.upload-page .upload-hero{
  padding:22px 18px;
  border-radius:20px;
}
.upload-page .gnb-hero-title{
  font-size:24px;
  font-weight:1000;
}
.upload-page .gnb-hero-sub{
  font-size:15px;
  line-height:1.55;
  font-weight:800;
}
.upload-form-card{
  border:1px solid #cfe9dd;
  background:linear-gradient(180deg,#ffffff,#f7fcf9);
  box-shadow:0 10px 24px rgba(15,110,86,.08);
  padding:16px;
}
.upload-step-title{
  display:flex;
  align-items:center;
  gap:9px;
  margin:14px 0 10px;
  color:var(--brand-dark);
}
.upload-step-title:first-child{margin-top:0}
.upload-step-title span{
  width:28px;
  height:28px;
  border-radius:999px;
  background:var(--brand);
  color:#fff;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  font-size:15px;
  font-weight:1000;
  box-shadow:0 4px 10px rgba(var(--brand-rgb),.20);
}
.upload-step-title strong{
  font-size:17px;
  font-weight:1000;
  letter-spacing:-.4px;
}
.upload-page .form-label{
  font-size:15px;
  font-weight:1000;
  color:#10251f;
  margin-bottom:7px;
}
.upload-page select,
.upload-page input,
.upload-page textarea{
  font-size:17px!important;
  min-height:52px;
  border:1.5px solid #cfe9dd!important;
  border-radius:14px!important;
  background:#fff!important;
  color:#10251f!important;
  font-weight:800;
}
.upload-page textarea{
  min-height:104px;
  line-height:1.55;
  padding:13px 14px;
}
.upload-page select:focus,
.upload-page input:focus,
.upload-page textarea:focus{
  outline:none;
  border-color:var(--brand)!important;
  box-shadow:0 0 0 3px var(--brand-shadow-14);
}
.upload-page .optional-label{
  font-size:12px;
  padding:3px 7px;
  border-radius:999px;
  background:#eef8f3;
  color:var(--brand-dark);
  font-weight:1000;
}
.upload-photo-box{
  background:#f4fbf7;
  border:1px dashed #b8dfcd;
  border-radius:16px;
  padding:12px;
}
.upload-page .upload-action-grid{
  gap:11px;
}
.upload-page .upload-action-btn{
  min-height:76px;
  border-radius:17px;
  flex-direction:column;
  gap:6px;
  font-size:17px;
  letter-spacing:-.3px;
  box-shadow:0 8px 18px rgba(0,0,0,.08);
}
.upload-action-icon{
  font-size:30px;
  line-height:1;
}
.upload-page .upload-help{
  font-size:14px;
  line-height:1.55;
  border-radius:13px;
  padding:11px 12px;
  color:#53625b;
}
.upload-help-strong{
  background:#fff8e7!important;
  border-color:#f1dca5!important;
  color:#6c5520!important;
  font-weight:900;
}
.upload-preview-list{
  margin-top:14px;
}
.upload-preview-list .empty{
  font-size:15px;
  font-weight:900;
  padding:18px 12px;
  border-radius:14px;
  background:#f8faf9;
}
.upload-count{
  font-size:15px!important;
  padding:9px 13px!important;
}
.preview-item{
  border:1px solid #e2eee8;
  border-radius:15px;
  padding:10px 48px 10px 10px!important;
  background:#fff;
  margin-top:9px;
}
.preview-item img{
  width:74px!important;
  height:74px!important;
  border-radius:12px!important;
}
.preview-item strong{
  font-size:15px!important;
  line-height:1.35;
}
.preview-item .gnb-board-meta{
  font-size:13px!important;
  margin-top:5px;
}
.preview-remove{
  width:34px!important;
  height:34px!important;
  font-size:24px!important;
  right:9px!important;
}
.upload-clear-btn,
.upload-submit-btn{
  min-height:54px;
  border-radius:16px;
  font-size:18px;
  font-weight:1000;
}
.upload-submit-btn{
  box-shadow:0 10px 22px var(--brand-shadow-18);
}
@media(max-width:420px){
  .scripture-shortcut-after-section .home-shortcut{min-height:86px;font-size:36px;padding:16px 10px 14px}
  .scripture-shortcut-after-section .home-shortcut span{font-size:17px}
  .upload-page .gnb-hero-title{font-size:22px}
  .upload-form-card{padding:14px}
  .upload-page select,.upload-page input,.upload-page textarea{font-size:16px!important;min-height:50px}
  .upload-page .upload-action-btn{min-height:72px;font-size:16px}
  .upload-action-icon{font-size:28px}
}

/* v1.2.8 board dashboard split */
.board-dashboard-tabs{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:0 0 12px}
.board-dashboard-tabs button{border:1px solid #dce8e2;background:#fff;color:#37604f;border-radius:14px;padding:13px 10px;font-size:16px;font-weight:1000;letter-spacing:-.4px;box-shadow:0 2px 8px rgba(0,0,0,.03)}
.board-dashboard-tabs button.active{background:var(--brand);color:#fff;border-color:var(--brand);box-shadow:0 6px 16px var(--brand-shadow-22)}
.board-dashboard-list{display:grid;gap:12px}
.board-normal-dashboard-card{background:#fff;border:1px solid #e3ebe6;border-radius:16px;padding:15px;box-shadow:0 3px 12px rgba(0,0,0,.035);cursor:pointer}
.board-normal-dashboard-card:active,.board-photo-dashboard-card:active{transform:translateY(1px)}
.board-normal-top{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:11px}
.board-normal-board-name{font-size:17px;font-weight:1000;color:#111;line-height:1.25;letter-spacing:-.5px}
.board-normal-meta{font-size:12.5px;color:#888;margin-top:4px;font-weight:700}
.board-normal-title{font-size:18px;font-weight:1000;color:#1d1d1d;line-height:1.35;letter-spacing:-.5px;margin-bottom:8px;word-break:keep-all}
.board-normal-excerpt{font-size:15.5px;line-height:1.62;color:#4b4b4b;word-break:break-word;background:#f8faf9;border-radius:12px;padding:11px 12px;margin-bottom:10px}
.board-normal-bottom{display:flex;align-items:center;justify-content:space-between;gap:10px;color:#777;font-size:12.5px;font-weight:800}
.board-photo-dashboard-card{background:#fff;border:1px solid #e3ebe6;border-radius:16px;overflow:hidden;box-shadow:0 3px 12px rgba(0,0,0,.035);cursor:pointer}
.board-photo-thumb{width:100%;aspect-ratio:16/10;background:var(--brand-soft);display:flex;align-items:center;justify-content:center;overflow:hidden}
.board-photo-thumb img{width:100%;height:100%;object-fit:cover;display:block}
.board-photo-placeholder{font-size:42px;color:var(--brand);font-weight:1000}
.board-photo-info{padding:13px 14px 14px}
.board-photo-board-name{font-size:15px;font-weight:1000;color:var(--brand);margin-bottom:5px}
.board-photo-title{font-size:17px;font-weight:1000;line-height:1.32;color:#111;letter-spacing:-.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.board-photo-meta{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:8px;font-size:12.5px;color:#888;font-weight:800}
@media (min-width:390px){.board-dashboard-list.gallery-mode{grid-template-columns:1fr 1fr}.board-photo-title{font-size:15px}.board-photo-info{padding:11px}}

/* v1.2.9 사진게시판 카드별 업로드 버튼 */
.board-photo-upload-btn{width:100%;margin-top:12px;border:0;border-radius:13px;background:var(--brand);color:#fff;font-weight:1000;font-size:15px;line-height:1;padding:13px 10px;box-shadow:0 5px 12px var(--brand-shadow-18);cursor:pointer;letter-spacing:-.3px}
.board-photo-upload-btn:active{transform:translateY(1px)}
.board-photo-upload-btn.disabled{background:#d8e3dc;color:#7d8d84;box-shadow:none;cursor:not-allowed}
.board-dashboard-list.gallery-mode .board-photo-dashboard-card{display:flex;flex-direction:column}
.board-dashboard-list.gallery-mode .board-photo-info{display:flex;flex-direction:column;flex:1}
.board-dashboard-list.gallery-mode .board-photo-upload-btn{margin-top:auto}
@media (min-width:390px){.board-photo-upload-btn{font-size:13.5px;padding:11px 8px;border-radius:11px}}


/* v1.3.0 하단 고정 메뉴 가독성: Material Bottom Navigation 기준 24px 아이콘 / 12px 라벨 */
.nav{min-height:64px}
.nav-btn{min-height:64px;font-size:12px;line-height:1.2;justify-content:center}
.nav-btn span{font-size:24px;line-height:1}

/* v1.3.1 메인 섹션 타이틀 가독성 개선 */
.home-section > .section-title,
.home-section .row-between > .section-title,
.home-section .row-between .section-title {
  font-size:18px;
  font-weight:1000;
  color:#111;
  letter-spacing:-.45px;
  line-height:1.25;
}
.home-section .row-between.mb8 {
  margin-bottom:10px;
}
.home-section .btn-text-sm {
  font-size:13px;
  font-weight:1000;
}
@media(max-width:420px){
  .home-section > .section-title,
  .home-section .row-between > .section-title,
  .home-section .row-between .section-title {
    font-size:17px;
  }
}

/* v1.3.3: 사진첩 카드 썸네일/제목 직접 게시물 이동 표시 */
.board-photo-thumb.clickable,
.board-photo-title.clickable {
  cursor: pointer;
}
.board-photo-thumb {
  position: relative;
  overflow: hidden;
}
.board-photo-thumb-hint {
  position: absolute;
  right: 8px;
  bottom: 8px;
  padding: 4px 8px;
  border-radius: 999px;
  background: rgba(0, 0, 0, .52);
  color: #fff;
  font-size: 11px;
  font-weight: 800;
  line-height: 1;
  pointer-events: none;
}
.board-photo-placeholder + .board-photo-thumb-hint {
  display: none;
}

/* v1.3.4 settings accordion and photo-section dashboard */
.settings-collapse { padding: 0; overflow: hidden; }
.settings-collapse-head {
  width: 100%;
  border: 0;
  background: #ffffff;
  padding: 18px 18px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  text-align: left;
  color: #18372a;
  cursor: pointer;
}
.settings-collapse-head strong {
  display: block;
  font-size: 18px;
  font-weight: 900;
  letter-spacing: -0.02em;
}
.settings-collapse-head em {
  display: block;
  margin-top: 4px;
  font-style: normal;
  font-size: 13px;
  color: #728078;
  font-weight: 700;
}
.settings-collapse-head b {
  width: 34px;
  height: 34px;
  border-radius: 999px;
  background: #eaf5ee;
  color: var(--brand);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 22px;
  transition: transform .18s ease;
}
.settings-collapse:not(.collapsed) .settings-collapse-head b { transform: rotate(180deg); }
.settings-collapse-body {
  display: block;
  padding: 0 16px 18px;
  border-top: 1px solid #edf2ef;
}
.settings-collapse.collapsed .settings-collapse-body { display: none; }
.photo-album-section .section-title { font-size: 19px; font-weight: 900; }
.photo-section-grid .photo-section-card {
  cursor: pointer;
  min-height: 132px;
}
.photo-section-card em {
  position: absolute;
  left: 8px;
  top: 8px;
  max-width: calc(100% - 16px);
  padding: 4px 8px;
  border-radius: 999px;
  background: rgba(0,0,0,.48);
  color: #fff;
  font-size: 11px;
  font-style: normal;
  font-weight: 800;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.photo-section-upload-btn {
  margin-top: 12px;
  width: 100%;
  min-height: 48px;
  border: 0;
  border-radius: 16px;
  background: var(--brand-grad);
  color: #fff;
  font-size: 16px;
  font-weight: 900;
  box-shadow: 0 8px 18px var(--brand-shadow-22);
}
.photo-section-upload-btn:active { transform: translateY(1px); }

/* v1.3.6 사진보기 섹션: 업로드 링크 상단 이동 + 카드 비율 안정화 */
.photo-section-head {
  align-items: flex-start;
  gap: 10px;
}
.photo-section-head-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
  flex: 0 0 auto;
  padding-top: 2px;
}
.photo-section-head-actions .btn-text-sm {
  white-space: nowrap;
}
.photo-section-upload-link {
  color: #fff !important;
  background: var(--brand) !important;
  border-radius: 999px !important;
  padding: 6px 9px !important;
  font-size: 12px !important;
  line-height: 1 !important;
  box-shadow: 0 4px 10px var(--brand-shadow-18);
}
.photo-section-grid {
  gap: 10px;
  align-items: start;
}
.photo-section-grid .photo-section-card {
  aspect-ratio: 4 / 3;
  min-height: 0;
  border-radius: 14px;
  border: 1px solid #e3ebe6;
  box-shadow: 0 4px 12px rgba(0,0,0,.035);
  background: #f1f7f4;
  overflow: hidden;
}
.photo-section-grid .photo-section-card img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.photo-section-grid .photo-section-card span {
  font-size: 11.5px;
  padding: 22px 7px 7px;
  line-height: 1.2;
}
.photo-section-grid .photo-section-card em {
  font-size: 10.5px;
  padding: 3px 7px;
}
.photo-section-upload-btn {
  display: none !important;
}
@media(max-width:420px){
  .photo-section-head-actions{gap:6px}
  .photo-section-upload-link{font-size:11.5px!important;padding:6px 8px!important}
  .photo-section-grid{gap:9px}
}


/* v1.3.7 common post fixed prev/next navigation */
.post-swipe-wrap{position:relative;padding-bottom:76px;touch-action:pan-y}
.post-fixed-nav{position:fixed;left:50%;bottom:calc(74px + env(safe-area-inset-bottom));transform:translateX(-50%);z-index:178;width:min(390px,calc(100vw - 36px));display:flex;align-items:center;justify-content:space-between;pointer-events:none}
.post-side-nav{pointer-events:auto;width:54px;height:54px;border:none;border-radius:50%;background:rgba(var(--brand-rgb),.92);color:#fff;font-size:34px;font-weight:1000;line-height:1;display:flex;align-items:center;justify-content:center;box-shadow:0 10px 24px var(--brand-shadow-22)}
.post-side-nav:active{transform:scale(.96)}
.post-side-nav:disabled{opacity:.24;background:#89938f;box-shadow:none}
@media(max-width:420px){.post-fixed-nav{bottom:calc(70px + env(safe-area-inset-bottom));width:calc(100vw - 28px)}.post-side-nav{width:50px;height:50px;font-size:32px}.post-swipe-wrap{padding-bottom:66px}}

/* v1.4.3 scroll fix: custom pull-to-refresh disabled, allow normal mobile scrolling */
html, body, .app-shell, #screen {
  overscroll-behavior-y: auto;
}
.pull-refresh-indicator {
  position: fixed;
  top: 0;
  left: 50%;
  z-index: 9999;
  transform: translate(-50%, -48px);
  min-width: 170px;
  padding: 9px 14px;
  border-radius: 999px;
  background: rgba(35, 87, 59, .94);
  color: #fff;
  font-size: 13px;
  font-weight: 800;
  text-align: center;
  box-shadow: 0 8px 22px rgba(0,0,0,.18);
  opacity: 0;
  pointer-events: none;
  transition: opacity .15s ease, transform .15s ease, background .15s ease;
}
.pull-refresh-indicator.show {
  opacity: 1;
}
.pull-refresh-indicator.ready {
  background: rgba(24, 128, 78, .96);
}

/* v1.4.3: keep the old pull indicator hidden if a cached DOM fragment remains */
.pull-refresh-indicator{display:none!important;}
.content,#screen{ -webkit-overflow-scrolling: touch; }

/* =====================================================
   UI IMPROVEMENT PATCH — v1.4.3-ui
   로직 변경 없음. 직관성/가독성/편의성 개선만.
   ===================================================== */

/* ── 1. 헤더 개선 ─────────────────────────────────── */
.header {
  padding: 10px 12px;
  padding-top: max(10px, env(safe-area-inset-top));
  gap: 10px;
  box-shadow: 0 1px 0 rgba(0,0,0,.12);
}
.header h1 {
  font-size: 17px;
  letter-spacing: -.2px;
  line-height: 1.25;
}
.header-title-wrap p {
  font-size: 11px;
  opacity: .75;
  margin-top: 1px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.header-btn.icon-btn {
  min-width: 38px;
  height: 38px;
  border-radius: 10px;
  font-size: 20px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: rgba(255,255,255,.18);
  padding: 0;
}
.header-btn.icon-btn:active { background: rgba(255,255,255,.32); transform: scale(.94); }
.logo-face { width: 36px; height: 36px; border-radius: 10px; }

/* ── 2. 하단 내비게이션 — 활성 탭 인디케이터 ─────── */
.nav { min-height: 60px; border-top: .5px solid #e0e0e0; }
.nav-btn {
  min-height: 60px;
  padding: 8px 4px 6px;
  position: relative;
  transition: color .15s;
}
.nav-btn span { font-size: 22px; }
.nav-btn.active::before {
  content: '';
  position: absolute;
  top: 0; left: 50%;
  transform: translateX(-50%);
  width: 28px; height: 3px;
  border-radius: 0 0 3px 3px;
  background: var(--brand);
}
.nav-btn:active { opacity: .7; }

/* ── 3. 콘텐츠 영역 ─────────────────────────────── */
.content {
  padding: 14px;
  padding-bottom: 80px;
  background: #f0f2f0;
}

/* ── 4. 카드 공통 ─────────────────────────────────── */
.card {
  border-radius: 14px;
  border: .5px solid #e6e9e7;
  box-shadow: 0 2px 8px rgba(0,0,0,.04);
  margin-bottom: 10px;
}
.card-title {
  font-size: 15px;
  font-weight: 800;
  color: #111;
  margin-bottom: 10px;
}

/* ── 5. 홈 히어로 ─────────────────────────────────── */
.church-hero-top {
  border-radius: 16px;
  padding: 16px 15px 14px;
  margin-bottom: 12px;
}
.church-title { font-size: 20px; letter-spacing: -.6px; }
.church-welcome { font-size: 11px; margin-bottom: 4px; }
.church-sub { font-size: 12px; line-height: 1.5; margin-top: 4px; }

/* ── 6. 홈 섹션 타이틀 — 더보기 버튼 인식 ────────── */
.home-section > .section-title,
.home-section .row-between > .section-title,
.home-section .row-between .section-title {
  font-size: 16px;
  font-weight: 900;
  color: #111;
  letter-spacing: -.3px;
}
.btn-text-sm {
  color: var(--brand);
  font-size: 12px;
  font-weight: 800;
  padding: 5px 9px;
  border-radius: 999px;
  background: var(--brand-soft);
  border: .5px solid var(--brand-border);
  white-space: nowrap;
}
.btn-text-sm:active { background: var(--brand-border); }

/* ── 7. 최근글 목록 rows ─────────────────────────── */
.latest-list { border-radius: 14px; overflow: hidden; }
.latest-row {
  padding: 11px 12px;
  gap: 9px;
}
.latest-title { font-size: 14px; font-weight: 800; }
.gnb-board-meta { font-size: 11.5px; color: #999; margin-top: 3px; line-height: 1.35; }
.latest-dot { width: 6px; height: 6px; margin-top: 5px; }
.latest-excerpt { font-size: 12px; line-height: 1.45; color: #777; }

/* ── 8. 게시글 목록 카드 ────────────────────────── */
.post-list-box { gap: 8px; }
.post-row-card {
  border-radius: 14px;
  padding: 11px 12px;
  gap: 10px;
  box-shadow: 0 2px 8px rgba(0,0,0,.05);
  border: .5px solid #e9ece9;
}
.post-row-card:active { transform: translateY(1px); box-shadow: 0 1px 4px rgba(0,0,0,.05); }
.post-thumb { width: 64px; height: 52px; border-radius: 11px; }
.post-row-title { font-size: 14px; font-weight: 800; margin-bottom: 4px; color: #1a1a1a; }
.post-row-main .gnb-board-meta { font-size: 11.5px; }

/* ── 9. 검색 바 ─────────────────────────────────── */
.search-card {
  border-radius: 14px;
  padding: 9px 9px 9px 12px;
  box-shadow: 0 2px 8px rgba(0,0,0,.06);
  margin-bottom: 10px;
  gap: 7px;
}
.search-card input {
  font-size: 14px;
  padding: 8px 10px;
  border-radius: 10px;
}

/* ── 10. 게시글 상세 ─────────────────────────────── */
.screen-title { font-size: 17px; font-weight: 900; line-height: 1.3; }
.gnb-post-content { font-size: 14.5px; line-height: 1.75; color: #222; padding-top: 4px; }
.row-between.mb10 { margin-bottom: 12px; padding-bottom: 12px; border-bottom: .5px solid #f0f0f0; }

/* ── 11. 댓글 ──────────────────────────────────── */
.comment-list { gap: 7px; }
.comment-item {
  background: #f8faf8;
  border: .5px solid #e8ece8;
  border-radius: 11px;
  padding: 10px 11px;
}
.comment-meta {
  font-size: 11.5px;
  font-weight: 700;
  color: #888;
  margin-bottom: 5px;
  display: flex;
  align-items: center;
  gap: 5px;
}
.comment-meta::before {
  content: '';
  width: 5px; height: 5px;
  border-radius: 50%;
  background: var(--brand);
  flex-shrink: 0;
}
.comment-content { font-size: 13.5px; line-height: 1.6; color: #222; }
.comment-form textarea {
  border-radius: 11px;
  font-size: 14px;
  min-height: 72px;
  padding: 10px 11px;
  border: 1px solid #dde6e0;
}
.comment-form textarea:focus { outline: none; border-color: var(--brand); box-shadow: 0 0 0 3px var(--brand-shadow-14); }
.comment-form .btn-primary { margin-top: 2px; border-radius: 11px; }

/* ── 12. 게시판 대시보드 카드 ──────────────────── */
.board-normal-dashboard-card {
  border-radius: 16px;
  padding: 14px;
  border: .5px solid #e5ebe6;
  box-shadow: 0 2px 8px rgba(0,0,0,.04);
}
.board-normal-board-name { font-size: 16px; font-weight: 900; letter-spacing: -.3px; }
.board-normal-title { font-size: 15px; font-weight: 900; line-height: 1.35; margin-bottom: 7px; letter-spacing: -.3px; }
.board-normal-excerpt {
  font-size: 13.5px;
  line-height: 1.6;
  background: #f7faf8;
  border-radius: 10px;
  padding: 9px 11px;
  margin-bottom: 9px;
  color: #4a4a4a;
  border: .5px solid #edf2ee;
}
.board-normal-bottom { font-size: 12px; }
.board-normal-dashboard-card:active { transform: translateY(1px); }

/* ── 13. 사진 그리드 ─────────────────────────────── */
.gnb-photo-grid { gap: 8px; }
.photo-card { border-radius: 12px; box-shadow: 0 2px 6px rgba(0,0,0,.06); }
.photo-card-title { font-size: 11.5px; padding: 7px 9px; }
.home-photo { border-radius: 11px; }
.home-photo span {
  font-size: 11px;
  padding: 20px 7px 7px;
  line-height: 1.25;
}

/* ── 14. 설교 카드 ──────────────────────────────── */
.sermon-card { border-radius: 16px; box-shadow: 0 4px 14px rgba(0,0,0,.07); }
.sermon-title { font-size: 16px; letter-spacing: -.4px; }
.sermon-meta { font-size: 12px; margin-top: 4px; }
.sermon-body { padding: 12px 13px 13px; }

/* ── 15. 업로드 페이지 ──────────────────────────── */
.upload-form-card { border-radius: 16px; }
.upload-step-title span { width: 26px; height: 26px; font-size: 14px; }
.upload-step-title strong { font-size: 15px; }
.upload-action-btn.album,
.upload-action-btn.camera { border-radius: 14px; min-height: 68px; font-size: 15px; }
.upload-action-icon { font-size: 26px; }

/* ── 16. 로딩 카드 개선 ────────────────────────── */
/* 로딩 카드를 빈 공간이 아닌 스피너 느낌으로 */
.card .card-title:only-child + p.muted.small,
.card p.muted.small {
  color: #888;
}

/* ── 17. 빈 상태(empty) ────────────────────────── */
.empty {
  border-radius: 13px;
  padding: 20px 16px;
  font-size: 13.5px;
  color: #888;
  background: #fafafa;
  border: .5px dashed #d8ddd8;
  text-align: center;
  line-height: 1.55;
}

/* ── 18. 토스트 메시지 ──────────────────────────── */
.toast {
  bottom: calc(68px + env(safe-area-inset-bottom));
  font-size: 13.5px;
  padding: 10px 16px;
  border-radius: 999px;
  background: rgba(20,40,25,.88);
  letter-spacing: -.1px;
  box-shadow: 0 8px 24px rgba(0,0,0,.22);
  max-width: 340px;
}

/* ── 19. 설정 아코디언 개선 ─────────────────────── */
.settings-collapse {
  border-radius: 14px;
  border: .5px solid #e5e9e5;
  overflow: hidden;
  margin-bottom: 10px;
}
.settings-collapse-head {
  background: #fff;
  padding: 16px 16px;
  border-radius: 0;
}
.settings-collapse-head strong { font-size: 16px; }
.settings-collapse-head em { font-size: 12px; color: #888; margin-top: 3px; }
.settings-collapse-head b {
  width: 30px; height: 30px;
  background: #f0f2f0;
  font-size: 18px;
}
.settings-collapse:not(.collapsed) .settings-collapse-head {
  border-bottom: .5px solid #e5e9e5;
  background: #f8faf8;
}
.settings-collapse-body { padding: 14px 14px 16px; }
.home-setting-row {
  border-radius: 12px;
  background: #f8faf8;
  padding: 11px 12px;
  margin-bottom: 8px;
  border: .5px solid #e5e9e5;
}

/* ── 20. 폼 요소 ────────────────────────────────── */
.form-group input,
.form-group select,
.form-group textarea {
  border-radius: 10px;
  border: 1px solid #d8ddd8;
  font-size: 15px;
  padding: 10px 11px;
  background: #fff;
  color: #111;
}
.form-group input:focus,
.form-group select:focus,
.form-group textarea:focus {
  outline: none;
  border-color: var(--brand);
  box-shadow: 0 0 0 3px var(--brand-shadow-14);
}
.form-label { font-size: 13px; color: #666; font-weight: 700; margin-bottom: 5px; }

/* ── 21. 버튼 ──────────────────────────────────── */
.btn-primary {
  border-radius: 11px;
  font-size: 15px;
  font-weight: 800;
  padding: 13px;
  letter-spacing: -.2px;
  box-shadow: 0 4px 12px var(--brand-shadow-18);
}
.btn-primary:active { transform: translateY(1px); box-shadow: 0 2px 6px var(--brand-shadow-14); }
.btn-secondary {
  border-radius: 10px;
  font-size: 13.5px;
  padding: 10px 13px;
  border: .5px solid #d8ddd8;
}
.btn-secondary:active { background: #ebebeb; }
.btn-green-sm {
  border-radius: 8px;
  font-size: 13px;
  padding: 8px 12px;
  box-shadow: 0 2px 6px var(--brand-shadow-14);
}

/* ── 22. 로그인 화면 ─────────────────────────────── */
.login-card {
  border-radius: 16px;
  padding: 16px;
  box-shadow: 0 4px 18px rgba(0,0,0,.07);
}
.logo-face-lg { border-radius: 22px; box-shadow: 0 8px 22px rgba(0,0,0,.12); }
.login-title { font-size: 22px; letter-spacing: -.5px; }
.login-sub { font-size: 13px; }
.check-row { font-size: 13.5px; }
.login-link-row { font-size: 13px; }
.login-divider { font-size: 12px; }
.btn-kakao { border-radius: 10px; font-size: 14.5px; font-weight: 900; }

/* ── 23. 뷰어(성경/찬송) ─────────────────────────── */
.reader-hero { border-radius: 16px; padding: 15px; margin-bottom: 10px; }
.reader-title { font-size: 20px; letter-spacing: -.5px; }
.reader-body {
  border-radius: 14px;
  padding: 15px;
  line-height: 1.82;
  border: .5px solid #e8ece8;
}
.verse-no {
  min-width: 22px; height: 22px;
  font-size: .7em;
  border-radius: 999px;
  background: var(--brand-soft);
  color: var(--brand-dark);
}

/* ── 24. 사진 뷰어(lightbox) ────────────────────── */
/* 가이드 텍스트 — 위쪽 배치 */
.lightbox-zoom-guide {
  top: calc(14px + env(safe-area-inset-top));
  bottom: auto;
  font-size: 11.5px;
  padding: 6px 12px;
}

/* ── 25. 게시판 탭(일반/사진) ────────────────────── */
.board-dashboard-tabs { gap: 7px; margin-bottom: 10px; }
.board-dashboard-tabs button {
  border-radius: 12px;
  padding: 12px 8px;
  font-size: 14.5px;
  font-weight: 900;
  letter-spacing: -.3px;
  border: .5px solid #dce8e2;
  box-shadow: 0 1px 4px rgba(0,0,0,.04);
}
.board-dashboard-tabs button.active {
  box-shadow: 0 4px 12px var(--brand-shadow-22);
}

/* ── 26. hero 영역 compact ─────────────────────── */
.gnb-hero {
  border-radius: 14px;
  padding: 13px 14px;
  margin-bottom: 10px;
  box-shadow: 0 2px 8px rgba(0,0,0,.04);
}
.gnb-hero-title { font-size: 17px; font-weight: 900; margin-bottom: 3px; letter-spacing: -.3px; }
.gnb-hero-sub { font-size: 12px; line-height: 1.45; }

/* ── 27. 페이지네이션 ──────────────────────────── */
.photo-pagination button {
  min-width: 36px;
  height: 36px;
  border-radius: 9px;
  font-size: 13.5px;
  font-weight: 800;
}
.photo-pagination button.active { box-shadow: 0 3px 8px var(--brand-shadow-18); }

/* ── 28. 카테고리 chip ──────────────────────────── */
.photo-category-chip {
  border-radius: 999px;
  padding: 7px 13px;
  font-size: 12.5px;
  font-weight: 800;
}
.photo-category-chip.active { box-shadow: 0 2px 8px var(--brand-shadow-18); }

/* ── 29. 이전/다음 고정 내비게이션 ───────────────── */
.post-side-nav,
.bible-fixed-nav .bible-side-nav,
.hymn-fixed-nav .hymn-side-nav {
  width: 50px; height: 50px;
  font-size: 30px;
  box-shadow: 0 6px 18px rgba(0,0,0,.18);
}

/* ── 30. 반응형 미세 조정 ────────────────────────── */
@media (max-width:420px) {
  .content { padding: 12px 12px 80px; }
  .church-title { font-size: 18px; }
  .home-section > .section-title,
  .home-section .row-between .section-title { font-size: 15px; }
  .board-normal-title { font-size: 14px; }
  .post-thumb { width: 58px; height: 48px; }
  .sermon-title { font-size: 15px; }
}


/* v1.4.6 관리자 설정 백업/복원 */
.settings-backup-card .action-grid{grid-template-columns:1fr 1fr;gap:8px}
.settings-backup-card .btn-green-sm.full{width:100%;justify-content:center;min-height:44px}
.settings-backup-card .btn-secondary.full{min-height:44px;font-weight:900}
@media(max-width:420px){.settings-backup-card .action-grid{grid-template-columns:1fr}.settings-backup-card .btn-green-sm.full,.settings-backup-card .btn-secondary.full{min-height:46px}}

/* v1.4.7 photo post edit/delete controls */
.post-manage-card{
  border-color:#f1e2c7;
  background:linear-gradient(180deg,#fff,#fffaf2);
}
.post-manage-actions{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:8px;
}
.post-manage-actions .btn-secondary,
.post-manage-actions .btn-danger{
  width:100%;
  margin-top:0;
  min-height:46px;
  border-radius:14px;
  font-weight:1000;
}
.post-manage-actions .btn-danger{
  background:#fcebeb;
  color:#a32d2d;
  border:.5px solid #f7c1c1;
}
@media(max-width:420px){.post-manage-actions{gap:7px}.post-manage-actions .btn-secondary,.post-manage-actions .btn-danger{min-height:44px}}

/* v1.4.8 게시글 읽기 글자 크기 조절 */
.post-font-toolbar{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  margin:0 0 10px;
  padding:10px 12px;
  background:#fff;
  border:1px solid #e3ebe6;
  border-radius:14px;
  box-shadow:0 4px 12px rgba(0,0,0,.035);
}
.post-font-toolbar strong{
  display:block;
  font-size:13px;
  font-weight:1000;
  color:#18372a;
  line-height:1.2;
}
.post-font-toolbar span[data-post-font-label]{
  display:block;
  margin-top:2px;
  font-size:12px;
  color:#728078;
  font-weight:800;
}
.post-font-tools{display:flex;gap:7px;align-items:center;flex:0 0 auto}
.post-font-tools button{
  border:0;
  border-radius:999px;
  background:var(--brand);
  color:#fff;
  min-width:48px;
  min-height:38px;
  padding:8px 12px;
  font-size:14px;
  font-weight:1000;
  box-shadow:0 4px 10px var(--brand-shadow-18);
}
.post-font-tools button:disabled{
  background:#d8e3dc;
  color:#7d8d84;
  box-shadow:none;
}
.post-readable .post-title-readable,
.post-readable .post-content-readable,
.post-readable .comment-content{
  transition:font-size .12s ease,line-height .12s ease;
}
.post-readable.post-font-1 .post-title-readable{font-size:20px;line-height:1.38}
.post-readable.post-font-1 .post-content-readable{font-size:17px;line-height:1.9}
.post-readable.post-font-1 .comment-content{font-size:16px;line-height:1.8}
.post-readable.post-font-2 .post-title-readable{font-size:22px;line-height:1.4}
.post-readable.post-font-2 .post-content-readable{font-size:19px;line-height:1.95}
.post-readable.post-font-2 .comment-content{font-size:18px;line-height:1.85}
.post-readable.post-font-3 .post-title-readable{font-size:24px;line-height:1.42}
.post-readable.post-font-3 .post-content-readable{font-size:21px;line-height:2}
.post-readable.post-font-3 .comment-content{font-size:20px;line-height:1.92}
.post-readable.post-font-4 .post-title-readable{font-size:26px;line-height:1.44}
.post-readable.post-font-4 .post-content-readable{font-size:23px;line-height:2.06}
.post-readable.post-font-4 .comment-content{font-size:22px;line-height:2}
.post-readable.post-font-2 .post-meta-readable,
.post-readable.post-font-3 .post-meta-readable,
.post-readable.post-font-4 .post-meta-readable{font-size:14px!important}
.post-readable .post-content-readable table{max-width:100%;overflow:auto;display:block}
@media(max-width:420px){
  .post-font-toolbar{padding:9px 10px;border-radius:13px}
  .post-font-tools button{min-width:44px;min-height:36px;padding:7px 10px}
  .post-readable.post-font-4 .post-title-readable{font-size:25px}
  .post-readable.post-font-4 .post-content-readable{font-size:22px}
  .post-readable.post-font-4 .comment-content{font-size:21px}
}

/* v1.4.9 게시판 목록 기본 글씨 가독성 개선 */
/* 게시글 상세의 가-/가+ 기능은 그대로 두고, 게시판/글목록 카드의 기본 읽기 글씨만 확대합니다. */
.board-dashboard-list.normal-mode{
  gap:14px;
}
.board-normal-dashboard-card{
  padding:17px 16px !important;
  border-radius:18px !important;
}
.board-normal-board-name{
  font-size:19px !important;
  line-height:1.32 !important;
  font-weight:1000 !important;
  letter-spacing:-.45px !important;
}
.board-normal-meta{
  font-size:14px !important;
  line-height:1.45 !important;
}
.board-normal-title{
  font-size:19px !important;
  line-height:1.43 !important;
  font-weight:1000 !important;
  margin-bottom:9px !important;
  letter-spacing:-.45px !important;
  word-break:keep-all;
}
.board-normal-excerpt{
  font-size:17px !important;
  line-height:1.72 !important;
  padding:13px 13px !important;
  border-radius:14px !important;
}
.board-normal-bottom{
  font-size:14px !important;
  line-height:1.45 !important;
}
.post-list-box{
  gap:12px;
}
.post-row-card{
  padding:14px 13px !important;
  border-radius:18px !important;
  gap:13px !important;
}
.post-row-title{
  font-size:17px !important;
  line-height:1.45 !important;
  font-weight:1000 !important;
  white-space:normal !important;
  display:-webkit-box;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
  overflow:hidden;
  letter-spacing:-.35px;
}
.post-row-card .gnb-board-meta{
  font-size:14px !important;
  line-height:1.45 !important;
  margin-top:5px !important;
}
.post-thumb{
  width:68px !important;
  height:58px !important;
  border-radius:15px !important;
}

@media(max-width:420px){
  .board-normal-dashboard-card{
    padding:16px 15px !important;
  }
  .board-normal-board-name{
    font-size:18px !important;
  }
  .board-normal-title{
    font-size:18px !important;
    line-height:1.42 !important;
  }
  .board-normal-excerpt{
    font-size:16.5px !important;
    line-height:1.68 !important;
  }
  .board-normal-bottom,
  .board-normal-meta,
  .post-row-card .gnb-board-meta{
    font-size:13.5px !important;
  }
  .post-row-title{
    font-size:16.5px !important;
    line-height:1.43 !important;
  }
  .post-thumb{
    width:64px !important;
    height:54px !important;
  }
}

/* v1.5.2 Bible screen wake lock toggle */
.bible-wake-card{
  background:linear-gradient(180deg,#ffffff,#f6fbf8);
  border:1px solid var(--brand-border);
  border-radius:16px;
  padding:12px 13px;
  margin:0 0 12px;
  box-shadow:0 6px 16px rgba(var(--brand-rgb),.08);
}
.bible-wake-btn{
  width:100%;
  border:none;
  border-radius:14px;
  min-height:48px;
  padding:12px 14px;
  font-size:16px;
  font-weight:1000;
  color:var(--brand-dark);
  background:var(--brand-soft);
  box-shadow:inset 0 0 0 1px var(--brand-border);
}
.bible-wake-btn.active{
  color:#fff;
  background:var(--brand-grad);
  box-shadow:0 8px 18px var(--brand-shadow-18);
}
.bible-wake-btn:disabled{
  color:#777;
  background:#f1f1f1;
  box-shadow:inset 0 0 0 1px #e1e1e1;
}
.bible-wake-status{
  margin-top:8px;
  font-size:12.5px;
  font-weight:800;
  color:#5f6b64;
  line-height:1.45;
  text-align:center;
}
@media(max-width:420px){.bible-wake-btn{font-size:15.5px;min-height:46px}.bible-wake-status{font-size:12px}}

/* v1.5.3 하단 메뉴 순서 변경 + 업로드 큰 플러스 아이콘 */
.bottom-nav .nav-upload-btn span{
  width:34px;
  height:34px;
  border-radius:999px;
  background:var(--brand-grad);
  color:#fff;
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:31px!important;
  font-weight:900;
  line-height:30px!important;
  margin-top:-8px;
  box-shadow:0 7px 16px var(--brand-shadow-22);
}
.bottom-nav .nav-upload-btn{
  color:var(--brand);
  font-weight:1000;
}
.bottom-nav .nav-upload-btn.active span{
  transform:scale(1.06);
  box-shadow:0 8px 18px var(--brand-shadow-22);
}
.bottom-nav .nav-upload-btn:active span{
  transform:scale(.96);
}
@media(max-width:420px){
  .bottom-nav .nav-upload-btn span{
    width:32px;
    height:32px;
    font-size:29px!important;
    line-height:28px!important;
    margin-top:-7px;
  }
}

/* v1.5.4 home section video indication + app settings collapse */
.home-video-badge{
  display:inline-flex;
  align-items:center;
  gap:3px;
  margin-right:6px;
  padding:3px 7px;
  border-radius:999px;
  background:rgba(var(--brand-rgb),.12);
  color:var(--brand);
  font-size:11px;
  font-weight:1000;
  line-height:1;
  vertical-align:2px;
  white-space:nowrap;
}
.latest-row.has-video .latest-dot{
  background:#d93636;
  box-shadow:0 0 0 3px rgba(217,54,54,.12);
}
.home-video-photo::after{
  content:'';
  position:absolute;
  inset:0;
  background:linear-gradient(180deg,rgba(0,0,0,.05),rgba(0,0,0,.18));
  pointer-events:none;
}
.home-video-play{
  position:absolute;
  left:50%;
  top:50%;
  transform:translate(-50%,-50%);
  z-index:3;
  width:48px;
  height:48px;
  border-radius:999px;
  background:rgba(var(--brand-rgb),.92);
  color:#fff;
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:21px;
  padding-left:3px;
  box-shadow:0 8px 22px rgba(0,0,0,.26);
  pointer-events:none;
}
.home-video-label{
  position:absolute;
  left:8px;
  top:8px;
  z-index:4;
  padding:4px 8px;
  border-radius:999px;
  background:rgba(0,0,0,.56);
  color:#fff;
  font-size:11px;
  font-style:normal;
  font-weight:1000;
  line-height:1;
  pointer-events:none;
}
.app-setting-card.settings-collapse{
  padding:0;
  overflow:hidden;
}
.app-setting-card.settings-collapse .settings-collapse-body{
  padding-top:16px;
}
@media(max-width:420px){
  .home-video-play{width:42px;height:42px;font-size:19px}
  .home-video-badge{font-size:10.5px;padding:3px 6px}
}


/* v1.5.5 일반게시판 목록 유튜브 썸네일 표시 */
.post-thumb{
  position:relative;
}
.post-thumb.post-thumb-video{
  background:#111;
  color:#fff;
  border-color:rgba(var(--brand-rgb),.28);
}
.post-thumb.post-thumb-video img{
  filter:saturate(1.04) contrast(1.02);
}
.post-thumb-play{
  position:absolute;
  left:50%;
  top:50%;
  transform:translate(-50%,-50%);
  width:34px;
  height:34px;
  border-radius:999px;
  background:rgba(var(--brand-rgb),.92);
  color:#fff;
  display:flex;
  align-items:center;
  justify-content:center;
  padding-left:2px;
  font-size:15px;
  font-weight:1000;
  box-shadow:0 5px 14px rgba(0,0,0,.24);
}
.post-video-badge{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  margin-right:4px;
  padding:2px 6px;
  border-radius:999px;
  background:rgba(var(--brand-rgb),.10);
  color:var(--brand);
  font-size:.78em;
  font-weight:1000;
  vertical-align:1px;
}
.post-row-video .post-row-title{
  color:#10251f;
}
@media(max-width:420px){
  .post-thumb-play{width:32px;height:32px;font-size:14px}
}

/* v1.5.6 게시판 목록 하단 번호 페이지네이션 */
.post-pagination{
  margin-top:16px;
  margin-bottom:6px;
}
.post-pagination button{
  min-width:38px;
  height:38px;
  border-radius:12px;
  font-size:14px;
}
@media(max-width:420px){
  .post-pagination{gap:7px;margin-top:14px}
  .post-pagination button{min-width:36px;height:36px}
}

/* v1.5.7 게시글 상세에서 목록으로 바로 이동 */
.post-title-row{
  align-items:flex-start;
  gap:10px;
}
.post-title-main{
  min-width:0;
  flex:1 1 auto;
}
.post-list-jump-btn{
  flex:0 0 auto;
  border:1px solid var(--brand-border);
  background:var(--brand-soft);
  color:var(--brand-dark);
  border-radius:999px;
  min-height:38px;
  padding:8px 13px;
  font-size:13px;
  font-weight:1000;
  box-shadow:0 4px 10px var(--brand-shadow-10);
}
.post-list-jump-btn:active{
  transform:translateY(1px);
}
@media(max-width:420px){
  .post-title-row{gap:8px}
  .post-list-jump-btn{min-height:36px;padding:7px 11px;font-size:12px}
}

/* v1.5.7 게시글 상세에서 목록으로 바로 이동 */
.post-title-row{
  align-items:flex-start;
  gap:10px;
}
.post-title-main{
  min-width:0;
  flex:1 1 auto;
}
.post-list-jump-btn{
  flex:0 0 auto;
  border:1px solid var(--brand-border);
  background:var(--brand-soft);
  color:var(--brand-dark);
  border-radius:999px;
  min-height:38px;
  padding:8px 13px;
  font-size:13px;
  font-weight:1000;
  box-shadow:0 4px 10px var(--brand-shadow-10);
}
.post-list-jump-btn:active{
  transform:translateY(1px);
}
@media(max-width:420px){
  .post-title-row{gap:8px}
  .post-list-jump-btn{min-height:36px;padding:7px 11px;font-size:12px}
}

/* v1.5.8 YouTube landscape fullscreen */
.youtube-box-action{position:relative}
.youtube-landscape-btn{position:absolute;right:10px;bottom:10px;z-index:3;border:none;border-radius:999px;background:rgba(0,0,0,.72);color:#fff;font-size:12px;font-weight:900;padding:8px 11px;box-shadow:0 4px 14px rgba(0,0,0,.25);backdrop-filter:blur(6px)}
.video-fullscreen-layer{position:fixed;inset:0;z-index:99999;background:#000;display:flex;align-items:center;justify-content:center;overflow:hidden}
.video-fullscreen-inner{width:100vw;height:100vh;background:#000;display:flex;align-items:center;justify-content:center}
.video-fullscreen-inner iframe{width:100vw;height:100vh;border:0;background:#000}
.video-fullscreen-close{position:fixed;right:calc(12px + env(safe-area-inset-right));top:calc(10px + env(safe-area-inset-top));z-index:100001;width:42px;height:42px;border-radius:50%;border:none;background:rgba(255,255,255,.18);color:#fff;font-size:30px;line-height:1;font-weight:300;backdrop-filter:blur(8px)}
.video-fullscreen-hint{position:fixed;left:50%;bottom:calc(12px + env(safe-area-inset-bottom));transform:translateX(-50%);z-index:100000;color:#fff;background:rgba(0,0,0,.45);border-radius:999px;padding:7px 12px;font-size:12px;font-weight:800;white-space:nowrap}
@media(orientation:portrait){.video-fullscreen-inner iframe{width:100vw;height:56.25vw;max-height:100vh}.video-fullscreen-layer::before{content:'휴대폰을 가로로 돌리면 더 크게 볼 수 있습니다';position:fixed;left:50%;top:calc(16px + env(safe-area-inset-top));transform:translateX(-50%);z-index:100000;color:#fff;background:rgba(0,0,0,.45);border-radius:999px;padding:7px 12px;font-size:12px;font-weight:800;white-space:nowrap}}

/* v1.6.1 board type/display style split and board-section post grid */
.board-post-section .photo-section-head {
  align-items: flex-start;
}
.board-section-head-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
  flex: 0 0 auto;
  padding-top: 2px;
}
.board-section-upload-link {
  color: #fff !important;
  background: var(--brand) !important;
  border-radius: 999px !important;
  padding: 6px 9px !important;
  font-size: 12px !important;
  line-height: 1 !important;
  box-shadow: 0 4px 10px var(--brand-shadow-18);
}
.board-post-grid {
  display: grid !important;
  grid-template-columns: repeat(var(--board-section-cols, 1), minmax(0, 1fr)) !important;
  gap: 10px !important;
  align-items: start !important;
  overflow: visible !important;
}
.board-post-grid.cols-1 { --board-section-cols: 1; }
.board-post-grid.cols-2 { --board-section-cols: 2; }
.board-post-grid.cols-3 { --board-section-cols: 3; }
.board-post-grid.cols-4 { --board-section-cols: 4; }
.board-post-grid > * {
  min-width: 0 !important;
  max-width: 100% !important;
  box-sizing: border-box !important;
}
.board-section-item-card {
  border: 1px solid rgba(0,0,0,.07);
  background: #fff;
  border-radius: 16px;
  overflow: hidden;
  box-shadow: 0 8px 20px rgba(0,0,0,.045);
  cursor: pointer;
}
.board-section-list-card {
  padding: 12px;
}
.board-section-item-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  margin-bottom: 7px;
}
.board-section-item-board,
.board-section-item-date,
.board-section-item-meta {
  font-size: 12px;
  color: #7b8581;
  line-height: 1.35;
}
.board-section-item-title {
  font-size: 15px;
  line-height: 1.38;
  font-weight: 800;
  color: #18221d;
  word-break: keep-all;
  overflow-wrap: anywhere;
}
.board-section-item-excerpt {
  margin-top: 7px;
  font-size: 13px;
  line-height: 1.45;
  color: #58625d;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.board-section-list-card .board-section-item-meta {
  margin-top: 9px;
}
.board-section-thumb {
  position: relative;
  aspect-ratio: 16 / 10;
  background: #eef4f0;
  overflow: hidden;
}
.board-section-thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.board-section-thumb em {
  position: absolute;
  left: 8px;
  bottom: 8px;
  color: #fff;
  background: rgba(0,0,0,.55);
  border-radius: 999px;
  padding: 4px 8px;
  font-style: normal;
  font-size: 11px;
  font-weight: 800;
}
.board-section-video-play {
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
}
.board-section-thumb-info {
  padding: 10px;
}
.board-section-thumb-info .board-section-item-title {
  font-size: 14px;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.board-section-thumb-info .board-section-item-meta {
  margin-top: 6px;
}
.board-post-section .board-photo-upload-btn,
.board-post-section .board-section-write-row {
  display: none !important;
}
@media(max-width:380px) {
  .board-post-grid.cols-3,
  .board-post-grid.cols-4 { --board-section-cols: 2 !important; }
}
@media(max-width:330px) {
  .board-post-grid.cols-2,
  .board-post-grid.cols-3,
  .board-post-grid.cols-4 { --board-section-cols: 1 !important; }
}


/* v1.6.5: 앱 내부 새글 배지 1단계 */
.bottom-nav .nav-btn{position:relative}
.bottom-nav .nav-btn.has-unread::after{
  content:attr(data-unread-count);
  position:absolute;
  top:7px;
  right:18%;
  min-width:18px;
  height:18px;
  padding:0 4px;
  border-radius:999px;
  background:#e53935;
  color:#fff;
  font-size:10px;
  font-weight:900;
  line-height:18px;
  text-align:center;
  box-shadow:0 2px 8px rgba(0,0,0,.22);
  border:2px solid #fff;
  box-sizing:border-box;
}
@media(max-width:420px){
  .bottom-nav .nav-btn.has-unread::after{right:15%;top:6px;min-width:17px;height:17px;line-height:17px;font-size:9.5px}
}

/* v1.6.6 섹션 게시물 NEW 표시 */
.board-section-item-card.is-new{
  border-color:rgba(225,29,72,.32)!important;
  box-shadow:0 6px 18px rgba(225,29,72,.08);
}
.board-section-new-badge{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:32px;
  height:17px;
  padding:0 6px;
  margin-right:6px;
  border-radius:999px;
  background:#e11d48;
  color:#fff;
  font-size:10px;
  line-height:17px;
  font-weight:1000;
  font-style:normal;
  letter-spacing:.02em;
  vertical-align:middle;
  box-shadow:0 2px 8px rgba(225,29,72,.25);
}
.board-section-thumb{
  position:relative;
}
.board-section-thumb .board-section-new-badge{
  position:absolute;
  top:7px;
  left:7px;
  z-index:4;
  margin-right:0;
}
.board-section-item-date{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:2px;
}

/* v1.6.7: 사진첩/사진게시판 NEW 표시 + 테마색 연동 */
.bottom-nav .nav-btn.has-unread::after{
  background:var(--brand)!important;
  box-shadow:0 2px 8px var(--brand-shadow-22)!important;
}
.board-section-item-card.is-new{
  border-color:rgba(var(--brand-rgb),.32)!important;
  box-shadow:0 6px 18px rgba(var(--brand-rgb),.10)!important;
}
.board-section-new-badge{
  background:var(--brand)!important;
  box-shadow:0 2px 8px var(--brand-shadow-22)!important;
}
.photo-section-card.is-new,
.photo-card.is-new{
  position:relative;
  outline:2px solid rgba(var(--brand-rgb),.35);
  box-shadow:0 6px 18px rgba(var(--brand-rgb),.10);
}
.photo-new-thumb-wrap{
  position:relative;
  width:100%;
  height:100%;
  display:block;
}
.photo-new-thumb-wrap>img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
}
.photo-new-badge{
  position:absolute;
  top:7px;
  left:7px;
  z-index:6;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:32px;
  height:17px;
  padding:0 6px;
  border-radius:999px;
  background:var(--brand);
  color:#fff;
  font-size:10px;
  line-height:17px;
  font-weight:1000;
  font-style:normal;
  letter-spacing:.02em;
  box-shadow:0 2px 8px var(--brand-shadow-22);
  pointer-events:none;
}
.photo-card>.photo-new-badge{
  top:7px;
  left:7px;
}


/* v1.6.8: NEW/새글 숫자 배지 붉은색 고정 - 테마색과 무관 */
.bottom-nav .nav-btn.has-unread::after{
  background:#e11d48!important;
  color:#fff!important;
  box-shadow:0 2px 8px rgba(225,29,72,.35)!important;
  border:2px solid #fff!important;
}
.board-section-item-card.is-new{
  border-color:rgba(225,29,72,.32)!important;
  box-shadow:0 6px 18px rgba(225,29,72,.08)!important;
}
.board-section-new-badge{
  background:#e11d48!important;
  color:#fff!important;
  box-shadow:0 2px 8px rgba(225,29,72,.25)!important;
}
.photo-section-card.is-new,
.photo-card.is-new{
  outline:2px solid rgba(225,29,72,.35)!important;
  box-shadow:0 6px 18px rgba(225,29,72,.08)!important;
}
.photo-new-badge{
  background:#e11d48!important;
  color:#fff!important;
  box-shadow:0 2px 8px rgba(225,29,72,.25)!important;
}


/* v1.6.9 PWA automatic update prompt */
.pwa-update-prompt{
  position:fixed;
  left:50%;
  bottom:calc(78px + env(safe-area-inset-bottom));
  transform:translateX(-50%);
  z-index:520;
  width:min(410px, calc(100% - 22px));
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  padding:11px 12px;
  border-radius:16px;
  background:rgba(17,24,39,.96);
  color:#fff;
  box-shadow:0 12px 28px rgba(0,0,0,.22);
  box-sizing:border-box;
}
.pwa-update-text{min-width:0;display:flex;flex-direction:column;gap:2px;line-height:1.3}
.pwa-update-text strong{font-size:13px;font-weight:1000;color:#fff}
.pwa-update-text span{font-size:12px;color:rgba(255,255,255,.78);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:230px}
.pwa-update-actions{display:flex;align-items:center;gap:6px;flex:0 0 auto}
.pwa-update-actions button{border:0;border-radius:999px;padding:7px 10px;font-size:12px;font-weight:900;cursor:pointer;line-height:1}
.pwa-update-apply{background:#fff;color:#111827}
.pwa-update-later{background:rgba(255,255,255,.14);color:#fff}
.pwa-update-actions button:active{transform:translateY(1px)}
@media(max-width:360px){.pwa-update-prompt{align-items:flex-start;flex-direction:column}.pwa-update-text span{max-width:100%}.pwa-update-actions{width:100%}.pwa-update-actions button{flex:1}}

/* v1.7.1 새 댓글 알림 배지 */
.comment-new-badge{display:inline-flex;align-items:center;justify-content:center;min-width:42px;height:18px;padding:0 7px;margin-left:6px;border-radius:999px;background:#4f46e5;color:#fff;font-size:10px;line-height:18px;font-weight:900;font-style:normal;letter-spacing:-.02em;box-shadow:0 2px 8px rgba(79,70,229,.25);vertical-align:middle;white-space:nowrap;}
.board-section-item-card.has-new-comment,.photo-section-card.has-new-comment,.photo-card.has-new-comment,.post-row-card.has-new-comment{box-shadow:0 6px 18px rgba(79,70,229,.07);}
.board-section-thumb .comment-new-badge,.photo-new-thumb-wrap .comment-new-badge,.photo-card>.comment-new-badge{position:absolute;right:7px;top:7px;z-index:7;margin-left:0;}
.photo-card{position:relative;}
.post-row-title .comment-new-badge{margin-left:6px;transform:translateY(-1px);}


/* v1.7.2 새글/댓글 숫자 추적 표시 */
.unread-summary-card{
  margin:0 0 12px;
  padding:12px;
  border-radius:18px;
  background:#fff;
  border:1px solid rgba(225,29,72,.18);
  box-shadow:0 8px 24px rgba(225,29,72,.07);
}
.unread-summary-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
  margin-bottom:8px;
}
.unread-summary-head strong{
  font-size:14px;
  font-weight:1000;
  color:#111827;
}
.unread-summary-head span{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:22px;
  height:22px;
  padding:0 7px;
  border-radius:999px;
  background:#e11d48;
  color:#fff;
  font-size:12px;
  font-weight:1000;
}
.unread-summary-list{
  display:flex;
  flex-direction:column;
  gap:7px;
}
.unread-summary-item{
  width:100%;
  display:flex;
  align-items:center;
  gap:8px;
  border:0;
  border-radius:13px;
  background:#f8fafc;
  padding:9px 10px;
  text-align:left;
  cursor:pointer;
}
.unread-summary-item:active{
  transform:scale(.99);
}
.unread-summary-badges{
  display:inline-flex;
  align-items:center;
  gap:4px;
  flex:0 0 auto;
}
.unread-summary-badges .comment-new-badge{
  position:static!important;
  margin-left:0!important;
  transform:none!important;
}
.unread-summary-main{
  min-width:0;
  display:flex;
  flex-direction:column;
  gap:2px;
}
.unread-summary-main strong{
  display:block;
  overflow:hidden;
  white-space:nowrap;
  text-overflow:ellipsis;
  font-size:13px;
  font-weight:900;
  color:#111827;
}
.unread-summary-main small{
  display:block;
  overflow:hidden;
  white-space:nowrap;
  text-overflow:ellipsis;
  font-size:11px;
  color:#64748b;
}
.unread-summary-more{
  margin-top:8px;
  font-size:11px;
  color:#64748b;
}

/* v1.7.4 YouTube live home section */
.youtube-live-section{
  border:1px solid rgba(225,29,72,.16);
  box-shadow:0 10px 28px rgba(15,23,42,.06);
}
.youtube-live-pill{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:42px;
  height:22px;
  padding:0 9px;
  border-radius:999px;
  background:#e11d48;
  color:#fff;
  font-size:11px;
  font-weight:1000;
  letter-spacing:.02em;
  box-shadow:0 3px 10px rgba(225,29,72,.22);
}
.youtube-live-section.is-waiting .youtube-live-pill,
.youtube-live-section.is-loading .youtube-live-pill{
  background:#64748b;
  box-shadow:0 3px 10px rgba(100,116,139,.18);
}
.youtube-live-body{
  margin-top:10px;
}
.youtube-live-player-wrap{
  position:relative;
  width:100%;
  aspect-ratio:16/9;
  overflow:hidden;
  border-radius:18px;
  background:#000;
  box-shadow:0 8px 20px rgba(15,23,42,.12);
}
.youtube-live-player-wrap iframe{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  border:0;
  display:block;
}
.youtube-live-caption{
  display:flex;
  flex-direction:column;
  gap:3px;
  margin-top:9px;
}
.youtube-live-caption strong{
  font-size:14px;
  font-weight:1000;
  color:#111827;
}
.youtube-live-caption span,
.youtube-live-loading,
.youtube-live-offline span{
  font-size:12px;
  line-height:1.45;
  color:#64748b;
}
.youtube-live-loading,
.youtube-live-offline{
  min-height:86px;
  border-radius:16px;
  background:#f8fafc;
  border:1px dashed #cbd5e1;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:5px;
  padding:16px;
  text-align:center;
}
.youtube-live-offline strong{
  color:#334155;
  font-size:14px;
  font-weight:1000;
}
.youtube-live-setting-box{
  margin:10px 0;
  padding:12px;
  border:1px solid rgba(225,29,72,.16);
  border-radius:16px;
  background:#fff7f9;
}
.home-setting-row:not([data-home-type-current="youtube_live"]) .youtube-live-setting-box{
  display:none;
}


/* v1.7.8 설문 관리 관리자 링크 */
.survey-admin-link-card{
  border-color:#cfe9dd;
  background:linear-gradient(180deg,#ffffff,#f6fbf8);
}
.survey-admin-actions{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:8px;
  margin:10px 0 8px;
}
.survey-admin-actions a{
  display:flex;
  align-items:center;
  justify-content:center;
  min-height:48px;
  border-radius:14px;
  text-decoration:none;
  font-size:15px;
  font-weight:1000;
  letter-spacing:-.3px;
}
.survey-admin-main{
  background:var(--brand);
  color:#fff;
  box-shadow:0 8px 18px var(--brand-shadow-18);
}
.survey-admin-sub{
  background:var(--brand-soft);
  color:var(--brand-dark);
  border:1px solid var(--brand-border);
}
.survey-admin-actions a:active{
  transform:translateY(1px);
}
@media(max-width:420px){
  .survey-admin-actions{
    grid-template-columns:1fr;
  }
  .survey-admin-actions a{
    min-height:50px;
    font-size:16px;
  }
}

/* v1.8.1 YouTube Live Video Overlay - rotated landscape */
.mapp-live-video-wide-btn-v181{display:inline-flex;align-items:center;justify-content:center;width:auto;min-width:82px;margin:7px 0 0 auto;border:1px solid rgba(17,24,39,.16);border-radius:999px;background:rgba(255,255,255,.92);color:#374151;font-size:12px;line-height:1;font-weight:900;padding:8px 11px;box-shadow:0 3px 8px rgba(15,23,42,.08);cursor:pointer}
.mapp-live-video-wide-btn-v181::before{content:'↔';margin-right:4px;font-size:12px}
.mapp-live-video-wide-btn-v181:active{transform:scale(.98)}
.mapp-live-frame-placeholder-v181{display:none!important}
.mapp-live-overlay-open-v181{overflow:hidden!important}
.mapp-live-video-overlay-v181{position:fixed;inset:0;z-index:99999;overflow:hidden;background:#000}
.mapp-live-video-backdrop-v181{position:absolute;inset:0;z-index:0;background:#000}
.mapp-live-video-box-v181{position:absolute;z-index:1;background:#000}
.mapp-live-video-frame-v181{position:absolute;background:#000;overflow:hidden}
.mapp-live-video-frame-v181 iframe,.mapp-live-frame-moved-v181{width:100%!important;height:100%!important;display:block!important;border:0!important;background:#000!important}
.mapp-live-video-close-v181{position:absolute;z-index:5;border:0;border-radius:999px;background:rgba(255,255,255,.20);color:#fff;font-size:13px;font-weight:900;padding:9px 13px;cursor:pointer;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}
.mapp-live-video-hint-v181{position:absolute;z-index:4;color:rgba(255,255,255,.74);font-size:12px;text-align:center;line-height:1.35;pointer-events:none}

.mapp-live-video-overlay-v181.is-landscape-v181 .mapp-live-video-box-v181{inset:0;width:100vw;height:100vh}
.mapp-live-video-overlay-v181.is-landscape-v181 .mapp-live-video-frame-v181{left:0;right:0;top:42px;bottom:26px}
.mapp-live-video-overlay-v181.is-landscape-v181 .mapp-live-video-close-v181{top:8px;right:10px}
.mapp-live-video-overlay-v181.is-landscape-v181 .mapp-live-video-hint-v181{left:0;right:0;bottom:5px}

.mapp-live-video-overlay-v181.is-portrait-v181 .mapp-live-video-box-v181{left:50%;top:50%;width:100vh;height:100vw;transform:translate(-50%,-50%) rotate(90deg);transform-origin:center center}
.mapp-live-video-overlay-v181.is-portrait-v181 .mapp-live-video-frame-v181{left:0;right:0;top:42px;bottom:26px}
.mapp-live-video-overlay-v181.is-portrait-v181 .mapp-live-video-close-v181{top:8px;right:10px}
.mapp-live-video-overlay-v181.is-portrait-v181 .mapp-live-video-hint-v181{left:0;right:0;bottom:5px}

@media (max-width:540px),(max-height:540px){
  .mapp-live-video-overlay-v181.is-landscape-v181 .mapp-live-video-frame-v181{top:36px;bottom:0}
  .mapp-live-video-overlay-v181.is-portrait-v181 .mapp-live-video-frame-v181{top:36px;bottom:0}
  .mapp-live-video-hint-v181{display:none}
  .mapp-live-video-close-v181{padding:8px 12px;font-size:12px}
}

/* v1.8.3 MAPP 댓글 감정표현 */
.mapp-comment-reaction-box-v183{
  position:relative;
  margin-top:8px;
  display:flex;
  align-items:center;
  gap:6px;
  flex-wrap:wrap;
  font-size:12px;
  line-height:1.3;
}
.mapp-cr-summary-v183{
  display:flex;
  align-items:center;
  gap:4px;
  flex-wrap:wrap;
}
.mapp-cr-count-v183{
  border:0;
  border-radius:999px;
  background:#f1f5f9;
  color:#334155;
  font-size:12px;
  font-weight:800;
  line-height:1;
  padding:5px 8px;
  cursor:pointer;
}
.mapp-cr-count-v183.active{
  background:#dbeafe;
  color:#1d4ed8;
  box-shadow:0 0 0 1px rgba(37,99,235,.18) inset;
}
.mapp-cr-open-v183{
  border:0;
  background:transparent;
  color:#64748b;
  font-size:12px;
  font-weight:900;
  padding:5px 4px;
  cursor:pointer;
}
.mapp-cr-open-v183:active,
.mapp-cr-count-v183:active,
.mapp-cr-pick-v183:active{
  transform:scale(.98);
}
.mapp-cr-picker-v183{
  display:none;
  position:absolute;
  left:0;
  bottom:28px;
  z-index:50;
  background:#fff;
  border:1px solid #e2e8f0;
  border-radius:18px;
  padding:7px;
  box-shadow:0 12px 28px rgba(15,23,42,.18);
  white-space:nowrap;
  max-width:calc(100vw - 36px);
  overflow-x:auto;
}
.mapp-cr-picker-v183.show{
  display:flex;
  align-items:center;
  gap:4px;
}
.mapp-cr-pick-v183{
  border:0;
  background:transparent;
  border-radius:12px;
  padding:7px 8px;
  min-width:46px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:3px;
  cursor:pointer;
}
.mapp-cr-pick-v183 span{
  font-size:22px;
  line-height:1;
}
.mapp-cr-pick-v183 em{
  font-style:normal;
  font-size:10px;
  font-weight:900;
  color:#475569;
}
.mapp-cr-pick-v183:hover{
  background:#f8fafc;
}
.comment-item{
  overflow:visible;
}
/* v1.8.4 cache bump: no visual change */
/* v1.8.5 update dismiss fix: no visual change */

/* v1.8.6 댓글 감정표현: 버튼을 밖으로 꺼내고 크게 표시 */
.mapp-comment-reaction-box-v183.inline-large-v186{
  margin-top:10px!important;
  display:block!important;
  width:100%!important;
}
.mapp-comment-reaction-box-v183.inline-large-v186 .mapp-cr-summary-v183{
  display:grid!important;
  grid-template-columns:repeat(6,minmax(0,1fr))!important;
  gap:6px!important;
  width:100%!important;
}
.mapp-comment-reaction-box-v183.inline-large-v186 .mapp-cr-count-v183{
  min-height:50px!important;
  border:1px solid #e2e8f0!important;
  border-radius:14px!important;
  background:#fff!important;
  color:#334155!important;
  padding:6px 3px!important;
  display:flex!important;
  flex-direction:column!important;
  align-items:center!important;
  justify-content:center!important;
  gap:2px!important;
  font-weight:900!important;
  box-shadow:0 3px 8px rgba(15,23,42,.04)!important;
}
.mapp-comment-reaction-box-v183.inline-large-v186 .mapp-cr-count-v183 .mapp-cr-emoji-v186{
  font-size:24px!important;
  line-height:1!important;
}
.mapp-comment-reaction-box-v183.inline-large-v186 .mapp-cr-count-v183 em{
  display:block!important;
  font-style:normal!important;
  font-size:9.5px!important;
  line-height:1.1!important;
  color:#64748b!important;
  white-space:nowrap!important;
}
.mapp-comment-reaction-box-v183.inline-large-v186 .mapp-cr-count-v183 b{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  min-width:18px!important;
  height:16px!important;
  border-radius:999px!important;
  background:#f1f5f9!important;
  color:#475569!important;
  font-size:10px!important;
  line-height:1!important;
  padding:0 5px!important;
}
.mapp-comment-reaction-box-v183.inline-large-v186 .mapp-cr-count-v183 b.zero{
  opacity:.45!important;
}
.mapp-comment-reaction-box-v183.inline-large-v186 .mapp-cr-count-v183.active{
  background:#eff6ff!important;
  border-color:#2563eb!important;
  color:#1d4ed8!important;
  box-shadow:0 0 0 1px rgba(37,99,235,.16) inset, 0 5px 12px rgba(37,99,235,.10)!important;
}
.mapp-comment-reaction-box-v183.inline-large-v186 .mapp-cr-count-v183.active em{
  color:#1d4ed8!important;
}
.mapp-comment-reaction-box-v183.inline-large-v186 .mapp-cr-count-v183.active b{
  background:#2563eb!important;
  color:#fff!important;
  opacity:1!important;
}
.mapp-comment-reaction-box-v183.inline-large-v186 .mapp-cr-open-v183,
.mapp-comment-reaction-box-v183.inline-large-v186 .mapp-cr-picker-v183{
  display:none!important;
}
@media(max-width:390px){
  .mapp-comment-reaction-box-v183.inline-large-v186 .mapp-cr-summary-v183{
    gap:4px!important;
  }
  .mapp-comment-reaction-box-v183.inline-large-v186 .mapp-cr-count-v183{
    min-height:47px!important;
    border-radius:12px!important;
  }
  .mapp-comment-reaction-box-v183.inline-large-v186 .mapp-cr-count-v183 .mapp-cr-emoji-v186{
    font-size:22px!important;
  }
  .mapp-comment-reaction-box-v183.inline-large-v186 .mapp-cr-count-v183 em{
    font-size:8.8px!important;
  }
}

/* v1.8.7 댓글 감정표현 모든 댓글 강제 표시 보강 */
.mapp-comment-reaction-box-v183.force-all-v187{
  display:block!important;
  visibility:visible!important;
  opacity:1!important;
}
.mapp-comment-reaction-box-v183.force-all-v187 .mapp-cr-summary-v183{
  display:grid!important;
}
.mapp-comment-reaction-box-v183.force-all-v187 .mapp-cr-count-v183{
  display:flex!important;
  visibility:visible!important;
}

/* v1.8.8 게시글 감정표현 크게 노출 + 댓글 감정표현 대표 이모지 접기 */
.mapp-comment-reaction-box-v183.post-inline-large-v188{
  margin:10px 14px 4px!important;
  padding:10px!important;
  background:#fff!important;
  border:1px solid #e7eee9!important;
  border-radius:16px!important;
  box-shadow:0 4px 12px rgba(15,23,42,.045)!important;
}
.mapp-comment-reaction-box-v183.post-inline-large-v188 .mapp-cr-summary-v183{
  display:grid!important;
  grid-template-columns:repeat(6,minmax(0,1fr))!important;
  gap:6px!important;
}
.mapp-cr-count-v183.post-large-v188{
  min-height:54px!important;
  border:1px solid #e2e8f0!important;
  border-radius:14px!important;
  background:#fff!important;
  color:#334155!important;
  padding:6px 3px!important;
  display:flex!important;
  flex-direction:column!important;
  align-items:center!important;
  justify-content:center!important;
  gap:2px!important;
  font-weight:900!important;
  box-shadow:0 3px 8px rgba(15,23,42,.04)!important;
}
.mapp-cr-count-v183.post-large-v188 .mapp-cr-emoji-v186{
  font-size:25px!important;
  line-height:1!important;
}
.mapp-cr-count-v183.post-large-v188 em{
  display:block!important;
  font-style:normal!important;
  font-size:9.5px!important;
  line-height:1.1!important;
  color:#64748b!important;
  white-space:nowrap!important;
}
.mapp-cr-count-v183.post-large-v188 b{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  min-width:18px!important;
  height:16px!important;
  border-radius:999px!important;
  background:#f1f5f9!important;
  color:#475569!important;
  font-size:10px!important;
  line-height:1!important;
  padding:0 5px!important;
}
.mapp-cr-count-v183.post-large-v188 b.zero{opacity:.45!important;}
.mapp-cr-count-v183.post-large-v188.active{
  background:#eff6ff!important;
  border-color:#2563eb!important;
  color:#1d4ed8!important;
  box-shadow:0 0 0 1px rgba(37,99,235,.16) inset, 0 5px 12px rgba(37,99,235,.10)!important;
}
.mapp-cr-count-v183.post-large-v188.active em{color:#1d4ed8!important;}
.mapp-cr-count-v183.post-large-v188.active b{background:#2563eb!important;color:#fff!important;opacity:1!important;}

.mapp-comment-reaction-box-v183.comment-compact-v188{
  position:relative!important;
  display:inline-flex!important;
  width:auto!important;
  margin-top:7px!important;
}
.mapp-comment-reaction-box-v183.comment-compact-v188 .mapp-cr-summary-v183{
  display:block!important;
}
.mapp-cr-comment-rep-v188{
  min-width:44px!important;
  height:30px!important;
  border:1px solid #e2e8f0!important;
  border-radius:999px!important;
  background:#f8fafc!important;
  color:#334155!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:3px!important;
  padding:0 8px!important;
  box-shadow:0 2px 7px rgba(15,23,42,.05)!important;
}
.mapp-cr-comment-rep-v188 span{
  font-size:18px!important;
  line-height:1!important;
}
.mapp-cr-comment-rep-v188 b{
  font-size:10px!important;
  color:#475569!important;
  line-height:1!important;
}
.mapp-cr-comment-rep-v188.active{
  background:#eff6ff!important;
  border-color:#2563eb!important;
}
.mapp-cr-comment-strip-v188{
  display:none!important;
  position:absolute!important;
  left:0!important;
  bottom:34px!important;
  z-index:80!important;
  gap:5px!important;
  padding:7px!important;
  background:#fff!important;
  border:1px solid #e2e8f0!important;
  border-radius:999px!important;
  box-shadow:0 12px 28px rgba(15,23,42,.18)!important;
  white-space:nowrap!important;
}
.mapp-comment-reaction-box-v183.comment-compact-v188.open-v188 .mapp-cr-comment-strip-v188{
  display:flex!important;
}
.mapp-cr-count-v183.comment-small-v188{
  min-width:34px!important;
  height:34px!important;
  border:0!important;
  border-radius:999px!important;
  background:#f8fafc!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  position:relative!important;
  padding:0!important;
}
.mapp-cr-count-v183.comment-small-v188 span{
  font-size:21px!important;
  line-height:1!important;
}
.mapp-cr-count-v183.comment-small-v188 b{
  position:absolute!important;
  right:-2px!important;
  top:-3px!important;
  min-width:15px!important;
  height:15px!important;
  padding:0 4px!important;
  border-radius:999px!important;
  background:#64748b!important;
  color:#fff!important;
  font-size:9px!important;
  line-height:15px!important;
}
.mapp-cr-count-v183.comment-small-v188.active{
  background:#dbeafe!important;
  box-shadow:0 0 0 2px rgba(37,99,235,.22)!important;
}
.mapp-comment-reaction-box-v183.comment-compact-v188.inline-large-v186 .mapp-cr-count-v183:not(.comment-small-v188){
  display:none!important;
}
@media(max-width:390px){
  .mapp-comment-reaction-box-v183.post-inline-large-v188 .mapp-cr-summary-v183{gap:4px!important;}
  .mapp-cr-count-v183.post-large-v188{min-height:50px!important;border-radius:12px!important;}
  .mapp-cr-count-v183.post-large-v188 .mapp-cr-emoji-v186{font-size:23px!important;}
  .mapp-cr-count-v183.post-large-v188 em{font-size:8.8px!important;}
}

/* v1.8.9 게시글 감정표현도 댓글과 같은 대표 이모지 펼침 방식 + 게시글은 크게 */
.mapp-comment-reaction-box-v183.post-compact-big-v189{
  position:relative!important;
  display:inline-flex!important;
  width:auto!important;
  margin:10px 14px 4px!important;
  padding:8px 0!important;
  z-index:5!important;
}
.mapp-comment-reaction-box-v183.post-compact-big-v189 .mapp-cr-summary-v183,
.mapp-comment-reaction-box-v183.comment-compact-v188 .mapp-cr-summary-v183{
  display:block!important;
}
.mapp-cr-comment-rep-v188.post-rep-big-v189{
  min-width:96px!important;
  height:42px!important;
  border:1px solid #dbe3ea!important;
  border-radius:999px!important;
  background:#fff!important;
  color:#334155!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:6px!important;
  padding:0 13px!important;
  box-shadow:0 4px 12px rgba(15,23,42,.08)!important;
  font-weight:1000!important;
}
.mapp-cr-comment-rep-v188.post-rep-big-v189 span{
  font-size:25px!important;
  line-height:1!important;
}
.mapp-cr-comment-rep-v188.post-rep-big-v189 em{
  display:inline!important;
  font-style:normal!important;
  font-size:12px!important;
  color:#475569!important;
  white-space:nowrap!important;
}
.mapp-cr-comment-rep-v188.post-rep-big-v189 b{
  min-width:18px!important;
  height:18px!important;
  border-radius:999px!important;
  background:#f1f5f9!important;
  color:#475569!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  font-size:10px!important;
  line-height:1!important;
  padding:0 5px!important;
}
.mapp-cr-comment-rep-v188.post-rep-big-v189.active{
  background:#eff6ff!important;
  border-color:#2563eb!important;
  color:#1d4ed8!important;
  box-shadow:0 0 0 1px rgba(37,99,235,.16) inset, 0 5px 14px rgba(37,99,235,.12)!important;
}
.mapp-cr-comment-rep-v188.post-rep-big-v189.active em{
  color:#1d4ed8!important;
}
.mapp-cr-comment-rep-v188.post-rep-big-v189.active b{
  background:#2563eb!important;
  color:#fff!important;
}

.mapp-cr-comment-strip-v188.post-strip-big-v189{
  display:none!important;
  position:absolute!important;
  left:0!important;
  bottom:52px!important;
  z-index:90!important;
  gap:7px!important;
  padding:9px!important;
  background:#fff!important;
  border:1px solid #e2e8f0!important;
  border-radius:999px!important;
  box-shadow:0 14px 32px rgba(15,23,42,.20)!important;
  white-space:nowrap!important;
}
.mapp-comment-reaction-box-v183.post-compact-big-v189.open-v188 .mapp-cr-comment-strip-v188.post-strip-big-v189{
  display:flex!important;
}
.mapp-cr-count-v183.post-pick-big-v189{
  min-width:42px!important;
  height:42px!important;
  border:0!important;
  border-radius:999px!important;
  background:#f8fafc!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  position:relative!important;
  padding:0!important;
}
.mapp-cr-count-v183.post-pick-big-v189 span{
  font-size:26px!important;
  line-height:1!important;
}
.mapp-cr-count-v183.post-pick-big-v189 b{
  position:absolute!important;
  right:-2px!important;
  top:-3px!important;
  min-width:16px!important;
  height:16px!important;
  padding:0 4px!important;
  border-radius:999px!important;
  background:#64748b!important;
  color:#fff!important;
  font-size:9px!important;
  line-height:16px!important;
}
.mapp-cr-count-v183.post-pick-big-v189.active{
  background:#dbeafe!important;
  box-shadow:0 0 0 2px rgba(37,99,235,.24)!important;
}

/* 기존 댓글은 더 작게 유지 */
.mapp-comment-reaction-box-v183.comment-compact-v188{
  margin-top:6px!important;
}
.mapp-cr-comment-rep-v188.comment-rep-small-v189{
  min-width:38px!important;
  height:26px!important;
  padding:0 7px!important;
}
.mapp-cr-comment-rep-v188.comment-rep-small-v189 span{
  font-size:16px!important;
}
.mapp-cr-comment-rep-v188.comment-rep-small-v189 em{
  display:none!important;
}
.mapp-cr-comment-rep-v188.comment-rep-small-v189 b{
  font-size:9px!important;
}
.mapp-cr-comment-strip-v188.comment-strip-small-v189{
  bottom:31px!important;
  padding:6px!important;
  gap:4px!important;
}
.mapp-cr-count-v183.comment-pick-small-v189{
  min-width:31px!important;
  height:31px!important;
}
.mapp-cr-count-v183.comment-pick-small-v189 span{
  font-size:19px!important;
}
@media(max-width:390px){
  .mapp-cr-comment-rep-v188.post-rep-big-v189{
    min-width:88px!important;
    height:40px!important;
    padding:0 11px!important;
  }
  .mapp-cr-comment-rep-v188.post-rep-big-v189 span{
    font-size:24px!important;
  }
  .mapp-cr-comment-rep-v188.post-rep-big-v189 em{
    font-size:11px!important;
  }
  .mapp-cr-count-v183.post-pick-big-v189{
    min-width:39px!important;
    height:39px!important;
  }
  .mapp-cr-count-v183.post-pick-big-v189 span{
    font-size:24px!important;
  }
}

/* v1.9.0 게시글/댓글 감정표현 클릭 저장 피드백 */
.mapp-comment-reaction-box-v183.saving-v190{
  opacity:.72!important;
  pointer-events:none!important;
}
.mapp-comment-reaction-box-v183.saving-v190 .mapp-cr-comment-rep-v188{
  box-shadow:0 0 0 2px rgba(37,99,235,.20)!important;
}

/* v1.9.1 감정표현 누른 사람 보기 */
.mapp-cr-users-btn-v191{
  border:0!important;
  background:transparent!important;
  color:#64748b!important;
  font-weight:900!important;
  cursor:pointer!important;
  white-space:nowrap!important;
}
.mapp-cr-users-btn-v191.post-users-v191{
  height:34px!important;
  padding:0 10px!important;
  margin-left:4px!important;
  border-radius:999px!important;
  background:#f8fafc!important;
  border:1px solid #e2e8f0!important;
  font-size:12px!important;
}
.mapp-cr-users-btn-v191.comment-users-v191{
  height:24px!important;
  padding:0 6px!important;
  margin-left:3px!important;
  font-size:10px!important;
}
.mapp-reaction-users-layer-v191{
  position:fixed!important;
  inset:0!important;
  z-index:9999!important;
}
.mapp-reaction-users-dim-v191{
  position:absolute!important;
  inset:0!important;
  background:rgba(15,23,42,.42)!important;
}
.mapp-reaction-users-sheet-v191{
  position:absolute!important;
  left:10px!important;
  right:10px!important;
  bottom:10px!important;
  max-height:72vh!important;
  background:#fff!important;
  border-radius:22px!important;
  box-shadow:0 20px 60px rgba(15,23,42,.28)!important;
  overflow:hidden!important;
  display:flex!important;
  flex-direction:column!important;
}
.mapp-reaction-users-head-v191{
  display:flex!important;
  align-items:center!important;
  justify-content:space-between!important;
  gap:10px!important;
  padding:15px 16px 12px!important;
  border-bottom:1px solid #eef2f7!important;
}
.mapp-reaction-users-head-v191 strong{
  display:block!important;
  font-size:16px!important;
  color:#0f172a!important;
}
.mapp-reaction-users-head-v191 span{
  display:block!important;
  margin-top:2px!important;
  font-size:12px!important;
  color:#64748b!important;
}
.mapp-reaction-users-head-v191 button{
  border:0!important;
  border-radius:999px!important;
  background:#f1f5f9!important;
  color:#334155!important;
  font-weight:900!important;
  padding:8px 12px!important;
}
.mapp-reaction-users-body-v191{
  padding:12px 14px 16px!important;
  overflow:auto!important;
  -webkit-overflow-scrolling:touch!important;
}
.mapp-reaction-users-loading-v191,
.mapp-reaction-users-empty-v191{
  padding:24px 8px!important;
  text-align:center!important;
  color:#64748b!important;
  font-weight:800!important;
}
.mapp-reaction-users-group-v191{
  margin:0 0 13px!important;
}
.mapp-reaction-users-group-v191 h4{
  display:flex!important;
  align-items:center!important;
  gap:6px!important;
  margin:0 0 8px!important;
  padding:0!important;
  font-size:14px!important;
  color:#0f172a!important;
}
.mapp-reaction-users-group-v191 h4 span{
  font-size:20px!important;
  line-height:1!important;
}
.mapp-reaction-users-group-v191 h4 b{
  font-size:13px!important;
}
.mapp-reaction-users-group-v191 h4 em{
  margin-left:auto!important;
  font-style:normal!important;
  font-size:12px!important;
  color:#64748b!important;
}
.mapp-reaction-users-names-v191{
  display:grid!important;
  gap:6px!important;
}
.mapp-reaction-user-row-v191{
  display:flex!important;
  align-items:center!important;
  gap:8px!important;
  min-height:36px!important;
  padding:7px 9px!important;
  border-radius:12px!important;
  background:#f8fafc!important;
}
.mapp-reaction-user-row-v191 .avatar{
  width:24px!important;
  height:24px!important;
  border-radius:999px!important;
  background:#e0f2fe!important;
  color:#0369a1!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  font-size:12px!important;
  font-weight:1000!important;
}
.mapp-reaction-user-row-v191 .name{
  font-size:13px!important;
  color:#0f172a!important;
  font-weight:900!important;
}
.mapp-reaction-user-row-v191 .id{
  margin-left:auto!important;
  font-size:10px!important;
  color:#94a3b8!important;
}

/* v1.9.2 회원 내 사진 등록 */
.member-profile-card-v192{
  display:flex;
  gap:14px;
  align-items:center;
  padding:10px 0 14px;
}
.member-profile-photo-v192{
  width:76px;
  height:76px;
  border:0;
  border-radius:999px;
  overflow:hidden;
  position:relative;
  background:linear-gradient(135deg,#e0f2fe,#dcfce7);
  box-shadow:0 6px 18px rgba(15,23,42,.12);
  flex:0 0 auto;
  cursor:pointer;
}
.member-profile-photo-v192 img{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}
.member-profile-initial-v192{
  position:absolute;
  inset:0;
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:28px;
  font-weight:1000;
  color:#0f766e;
}
.member-profile-photo-v192:not(.no-photo-v192) .member-profile-initial-v192{
  display:none;
}
.member-profile-photo-v192:after{
  content:'변경';
  position:absolute;
  left:0;
  right:0;
  bottom:0;
  height:23px;
  background:rgba(15,23,42,.56);
  color:#fff;
  font-size:10px;
  font-weight:900;
  display:flex;
  align-items:center;
  justify-content:center;
}
.member-profile-info-v192{
  min-width:0;
  flex:1;
}
.member-profile-name-v192{
  font-size:17px;
  font-weight:1000;
  color:#0f172a;
  margin-bottom:2px;
}
.member-profile-id-v192{
  font-size:12px;
  color:#64748b;
  font-weight:800;
  margin-bottom:9px;
  word-break:break-all;
}
.member-profile-actions-v192{
  display:flex;
  gap:7px;
  flex-wrap:wrap;
}
.btn-light-v192{
  border:1px solid #e2e8f0;
  background:#f8fafc;
  color:#475569;
  border-radius:12px;
  padding:8px 11px;
  font-weight:900;
  cursor:pointer;
}
@media(max-width:380px){
  .member-profile-photo-v192{
    width:68px;
    height:68px;
  }
  .member-profile-name-v192{
    font-size:16px;
  }
}

/* v1.9.4 게시글/댓글 작성자 프로필 아이콘 */
.author-avatar-v194{
  position:relative;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  flex:0 0 auto;
  border-radius:999px;
  overflow:hidden;
  background:linear-gradient(135deg,#e0f2fe,#dcfce7);
  box-shadow:0 2px 8px rgba(15,23,42,.08);
  vertical-align:middle;
}
.author-avatar-v194 img{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}
.author-avatar-v194 em{
  position:absolute;
  inset:0;
  display:flex;
  align-items:center;
  justify-content:center;
  font-style:normal;
  font-weight:1000;
  color:#0f766e;
  line-height:1;
}
.author-avatar-v194:not(.no-photo-v194) em{
  display:none;
}
.author-avatar-xs-v194{
  width:24px;
  height:24px;
}
.author-avatar-xs-v194 em{
  font-size:11px;
}
.author-avatar-sm-v194{
  width:30px;
  height:30px;
}
.author-avatar-sm-v194 em{
  font-size:13px;
}
.author-avatar-md-v194{
  width:38px;
  height:38px;
}
.author-avatar-md-v194 em{
  font-size:16px;
}
.author-avatar-lg-v194{
  width:44px;
  height:44px;
}
.author-avatar-lg-v194 em{
  font-size:18px;
}
.post-row-author-v194{
  display:flex;
  align-items:center;
  gap:7px;
  margin-top:4px;
  min-width:0;
}
.post-row-author-v194 .gnb-board-meta{
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.post-detail-author-v194{
  display:flex;
  align-items:center;
  gap:9px;
  margin-top:6px;
}
.post-detail-author-v194 .post-meta-readable{
  margin-top:0!important;
  display:flex;
  align-items:center;
  gap:6px;
  flex-wrap:wrap;
}
.comment-meta-v194{
  display:flex!important;
  align-items:center!important;
  gap:7px!important;
}
.comment-meta-v194 span{
  min-width:0;
}
@media(max-width:390px){
  .author-avatar-lg-v194{
    width:40px;
    height:40px;
  }
  .author-avatar-sm-v194{
    width:28px;
    height:28px;
  }
}

/* v1.9.5 누가 눌렀나요 목록에도 개인 프로필 사진 아이콘 표시 */
.mapp-reaction-user-row-v191 .author-avatar-v194{
  width:28px!important;
  height:28px!important;
  flex:0 0 28px!important;
  box-shadow:0 2px 7px rgba(15,23,42,.08)!important;
}
.mapp-reaction-user-row-v191 .author-avatar-v194 em{
  font-size:12px!important;
}
.mapp-reaction-user-row-v191 > .avatar{
  display:none!important;
}

/* v1.9.6 밴드식 감정표현 프로필+이모지 미리보기 */
.mapp-comment-reaction-box-v183.band-preview-v196{
  align-items:center!important;
  gap:6px!important;
}
.mapp-comment-reaction-box-v183.band-preview-v196 .mapp-cr-summary-v183{
  display:flex!important;
  align-items:center!important;
  gap:6px!important;
}
.mapp-cr-avatar-stack-v196{
  border:0!important;
  background:transparent!important;
  display:inline-flex!important;
  align-items:center!important;
  padding:0!important;
  margin:0 1px 0 0!important;
  cursor:pointer!important;
}
.mapp-cr-avatar-wrap-v196{
  position:relative!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  margin-left:-7px!important;
}
.mapp-cr-avatar-wrap-v196:first-child{
  margin-left:0!important;
}
.mapp-cr-avatar-wrap-v196 .author-avatar-v194{
  border:2px solid #fff!important;
  box-shadow:0 2px 7px rgba(15,23,42,.16)!important;
}
.mapp-cr-avatar-wrap-v196 i{
  position:absolute!important;
  right:-4px!important;
  bottom:-4px!important;
  width:17px!important;
  height:17px!important;
  border-radius:999px!important;
  background:#fff!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  font-style:normal!important;
  font-size:13px!important;
  line-height:1!important;
  box-shadow:0 1px 5px rgba(15,23,42,.20)!important;
  z-index:2!important;
}
.mapp-cr-avatar-stack-v196.post-stack-v196 .mapp-cr-avatar-wrap-v196{
  margin-left:-8px!important;
}
.mapp-cr-avatar-stack-v196.post-stack-v196 .mapp-cr-avatar-wrap-v196:first-child{
  margin-left:0!important;
}
.mapp-cr-avatar-stack-v196.post-stack-v196 .author-avatar-v194{
  width:36px!important;
  height:36px!important;
}
.mapp-cr-avatar-stack-v196.post-stack-v196 .mapp-cr-avatar-wrap-v196 i{
  width:19px!important;
  height:19px!important;
  font-size:14px!important;
}
.mapp-cr-avatar-stack-v196.comment-stack-v196 .author-avatar-v194{
  width:26px!important;
  height:26px!important;
}
.mapp-cr-avatar-stack-v196.comment-stack-v196 .mapp-cr-avatar-wrap-v196 i{
  width:15px!important;
  height:15px!important;
  font-size:11px!important;
}
.mapp-cr-avatar-more-v196{
  min-width:22px!important;
  height:22px!important;
  padding:0 6px!important;
  margin-left:-5px!important;
  border-radius:999px!important;
  background:#f1f5f9!important;
  color:#475569!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  font-size:10px!important;
  font-weight:1000!important;
  border:2px solid #fff!important;
}
.mapp-comment-reaction-box-v183.band-preview-v196 .mapp-cr-users-btn-v191{
  display:none!important;
}
.mapp-comment-reaction-box-v183.band-preview-v196 .mapp-cr-comment-rep-v188{
  margin-left:0!important;
}

/* v1.9.7 홈 화면 타이틀 커스텀 설정 */
.home-title-setting-v197{
  margin:12px 0 14px;
  padding:12px;
  border:1px solid #e7eee9;
  border-radius:16px;
  background:#fbfdfb;
}
.home-title-setting-v197 .card-title.mini{
  font-size:14px;
  font-weight:1000;
  margin-bottom:4px;
  color:#0f172a;
}

/* v1.9.8 홈 타이틀 역슬래시 보정: 시각 변화 없음 */

/* v1.9.9 섹션 구분 UI 세련화
   많이 쓰이는 모바일 앱의 grouped section / soft card 스타일 */
:root{
  --mapp-section-bg:#f6f8f7;
  --mapp-section-card:#ffffff;
  --mapp-section-line:rgba(45,122,79,.18);
  --mapp-section-accent:var(--brand,#2d7a4f);
  --mapp-section-shadow:0 10px 28px rgba(15,23,42,.055);
}

/* 홈/사진/게시판 공통 섹션을 부드러운 블록으로 구분 */
.home-section,
.board-section,
.photo-section,
.gnb-home-section,
.gnb-photo-section,
.section-card,
.home-board-section,
.photo-board-section{
  position:relative;
  margin:16px 12px 18px!important;
  padding:14px 12px 15px!important;
  border:1px solid rgba(226,232,240,.88)!important;
  border-radius:22px!important;
  background:
    linear-gradient(180deg,rgba(255,255,255,.96),rgba(255,255,255,.90)),
    var(--mapp-section-card)!important;
  box-shadow:var(--mapp-section-shadow)!important;
  overflow:hidden!important;
}

/* 섹션마다 왼쪽 위에 은은한 포인트 면 */
.home-section:before,
.board-section:before,
.photo-section:before,
.gnb-home-section:before,
.gnb-photo-section:before,
.section-card:before,
.home-board-section:before,
.photo-board-section:before{
  content:'';
  position:absolute;
  left:0;
  top:0;
  width:5px;
  height:54px;
  border-radius:0 0 10px 0;
  background:linear-gradient(180deg,var(--mapp-section-accent),rgba(45,122,79,.20));
  opacity:.88;
}

/* 섹션 제목 영역 */
.section-title,
.home-section-title,
.photo-section-title,
.gnb-section-title,
.board-section-title,
.card-title.section-title,
.home-card-title{
  display:flex!important;
  align-items:center!important;
  gap:8px!important;
  margin:0 0 11px!important;
  padding:0 2px 9px 8px!important;
  border-bottom:1px solid rgba(226,232,240,.86)!important;
  color:#0f172a!important;
  font-size:17px!important;
  font-weight:1000!important;
  letter-spacing:-.03em!important;
}

/* 제목 앞 작은 캡슐 포인트 */
.section-title:before,
.home-section-title:before,
.photo-section-title:before,
.gnb-section-title:before,
.board-section-title:before,
.card-title.section-title:before,
.home-card-title:before{
  content:'';
  width:7px;
  height:7px;
  border-radius:999px;
  background:var(--mapp-section-accent);
  box-shadow:0 0 0 4px rgba(45,122,79,.10);
  flex:0 0 auto;
}

/* 제목 오른쪽 더보기 버튼/링크가 있으면 태그처럼 */
.section-more,
.home-section-more,
.photo-section-more,
.gnb-section-more,
[data-section-more],
.btn-more{
  margin-left:auto!important;
  min-height:28px!important;
  padding:0 10px!important;
  border:1px solid rgba(226,232,240,.95)!important;
  border-radius:999px!important;
  background:#f8fafc!important;
  color:#475569!important;
  font-size:12px!important;
  font-weight:900!important;
}

/* 사진탭: 섹션 간 차이를 더 분명하게 */
.photo-section,
.gnb-photo-section,
.photo-board-section{
  margin-top:18px!important;
  padding-top:15px!important;
  background:
    radial-gradient(circle at 16px 12px,rgba(45,122,79,.08),transparent 72px),
    linear-gradient(180deg,#ffffff,#fbfdfb)!important;
}

/* 사진 격자 자체는 섹션 안에서 안정적으로 보이게 */
.photo-section .photo-grid,
.gnb-photo-section .photo-grid,
.photo-board-section .photo-grid,
.gnb-photo-grid,
.photo-grid{
  gap:8px!important;
}

/* 사진 카드가 섹션 블록과 잘 분리되도록 */
.photo-section img,
.gnb-photo-section img,
.photo-board-section img,
.photo-grid img,
.gnb-photo-grid img{
  border-radius:14px!important;
  box-shadow:0 4px 14px rgba(15,23,42,.08)!important;
}

/* 홈의 일반 카드들도 섹션과 충돌하지 않게 살짝 정돈 */
.home-section .post-row-card,
.gnb-home-section .post-row-card,
.section-card .post-row-card{
  border-radius:16px!important;
  background:#fff!important;
}

/* 섹션이 연속될 때 답답하지 않게 */
.home-section + .home-section,
.board-section + .board-section,
.photo-section + .photo-section,
.gnb-photo-section + .gnb-photo-section,
.section-card + .section-card{
  margin-top:20px!important;
}

/* 설정 화면의 섹션 행도 조금 더 구분 */
.home-setting-row,
.board-setting-row,
.photo-setting-row{
  border-radius:18px!important;
  border:1px solid #e2e8f0!important;
  background:#fbfdfb!important;
  box-shadow:0 4px 14px rgba(15,23,42,.035)!important;
}

/* 혹시 기존 섹션이 card 클래스만 쓰는 경우: 메인/사진 화면 안의 카드 제목만 정돈 */
#screen .card > .card-title:first-child{
  letter-spacing:-.03em;
}

/* 너무 좁은 화면에서는 여백 절약 */
@media(max-width:390px){
  .home-section,
  .board-section,
  .photo-section,
  .gnb-home-section,
  .gnb-photo-section,
  .section-card,
  .home-board-section,
  .photo-board-section{
    margin-left:9px!important;
    margin-right:9px!important;
    border-radius:20px!important;
    padding:13px 10px 14px!important;
  }
  .section-title,
  .home-section-title,
  .photo-section-title,
  .gnb-section-title,
  .board-section-title,
  .card-title.section-title,
  .home-card-title{
    font-size:16px!important;
  }
}

/* v2.0.0 사진탭 섹션 헤더: 더보기/업로드 버튼 역할 교체 */
.photo-section .section-title,
.gnb-photo-section .section-title,
.photo-board-section .section-title,
.photo-section-title,
.gnb-photo-section-title,
.photo-tab-section-title,
.photo-section .card-title,
.gnb-photo-section .card-title,
.photo-board-section .card-title{
  font-size:19px!important;
  line-height:1.25!important;
  font-weight:1000!important;
  letter-spacing:-.035em!important;
}

/* 사진탭 섹션 헤더의 액션 영역 간격 정리 */
.photo-section .row-between,
.gnb-photo-section .row-between,
.photo-board-section .row-between,
.photo-section-head,
.gnb-photo-section-head,
.photo-section-header,
.photo-tab-section-head{
  align-items:center!important;
  gap:10px!important;
}

/* 더보기: 이제 주요 액션으로 진한 버튼 */
.photo-section a[href*="photo"],
.gnb-photo-section a[href*="photo"],
.photo-board-section a[href*="photo"],
.photo-section [data-more],
.gnb-photo-section [data-more],
.photo-board-section [data-more],
.photo-section [data-photo-more],
.gnb-photo-section [data-photo-more],
.photo-board-section [data-photo-more],
.photo-section .section-more,
.gnb-photo-section .section-more,
.photo-board-section .section-more,
.photo-section .photo-section-more,
.gnb-photo-section .photo-section-more,
.photo-board-section .photo-section-more,
.photo-section button:has(+ .upload),
.gnb-photo-section button:has(+ .upload){
  font-size:14px!important;
}

/* 텍스트가 '더보기'인 기존 약한 버튼까지 최대한 포괄 */
.photo-section .btn-more,
.gnb-photo-section .btn-more,
.photo-board-section .btn-more,
.photo-section .section-more,
.gnb-photo-section .section-more,
.photo-board-section .section-more,
.photo-section .home-section-more,
.gnb-photo-section .home-section-more,
.photo-board-section .home-section-more,
.photo-section [data-view-more],
.gnb-photo-section [data-view-more],
.photo-board-section [data-view-more]{
  min-height:36px!important;
  padding:0 15px!important;
  border:0!important;
  border-radius:999px!important;
  background:var(--brand,#2d7a4f)!important;
  color:#fff!important;
  font-size:14px!important;
  font-weight:1000!important;
  box-shadow:0 5px 14px rgba(45,122,79,.20)!important;
}

/* 업로드: 기존 더보기처럼 약한 보조 버튼 */
.photo-section .btn-primary,
.gnb-photo-section .btn-primary,
.photo-board-section .btn-primary,
.photo-section .btn-green-sm,
.gnb-photo-section .btn-green-sm,
.photo-board-section .btn-green-sm,
.photo-section [data-photo-upload],
.gnb-photo-section [data-photo-upload],
.photo-board-section [data-photo-upload],
.photo-section [data-upload],
.gnb-photo-section [data-upload],
.photo-board-section [data-upload],
.photo-section .upload-btn,
.gnb-photo-section .upload-btn,
.photo-board-section .upload-btn,
.photo-section .photo-upload-btn,
.gnb-photo-section .photo-upload-btn,
.photo-board-section .photo-upload-btn{
  min-height:36px!important;
  padding:0 13px!important;
  border:1px solid rgba(226,232,240,.95)!important;
  border-radius:999px!important;
  background:#f8fafc!important;
  color:#475569!important;
  font-size:14px!important;
  font-weight:1000!important;
  box-shadow:none!important;
}

/* 사진탭에서 버튼 2개가 같이 있을 때: 더보기 먼저, 업로드 다음 느낌으로 */
.photo-section .section-actions,
.gnb-photo-section .section-actions,
.photo-board-section .section-actions,
.photo-section-actions,
.gnb-photo-section-actions,
.photo-tab-section-actions{
  display:flex!important;
  align-items:center!important;
  gap:7px!important;
  flex-wrap:wrap!important;
}

/* 혹시 업로드가 먼저 렌더링된 경우 CSS order로 더보기 우선 배치 */
.photo-section .section-more,
.gnb-photo-section .section-more,
.photo-board-section .section-more,
.photo-section .photo-section-more,
.gnb-photo-section .photo-section-more,
.photo-board-section .photo-section-more,
.photo-section [data-view-more],
.gnb-photo-section [data-view-more],
.photo-board-section [data-view-more]{
  order:1!important;
}
.photo-section [data-photo-upload],
.gnb-photo-section [data-photo-upload],
.photo-board-section [data-photo-upload],
.photo-section [data-upload],
.gnb-photo-section [data-upload],
.photo-board-section [data-upload],
.photo-section .upload-btn,
.gnb-photo-section .upload-btn,
.photo-board-section .upload-btn,
.photo-section .photo-upload-btn,
.gnb-photo-section .photo-upload-btn,
.photo-board-section .photo-upload-btn{
  order:2!important;
}

/* 모바일에서는 글자가 작아지지 않도록 유지 */
@media(max-width:390px){
  .photo-section .section-title,
  .gnb-photo-section .section-title,
  .photo-board-section .section-title,
  .photo-section-title,
  .gnb-photo-section-title,
  .photo-tab-section-title,
  .photo-section .card-title,
  .gnb-photo-section .card-title,
  .photo-board-section .card-title{
    font-size:18px!important;
  }
  .photo-section .btn-primary,
  .gnb-photo-section .btn-primary,
  .photo-board-section .btn-primary,
  .photo-section .btn-green-sm,
  .gnb-photo-section .btn-green-sm,
  .photo-board-section .btn-green-sm,
  .photo-section .btn-more,
  .gnb-photo-section .btn-more,
  .photo-board-section .btn-more,
  .photo-section .section-more,
  .gnb-photo-section .section-more,
  .photo-board-section .section-more{
    font-size:13px!important;
    min-height:34px!important;
    padding-left:12px!important;
    padding-right:12px!important;
  }
}

/* v2.0.1 사진탭 섹션 타입/동영상 게시판 보강 */
.photo-album-board-section-v201 .board-post-grid{
  margin-top:6px!important;
}
.photo-album-board-section-v201 .board-section-item-card,
.photo-album-board-section-v201 .board-section-thumb-card,
.photo-album-board-section-v201 .board-section-list-card{
  cursor:pointer;
}
.photo-video-section-v201 .home-video-badge,
.photo-video-section-v201 .post-video-badge{
  display:inline-flex!important;
}
.board-category-row-v201{
  margin:10px 12px 14px!important;
}
.photo-setting-row select[data-photo-display-style]{
  font-weight:900;
}
.photo-setting-row .upload-help{
  line-height:1.45;
}
.photo-section-more-link-v201{
  min-height:36px!important;
  padding:0 15px!important;
  border:0!important;
  border-radius:999px!important;
  background:var(--brand,#2d7a4f)!important;
  color:#fff!important;
  font-size:14px!important;
  font-weight:1000!important;
  box-shadow:0 5px 14px rgba(45,122,79,.20)!important;
}

/* v2.0.2 사진보기 섹션 타입 저장/복원 보강 */
.photo-setting-row[data-photo-style-current="video"]{
  border-color:rgba(45,122,79,.28)!important;
}
.photo-setting-row[data-photo-style-current="video"] select[data-photo-display-style]{
  font-weight:1000!important;
  color:#14532d!important;
}

/* v2.0.3 사진탭 섹션 안 썸네일/클릭 복구 */
.photo-section-post-grid-v203{
  display:grid!important;
  gap:10px!important;
}
.photo-section-post-card-v203{
  border:1px solid rgba(226,232,240,.92)!important;
  border-radius:16px!important;
  background:#fff!important;
  overflow:hidden!important;
  padding:0!important;
  text-align:left!important;
  cursor:pointer!important;
  box-shadow:0 4px 14px rgba(15,23,42,.045)!important;
}
.photo-section-post-thumb-v203{
  position:relative!important;
  aspect-ratio:16/9!important;
  background:#e2e8f0!important;
  overflow:hidden!important;
}
.photo-section-post-thumb-v203 img{
  width:100%!important;
  height:100%!important;
  object-fit:cover!important;
  display:block!important;
}
.photo-video-play-v203{
  position:absolute!important;
  left:50%!important;
  top:50%!important;
  transform:translate(-50%,-50%)!important;
  width:42px!important;
  height:42px!important;
  border-radius:999px!important;
  background:rgba(15,23,42,.72)!important;
  color:#fff!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  font-size:18px!important;
  font-weight:1000!important;
  box-shadow:0 6px 16px rgba(15,23,42,.22)!important;
}
.photo-section-post-body-v203{
  padding:9px 10px 10px!important;
  display:flex!important;
  flex-direction:column!important;
  gap:3px!important;
}
.photo-section-post-body-v203 strong{
  font-size:14px!important;
  line-height:1.28!important;
  color:#0f172a!important;
  font-weight:1000!important;
  display:-webkit-box!important;
  -webkit-line-clamp:2!important;
  -webkit-box-orient:vertical!important;
  overflow:hidden!important;
}
.photo-section-post-body-v203 span{
  font-size:11px!important;
  color:#64748b!important;
  font-weight:800!important;
  white-space:nowrap!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
}
.photo-list-card-v203{
  display:grid!important;
  grid-template-columns:108px minmax(0,1fr)!important;
}
.photo-list-card-v203 .photo-section-post-thumb-v203{
  aspect-ratio:1/1!important;
}
.photo-video-card-v203{
  min-width:0!important;
}
@media(max-width:390px){
  .photo-list-card-v203{
    grid-template-columns:96px minmax(0,1fr)!important;
  }
  .photo-section-post-body-v203 strong{
    font-size:13px!important;
  }
}

/* v2.0.4 동영상 섹션 썸네일 보강 */
.photo-video-card-v203 .photo-section-post-thumb-v203{
  background:
    radial-gradient(circle at center, rgba(45,122,79,.16), transparent 55%),
    linear-gradient(135deg,#e2e8f0,#f8fafc)!important;
}
.photo-video-card-v203 .photo-section-post-thumb-v203 img[src*="profile_image.php"]{
  object-fit:contain!important;
  padding:18px!important;
  opacity:.32!important;
}

/* v2.0.5 grouped section / soft card 좌우 마진 축소
   섹션 구분 느낌은 유지하고 콘텐츠 폭을 더 넓게 사용 */
.home-section,
.board-section,
.photo-section,
.gnb-home-section,
.gnb-photo-section,
.section-card,
.home-board-section,
.photo-board-section{
  margin-left:5px!important;
  margin-right:5px!important;
  padding-left:10px!important;
  padding-right:10px!important;
}

/* 사진탭은 특히 썸네일 폭이 중요하므로 더 넓게 */
.photo-section,
.gnb-photo-section,
.photo-board-section,
.photo-album-section{
  margin-left:4px!important;
  margin-right:4px!important;
  padding-left:9px!important;
  padding-right:9px!important;
}

/* 섹션 제목은 너무 가장자리에 붙지 않게 최소 여백만 유지 */
.photo-section .section-title,
.gnb-photo-section .section-title,
.photo-board-section .section-title,
.home-section .section-title,
.board-section .section-title{
  padding-left:6px!important;
  padding-right:0!important;
}

/* 사진 격자와 동영상 카드가 더 넓게 보이도록 */
.photo-section-grid,
.home-photo-grid,
.gnb-photo-grid,
.photo-section-post-grid-v203,
.board-post-grid{
  gap:7px!important;
}

/* 모바일 좁은 화면에서는 거의 풀폭에 가깝게 */
@media(max-width:390px){
  .home-section,
  .board-section,
  .photo-section,
  .gnb-home-section,
  .gnb-photo-section,
  .section-card,
  .home-board-section,
  .photo-board-section,
  .photo-album-section{
    margin-left:3px!important;
    margin-right:3px!important;
    padding-left:8px!important;
    padding-right:8px!important;
  }
}

/* 아주 작은 화면에서는 화면 폭을 최대한 살림 */
@media(max-width:340px){
  .home-section,
  .board-section,
  .photo-section,
  .gnb-home-section,
  .gnb-photo-section,
  .section-card,
  .home-board-section,
  .photo-board-section,
  .photo-album-section{
    margin-left:2px!important;
    margin-right:2px!important;
    padding-left:7px!important;
    padding-right:7px!important;
  }
}

/* v2.0.6 사진탭 버튼 크기 정리 + 하단 메뉴 아이콘 확대 */

/* 사진탭 더보기: 진한 버튼은 유지하되 업로드와 차이가 너무 크지 않게 축소 */
.photo-section .photo-section-more-link-v201,
.gnb-photo-section .photo-section-more-link-v201,
.photo-board-section .photo-section-more-link-v201,
.photo-album-section .photo-section-more-link-v201,
.photo-section [data-photo-section-board],
.gnb-photo-section [data-photo-section-board],
.photo-board-section [data-photo-section-board]{
  min-height:33px!important;
  padding:0 12px!important;
  font-size:13px!important;
  font-weight:950!important;
  border-radius:999px!important;
  background:var(--brand,#2d7a4f)!important;
  color:#fff!important;
  box-shadow:0 4px 10px rgba(45,122,79,.16)!important;
}

/* 사진탭 업로드: 바탕색 제거, 기존 더보기처럼 가벼운 텍스트/라인형 */
.photo-section .photo-section-upload-link,
.gnb-photo-section .photo-section-upload-link,
.photo-board-section .photo-section-upload-link,
.photo-album-section .photo-section-upload-link,
.photo-section [data-photo-upload],
.gnb-photo-section [data-photo-upload],
.photo-board-section [data-photo-upload]{
  min-height:33px!important;
  padding:0 9px!important;
  font-size:13px!important;
  font-weight:900!important;
  border:1px solid rgba(203,213,225,.88)!important;
  border-radius:999px!important;
  background:transparent!important;
  color:#475569!important;
  box-shadow:none!important;
}

/* 사진탭 헤더 버튼 간격 */
.photo-section-head-actions,
.gnb-photo-section-head-actions,
.photo-section .photo-section-head-actions,
.gnb-photo-section .photo-section-head-actions,
.photo-board-section .photo-section-head-actions{
  gap:6px!important;
}

/* 하단 메뉴탭 아이콘 크기 확대 */
.bottom-nav .nav-icon,
.bottom-tab .nav-icon,
.app-bottom-nav .nav-icon,
.mapp-bottom-nav .nav-icon,
.footer-nav .nav-icon,
.tabbar .nav-icon,
.bottom-nav i,
.bottom-tab i,
.app-bottom-nav i,
.mapp-bottom-nav i,
.footer-nav i,
.tabbar i{
  font-size:24px!important;
  line-height:1!important;
}

/* 이모지 아이콘을 span으로 쓰는 경우까지 확대 */
.bottom-nav button > span:first-child,
.bottom-tab button > span:first-child,
.app-bottom-nav button > span:first-child,
.mapp-bottom-nav button > span:first-child,
.footer-nav button > span:first-child,
.tabbar button > span:first-child,
.bottom-nav a > span:first-child,
.bottom-tab a > span:first-child,
.app-bottom-nav a > span:first-child,
.mapp-bottom-nav a > span:first-child,
.footer-nav a > span:first-child,
.tabbar a > span:first-child{
  font-size:24px!important;
  line-height:1!important;
}

/* 하단 메뉴 글자는 기존 가독성 유지 */
.bottom-nav button,
.bottom-tab button,
.app-bottom-nav button,
.mapp-bottom-nav button,
.footer-nav button,
.tabbar button,
.bottom-nav a,
.bottom-tab a,
.app-bottom-nav a,
.mapp-bottom-nav a,
.footer-nav a,
.tabbar a{
  gap:3px!important;
}

/* 좁은 화면에서는 버튼이 너무 커지지 않게 */
@media(max-width:390px){
  .photo-section .photo-section-more-link-v201,
  .gnb-photo-section .photo-section-more-link-v201,
  .photo-board-section .photo-section-more-link-v201,
  .photo-album-section .photo-section-more-link-v201,
  .photo-section [data-photo-section-board],
  .gnb-photo-section [data-photo-section-board],
  .photo-board-section [data-photo-section-board],
  .photo-section .photo-section-upload-link,
  .gnb-photo-section .photo-section-upload-link,
  .photo-board-section .photo-section-upload-link,
  .photo-album-section .photo-section-upload-link,
  .photo-section [data-photo-upload],
  .gnb-photo-section [data-photo-upload],
  .photo-board-section [data-photo-upload]{
    min-height:32px!important;
    font-size:12.5px!important;
  }
  .bottom-nav .nav-icon,
  .bottom-tab .nav-icon,
  .app-bottom-nav .nav-icon,
  .mapp-bottom-nav .nav-icon,
  .footer-nav .nav-icon,
  .tabbar .nav-icon,
  .bottom-nav i,
  .bottom-tab i,
  .app-bottom-nav i,
  .mapp-bottom-nav i,
  .footer-nav i,
  .tabbar i,
  .bottom-nav button > span:first-child,
  .bottom-tab button > span:first-child,
  .app-bottom-nav button > span:first-child,
  .mapp-bottom-nav button > span:first-child,
  .footer-nav button > span:first-child,
  .tabbar button > span:first-child,
  .bottom-nav a > span:first-child,
  .bottom-tab a > span:first-child,
  .app-bottom-nav a > span:first-child,
  .mapp-bottom-nav a > span:first-child,
  .footer-nav a > span:first-child,
  .tabbar a > span:first-child{
    font-size:23px!important;
  }
}

/* v2.0.7 교회 일정 달력 */
.schedule-shortcut-v207{
  display:flex!important;
  align-items:center!important;
  gap:12px!important;
}
.schedule-shortcut-icon-v207{
  width:46px;
  height:46px;
  border-radius:17px;
  display:flex;
  align-items:center;
  justify-content:center;
  background:linear-gradient(135deg,#e0f2fe,#dcfce7);
  font-size:25px;
  flex:0 0 auto;
}
.schedule-shortcut-body-v207{
  min-width:0;
  flex:1;
}
.schedule-shortcut-btn-v207,
.schedule-add-top-v207{
  border:0;
  border-radius:999px;
  background:var(--brand,#2d7a4f);
  color:#fff;
  font-weight:1000;
  padding:0 14px;
  min-height:36px;
  box-shadow:0 5px 14px rgba(45,122,79,.18);
  white-space:nowrap;
}
.schedule-page-v207{
  padding-bottom:16px;
}
.schedule-hero-v207{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:12px;
}
.schedule-calendar-card-v207{
  padding-top:13px!important;
}
.schedule-month-head-v207{
  display:flex;
  align-items:center;
  justify-content:space-between;
  margin-bottom:12px;
}
.schedule-month-head-v207 strong{
  font-size:20px;
  font-weight:1000;
  letter-spacing:-.04em;
}
.schedule-month-head-v207 button{
  width:38px;
  height:38px;
  border:1px solid #e2e8f0;
  border-radius:999px;
  background:#fff;
  font-size:24px;
  font-weight:900;
  color:#334155;
}
.schedule-week-head-v207{
  display:grid;
  grid-template-columns:repeat(7,1fr);
  margin-bottom:6px;
}
.schedule-week-head-v207 span{
  text-align:center;
  font-size:12px;
  font-weight:1000;
  color:#64748b;
}
.schedule-week-head-v207 span:first-child{color:#ef4444}
.schedule-week-head-v207 span:last-child{color:#2563eb}
.schedule-grid-v207{
  display:grid;
  grid-template-columns:repeat(7,1fr);
  gap:5px;
}
.schedule-day-v207{
  min-height:68px;
  border:1px solid #e2e8f0;
  border-radius:15px;
  background:#fff;
  padding:6px 4px;
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:4px;
  overflow:hidden;
  text-align:left;
}
.schedule-day-v207.empty{
  background:transparent;
  border:0;
}
.schedule-day-v207.today{
  border-color:var(--brand,#2d7a4f);
  box-shadow:0 0 0 2px rgba(45,122,79,.10) inset;
}
.schedule-day-v207.has-event{
  background:linear-gradient(180deg,#ffffff,#f8fafc);
}
.day-num-v207{
  font-size:13px;
  font-weight:1000;
  color:#0f172a;
}
.schedule-day-v207 em{
  max-width:100%;
  display:block;
  font-style:normal;
  font-size:10px;
  line-height:1.15;
  color:#334155;
  font-weight:900;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.schedule-dots-v207{
  display:flex;
  align-items:center;
  gap:2px;
  min-height:8px;
}
.schedule-dots-v207 i{
  width:7px;
  height:7px;
  border-radius:999px;
  display:block;
}
.schedule-dots-v207 b{
  font-size:9px;
  color:#64748b;
}
.schedule-day-list-v207,
.schedule-upcoming-v207{
  margin-top:12px!important;
}
.schedule-day-list-title-v207{
  font-size:16px;
  font-weight:1000;
  margin-bottom:8px;
}
.schedule-event-row-v207,
.schedule-upcoming-row-v207{
  width:100%;
  display:flex;
  align-items:center;
  gap:10px;
  border:1px solid #e2e8f0;
  background:#fff;
  border-radius:16px;
  padding:10px;
  margin-top:7px;
  text-align:left;
}
.schedule-event-row-v207 i{
  width:9px;
  align-self:stretch;
  min-height:38px;
  border-radius:999px;
  flex:0 0 auto;
}
.schedule-event-row-v207 span,
.schedule-upcoming-body-v207{
  min-width:0;
  display:flex;
  flex-direction:column;
  gap:3px;
}
.schedule-event-row-v207 strong,
.schedule-upcoming-body-v207 strong{
  font-size:14px;
  color:#0f172a;
  font-weight:1000;
}
.schedule-event-row-v207 em,
.schedule-upcoming-body-v207 em{
  font-style:normal;
  font-size:12px;
  color:#64748b;
  font-weight:800;
}
.datebox-v207{
  width:42px;
  height:46px;
  border-radius:14px;
  background:#f1f5f9;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  flex:0 0 auto;
}
.datebox-v207 strong{
  font-size:11px;
  color:#64748b;
  line-height:1;
}
.datebox-v207 span{
  font-size:18px;
  font-weight:1000;
  color:#0f172a;
  line-height:1.1;
}
.schedule-modal-v207{
  position:fixed;
  inset:0;
  z-index:9999;
  display:flex;
  align-items:flex-end;
  justify-content:center;
}
.schedule-modal-dim-v207{
  position:absolute;
  inset:0;
  background:rgba(15,23,42,.42);
}
.schedule-modal-panel-v207{
  position:relative;
  width:100%;
  max-width:560px;
  max-height:88vh;
  overflow:auto;
  background:#fff;
  border-radius:24px 24px 0 0;
  padding:16px;
  box-shadow:0 -12px 34px rgba(15,23,42,.20);
}
.schedule-modal-head-v207{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:10px;
  margin-bottom:12px;
}
.schedule-modal-head-v207 strong{
  font-size:19px;
  font-weight:1000;
  color:#0f172a;
}
.schedule-modal-head-v207 button{
  width:34px;
  height:34px;
  border:0;
  border-radius:999px;
  background:#f1f5f9;
  font-size:22px;
  font-weight:900;
}
.schedule-form-v207 textarea{
  width:100%;
  box-sizing:border-box;
}
.schedule-form-actions-v207{
  display:flex;
  justify-content:flex-end;
  gap:8px;
  margin-top:12px;
}
.schedule-view-body-v207 p{
  display:flex;
  gap:12px;
  margin:8px 0;
}
.schedule-view-body-v207 b{
  width:44px;
  color:#64748b;
}
.schedule-view-body-v207 span{
  flex:1;
  color:#0f172a;
  font-weight:800;
}
.schedule-view-memo-v207{
  margin-top:12px;
  padding:12px;
  border-radius:16px;
  background:#f8fafc;
  color:#334155;
  line-height:1.55;
}
@media(max-width:390px){
  .schedule-day-v207{
    min-height:62px;
    border-radius:13px;
    padding:5px 3px;
  }
  .schedule-day-v207 em{
    font-size:9px;
  }
  .schedule-grid-v207{
    gap:4px;
  }
  .schedule-shortcut-v207{
    gap:9px!important;
  }
  .schedule-shortcut-btn-v207{
    padding:0 12px;
    min-height:34px;
  }
}


/* v2.0.69 성경 유튜브 장 단위 재생 카드 */
.bible-media-card-v268{
  margin:12px 0 14px;
  border:1px solid rgba(45,122,79,.16);
  background:linear-gradient(180deg,#ffffff,#f7fbf8);
  box-shadow:0 8px 22px rgba(15,23,42,.08);
}
.bible-media-head-v268{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin-bottom:10px;
}
.bible-media-titlebox-v268{min-width:0;}
.bible-media-kicker-v268{
  font-size:12px;
  font-weight:1000;
  color:var(--brand,#2d7a4f);
  margin-bottom:4px;
}
.bible-media-title-v268{
  font-size:16px;
  font-weight:1000;
  color:#111827;
  line-height:1.3;
  word-break:keep-all;
}
.bible-media-help-v268{
  margin-top:4px;
  font-size:12px;
  font-weight:800;
  color:#6b7280;
}
.bible-media-icon-v268{
  width:42px;
  height:42px;
  flex:0 0 auto;
  border-radius:999px;
  background:var(--brand,#2d7a4f);
  color:#fff;
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:16px;
  font-weight:1000;
  box-shadow:0 8px 18px rgba(45,122,79,.20);
}
.bible-media-actions-v268{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
}
.bible-media-play-btn-v268{
  border:1px solid rgba(45,122,79,.22);
  border-radius:999px;
  background:#fff;
  color:var(--brand,#2d7a4f);
  min-height:42px;
  padding:0 14px;
  font-size:14px;
  font-weight:1000;
}
.bible-media-play-btn-v268.primary,
.bible-media-play-btn-v268.playing{
  background:var(--brand,#2d7a4f);
  color:#fff;
  border-color:var(--brand,#2d7a4f);
}
.bible-player-wrap-v268{
  margin-top:12px;
  width:100%;
  border-radius:16px;
  overflow:hidden;
  background:#000;
  box-shadow:0 8px 20px rgba(0,0,0,.14);
}
.bible-player-wrap-v268 iframe{
  display:block;
  width:100%;
  aspect-ratio:16/9;
  border:0;
}
@media(max-width:420px){
  .bible-media-card-v268{margin-top:10px;border-radius:16px;}
  .bible-media-title-v268{font-size:15px;}
  .bible-media-actions-v268{display:grid;grid-template-columns:1fr;}
  .bible-media-play-btn-v268{width:100%;}
}


/* v2.0.70 hymn search simplification: one number/title input + inline move button */
.hymn-controls-v270{padding:13px!important}
.hymn-search-row-v270{display:grid;grid-template-columns:minmax(0,1fr) 86px;gap:9px;align-items:end}
.hymn-search-row-v270 .form-group{margin:0!important;min-width:0}
.hymn-search-go-v270{width:100%;height:52px;min-height:52px;padding:0 10px;font-size:18px;border-radius:14px;white-space:nowrap}
#hymnSearch{width:100%;box-sizing:border-box}
@media(max-width:420px){.hymn-controls-v270{padding:11px!important}.hymn-search-row-v270{grid-template-columns:minmax(0,1fr) 76px;gap:7px}.hymn-search-go-v270{height:50px;min-height:50px;font-size:17px;padding:0 8px}}


/* v2.0.73: 사진 게시물/성경/찬송 하단 좌우 이동 버튼 테마색 연동 */
.post-side-nav,
.bible-fixed-nav .bible-side-nav,
.hymn-side-nav,
.hymn-fixed-nav .hymn-side-nav{
  background:rgba(var(--brand-rgb),.92)!important;
  color:#fff!important;
  box-shadow:0 10px 24px var(--brand-shadow-22)!important;
}
.hymn-swipe-wrap > .hymn-side-nav:not(:disabled){
  background:rgba(var(--brand-rgb),.88)!important;
}
.post-side-nav:disabled,
.bible-fixed-nav .bible-side-nav:disabled,
.hymn-side-nav:disabled,
.hymn-fixed-nav .hymn-side-nav:disabled{
  background:var(--brand-soft)!important;
  color:var(--brand-dark)!important;
  border:1px solid var(--brand-border)!important;
  opacity:.42!important;
  box-shadow:none!important;
}


/* v2.0.75: 찬송가 상단 UI 간소화 + 성경 바로가기 */
.hymn-controls-v275{padding:10px!important;margin-bottom:10px!important}
.hymn-search-row-v275{display:grid!important;grid-template-columns:minmax(0,1fr) 42px 56px 58px 58px!important;gap:6px!important;align-items:center!important}
.hymn-search-row-v275.no-score-toggle-v275{grid-template-columns:minmax(0,1fr) 42px 56px 58px!important}
.hymn-search-row-v275 .form-group{margin:0!important;min-width:0!important}
.hymn-search-row-v275 #hymnSearch{min-height:46px!important;height:46px!important;font-size:16px!important;padding:0 10px!important;border-radius:13px!important}
.hymn-small-btn-v275,.hymn-toggle-btn-v275,.hymn-bible-btn-v275{width:100%;height:46px!important;min-height:46px!important;padding:0 6px!important;border-radius:13px!important;font-size:15px!important;line-height:1!important;white-space:nowrap}
.hymn-toggle-btn-v275,.hymn-bible-btn-v275{background:#fff!important;color:var(--brand-dark)!important;border:1.5px solid rgba(var(--brand-rgb),.38)!important;box-shadow:0 5px 13px rgba(var(--brand-rgb),.10)!important}
.hymn-toggle-btn-v275:active,.hymn-bible-btn-v275:active{background:rgba(var(--brand-rgb),.08)!important}
@media(max-width:420px){
  .hymn-controls-v275{padding:9px!important}
  .hymn-search-row-v275{grid-template-columns:minmax(0,1fr) 38px 50px 52px 52px!important;gap:5px!important}
  .hymn-search-row-v275.no-score-toggle-v275{grid-template-columns:minmax(0,1fr) 38px 50px 52px!important}
  .hymn-search-row-v275 #hymnSearch{height:44px!important;min-height:44px!important;font-size:15px!important;padding:0 9px!important}
  .hymn-small-btn-v275,.hymn-toggle-btn-v275,.hymn-bible-btn-v275{height:44px!important;min-height:44px!important;font-size:14px!important;padding:0 4px!important}
}
@media(max-width:360px){
  .hymn-search-row-v275{grid-template-columns:minmax(0,1fr) 35px 47px 49px 49px!important;gap:4px!important}
  .hymn-search-row-v275.no-score-toggle-v275{grid-template-columns:minmax(0,1fr) 35px 47px 49px!important}
  .hymn-search-row-v275 #hymnSearch{font-size:14px!important;padding:0 8px!important}
  .hymn-small-btn-v275,.hymn-toggle-btn-v275,.hymn-bible-btn-v275{font-size:13px!important}
}


/* v2.0.76: 성경 페이지 상단 이전장/찬송/다음장 3버튼 구조 */
.bible-nav-row-v276{grid-template-columns:1fr .82fr 1fr!important;align-items:stretch}
.bible-hymn-shortcut-v276{background:#fff!important;color:var(--brand-dark)!important;border:1.5px solid rgba(var(--brand-rgb),.38)!important;box-shadow:0 5px 13px rgba(var(--brand-rgb),.10)!important}
.bible-hymn-shortcut-v276:active{background:rgba(var(--brand-rgb),.08)!important}
@media(max-width:360px){.bible-nav-row-v276{grid-template-columns:1fr .72fr 1fr!important;gap:5px}.bible-nav-row-v276 button{font-size:13px!important;padding-left:6px!important;padding-right:6px!important}}

/* v2.0.77 hymn keyboard mode button */
.hymn-keymode-btn-v277{padding-left:0!important;padding-right:0!important;font-size:16px!important;border:1px solid color-mix(in srgb,var(--theme-primary, #5b7f71) 28%, transparent)!important;background:color-mix(in srgb,var(--theme-primary, #5b7f71) 12%, #fff)!important;color:var(--theme-primary-dark, #315447)!important;box-shadow:none!important}
.hymn-keymode-btn-v277.text-mode{background:var(--theme-primary, #5b7f71)!important;color:#fff!important}
@media(max-width:360px){.hymn-keymode-btn-v277{font-size:14px!important}}

/* v2.0.78: 성경 권/장 선택 영역 강조 - 아래 이전장/찬송/다음장보다 크게 */
.bible-controls{padding:12px!important;margin-bottom:12px!important}
.bible-controls > .form-row:first-child{display:grid!important;grid-template-columns:minmax(0,1.35fr) minmax(86px,.65fr)!important;gap:10px!important;align-items:end!important;margin-bottom:11px!important}
.bible-controls > .form-row:first-child .form-group{margin:0!important;min-width:0!important}
.bible-controls > .form-row:first-child .form-label{font-size:15px!important;font-weight:1000!important;color:var(--brand-dark)!important;letter-spacing:-.2px!important;margin-bottom:6px!important}
.bible-controls #bibleBookSelect,
.bible-controls #bibleChapterSelect{height:56px!important;min-height:56px!important;border-radius:15px!important;font-size:20px!important;font-weight:1000!important;color:var(--brand-dark)!important;border:1.5px solid rgba(var(--brand-rgb),.38)!important;background:#fff!important;box-shadow:0 5px 14px rgba(var(--brand-rgb),.08)!important;padding:0 13px!important}
.bible-controls #bibleChapterSelect{text-align:center;text-align-last:center;padding-left:8px!important;padding-right:8px!important}
.bible-nav-row-v276 button{min-height:44px!important;font-size:15px!important;border-radius:13px!important}
@media(max-width:420px){
  .bible-controls{padding:10px!important}
  .bible-controls > .form-row:first-child{grid-template-columns:minmax(0,1.32fr) minmax(78px,.68fr)!important;gap:8px!important;margin-bottom:10px!important}
  .bible-controls > .form-row:first-child .form-label{font-size:14px!important;margin-bottom:5px!important}
  .bible-controls #bibleBookSelect,
  .bible-controls #bibleChapterSelect{height:54px!important;min-height:54px!important;font-size:19px!important;border-radius:14px!important;padding-left:11px!important;padding-right:11px!important}
  .bible-controls #bibleChapterSelect{padding-left:6px!important;padding-right:6px!important}
  .bible-nav-row-v276 button{min-height:42px!important;font-size:14px!important}
}
@media(max-width:360px){
  .bible-controls > .form-row:first-child{grid-template-columns:minmax(0,1.24fr) minmax(72px,.76fr)!important;gap:7px!important}
  .bible-controls #bibleBookSelect,
  .bible-controls #bibleChapterSelect{height:52px!important;min-height:52px!important;font-size:18px!important}
  .bible-nav-row-v276 button{min-height:40px!important;font-size:13px!important}
}

/* v2.0.80: 찬송 유튜브 카드 문구 제거 후 재생 버튼만 간결하게 표시 */
.hymn-media-card-compact-v280{padding:12px!important;}
.hymn-media-head-compact-v280{justify-content:flex-end!important;gap:0!important;}
.hymn-media-card-compact-v280 .hymn-play-btn-v267{min-width:92px;}

/* v2.0.81 교독문 화면 + 성경 페이지 교독문 바로가기 */
.bible-nav-row-v281{grid-template-columns:1fr .92fr .82fr 1fr!important;align-items:stretch}
.bible-responsive-shortcut-v281,.responsive-bible-shortcut-v281{background:#fff!important;color:var(--brand-dark)!important;border:1.5px solid rgba(var(--brand-rgb),.38)!important;box-shadow:0 5px 13px rgba(var(--brand-rgb),.10)!important}
.responsive-hymn-shortcut-v281{background:rgba(var(--brand-rgb),.09)!important;color:var(--brand-dark)!important;border:1.5px solid rgba(var(--brand-rgb),.32)!important;box-shadow:0 5px 13px rgba(var(--brand-rgb),.08)!important}
.responsive-controls-v281 select{font-size:20px!important;font-weight:1000;text-align:center;text-align-last:center}
.responsive-nav-row-v281{grid-template-columns:1fr .82fr .82fr 1fr!important;align-items:stretch}
.responsive-nav-row-v281 button{min-height:44px!important;font-size:15px!important;font-weight:1000;border-radius:13px!important;padding-left:8px!important;padding-right:8px!important}
.responsive-body-v281{padding:14px 13px 16px;line-height:1.68;word-break:keep-all;margin-bottom:62px}
.responsive-subtitle-v281{font-weight:1000;color:var(--brand-dark);font-size:.95em;text-align:center;background:var(--brand-soft);border:1px solid rgba(var(--brand-rgb),.18);border-radius:13px;padding:9px 10px;margin-bottom:12px}
.responsive-line-v281{display:grid;grid-template-columns:58px 1fr;gap:9px;align-items:start;padding:12px 6px;border-bottom:1px solid #eef1ef;font-weight:900}
.responsive-line-v281:last-child{border-bottom:none}
.responsive-role-v281{display:inline-flex;align-items:center;justify-content:center;min-height:28px;border-radius:999px;font-size:.72em;font-weight:1000;letter-spacing:-.2px;background:var(--brand-soft);color:var(--brand-dark);white-space:nowrap}
.responsive-line-v281.congregation .responsive-role-v281{background:#fff1f0;color:#b42318;border:1px solid #ffd2cd}
.responsive-line-v281.leader .responsive-role-v281{background:#eff6ff;color:#175cd3;border:1px solid #cfe2ff}
.responsive-text-v281{font-weight:1000;color:#151515;line-height:1.68}
.responsive-line-v281:nth-child(even){background:linear-gradient(90deg,rgba(var(--brand-rgb),.035),transparent);border-radius:12px}
.responsive-fixed-nav-v281 .bible-side-nav{background:var(--brand)!important;color:#fff!important}
@media(max-width:420px){
  .bible-nav-row-v281{grid-template-columns:1fr .9fr .78fr 1fr!important;gap:5px!important}
  .bible-nav-row-v281 button,.responsive-nav-row-v281 button{min-height:41px!important;font-size:13px!important;padding-left:5px!important;padding-right:5px!important}
  .responsive-nav-row-v281{grid-template-columns:1fr .74fr .74fr 1fr!important;gap:5px!important}
  .responsive-body-v281{padding:12px 10px 14px;line-height:1.62}
  .responsive-line-v281{grid-template-columns:50px 1fr;gap:7px;padding:10px 4px}
  .responsive-role-v281{font-size:.68em;min-height:26px}
}
@media(max-width:350px){
  .bible-nav-row-v281 button,.responsive-nav-row-v281 button{font-size:12px!important;padding-left:4px!important;padding-right:4px!important}
  .responsive-line-v281{grid-template-columns:44px 1fr;gap:6px}
}


/* v2.0.83: 성경/교독문 상단 4버튼 비율 조정 - 이전/다음 작게, 가운데 바로가기 크게 */
.bible-nav-row-v281,
.responsive-nav-row-v281{
  grid-template-columns:.62fr 1.26fr 1.08fr .62fr!important;
  gap:7px!important;
}
.bible-nav-row-v281 button,
.responsive-nav-row-v281 button{
  min-width:0!important;
  white-space:nowrap!important;
}
.bible-nav-row-v281 #biblePrev,
.bible-nav-row-v281 #bibleNext,
.responsive-nav-row-v281 #responsivePrevV281,
.responsive-nav-row-v281 #responsiveNextV281{
  padding-left:5px!important;
  padding-right:5px!important;
  font-size:14px!important;
}
.bible-nav-row-v281 .bible-responsive-shortcut-v281,
.bible-nav-row-v281 .bible-hymn-shortcut-v276,
.responsive-nav-row-v281 .responsive-bible-shortcut-v281,
.responsive-nav-row-v281 .responsive-hymn-shortcut-v281{
  font-size:15px!important;
  font-weight:1000!important;
  padding-left:8px!important;
  padding-right:8px!important;
}
@media(max-width:420px){
  .bible-nav-row-v281,
  .responsive-nav-row-v281{
    grid-template-columns:.56fr 1.30fr 1.08fr .56fr!important;
    gap:5px!important;
  }
  .bible-nav-row-v281 #biblePrev,
  .bible-nav-row-v281 #bibleNext,
  .responsive-nav-row-v281 #responsivePrevV281,
  .responsive-nav-row-v281 #responsiveNextV281{
    font-size:12px!important;
    padding-left:3px!important;
    padding-right:3px!important;
  }
  .bible-nav-row-v281 .bible-responsive-shortcut-v281,
  .bible-nav-row-v281 .bible-hymn-shortcut-v276,
  .responsive-nav-row-v281 .responsive-bible-shortcut-v281,
  .responsive-nav-row-v281 .responsive-hymn-shortcut-v281{
    font-size:13px!important;
    padding-left:5px!important;
    padding-right:5px!important;
  }
}
@media(max-width:350px){
  .bible-nav-row-v281,
  .responsive-nav-row-v281{
    grid-template-columns:.50fr 1.32fr 1.04fr .50fr!important;
    gap:4px!important;
  }
  .bible-nav-row-v281 #biblePrev,
  .bible-nav-row-v281 #bibleNext,
  .responsive-nav-row-v281 #responsivePrevV281,
  .responsive-nav-row-v281 #responsiveNextV281{
    font-size:11px!important;
  }
  .bible-nav-row-v281 .bible-responsive-shortcut-v281,
  .bible-nav-row-v281 .bible-hymn-shortcut-v276,
  .responsive-nav-row-v281 .responsive-bible-shortcut-v281,
  .responsive-nav-row-v281 .responsive-hymn-shortcut-v281{
    font-size:12px!important;
  }
}

/* v2.0.84: 대표설교 글보기 버튼을 정보 영역 오른쪽 작은 버튼으로 배치 */
.sermon-body-compact-v284{display:flex!important;align-items:center!important;justify-content:space-between!important;gap:10px!important;padding:12px 13px!important}
.sermon-info-v284{min-width:0!important;flex:1 1 auto!important}
.sermon-tags-v284{margin-top:7px!important;display:flex!important;flex-wrap:wrap!important;gap:5px!important}
.sermon-view-mini-btn{flex:0 0 auto!important;border:1px solid var(--brand-dark)!important;background:var(--brand-dark)!important;color:#fff!important;border-radius:999px!important;padding:10px 14px!important;font-size:14px!important;font-weight:1000!important;line-height:1!important;box-shadow:0 5px 14px rgba(var(--brand-rgb),.24)!important;white-space:nowrap!important;cursor:pointer!important;min-height:38px!important;display:inline-flex!important;align-items:center!important;justify-content:center!important}
.sermon-view-mini-btn:active{transform:scale(.98)!important;background:var(--brand)!important}
@media(max-width:360px){.sermon-body-compact-v284{gap:7px!important;padding:11px 12px!important}.sermon-view-mini-btn{font-size:13px!important;padding:9px 11px!important;min-height:36px!important}.sermon-tags-v284 .decision-tag{font-size:10.5px!important;padding-left:7px!important;padding-right:7px!important}}
