/* ORATIO 2.85 — shared layout, surfaces and controls. Load after feature CSS.
   Prayer typography and liturgical response formatting retain their own rules. */
:root {
  --ui-width:960px;--ui-gutter:16px;--ui-radius:14px;--ui-gap:16px;
  --danger:#ac2929;
  --surface:var(--bg-elevated);--muted:var(--ink-soft);--wine:var(--accent);--wine-soft:var(--accent-soft);
  --oratio-brand-wine:#8F2328;--oratio-brand-gold:#C28A2C;--oratio-bg:#F7F2EA;--oratio-surface:#FFFDF9;--oratio-surface-soft:#FBF7F0;--oratio-text:#332E2A;--oratio-text-muted:#756A61;--oratio-border:#E6D9C4;--oratio-border-strong:#D7C4A8;--oratio-icon-main:#463E38;--oratio-icon-muted:#84776B;--oratio-icon-accent:#C28A2C;--oratio-radius-sm:10px;--oratio-radius-md:14px;--oratio-radius-lg:20px;--oratio-shadow-soft:0 2px 10px rgba(61,45,30,.06);
  color-scheme:light;
}
:root[data-theme=dark]{--danger:#ffb4ab;--oratio-bg:#12110F;--oratio-surface:#1A1816;--oratio-surface-soft:#211E1B;--oratio-text:#EEE7DF;--oratio-text-muted:#A99E93;--oratio-border:#38322D;--oratio-border-strong:#4A413A;--oratio-icon-main:#E6DED5;--oratio-icon-muted:#AEA299;--oratio-icon-accent:#D3A14C;color-scheme:dark}
@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--danger:#ffb4ab;color-scheme:dark}}
.topbar{width:100%;max-width:var(--layout-max,980px);margin-inline:auto}
/* 2026-09-20: 이 화면도 .screen이라 var(--layout-max)(980px)를 따라야
   하는데, 여기서만 --ui-width(960px)로 다시 좁혀놓아 topbar/bottom-nav와
   폭이 20px 어긋나 있었다. --ui-width 자체는 이 화면 내부 요소들의
   gap/radius 기준값으로도 쓰이므로 값은 그대로 두고, 화면 폭만 분리한다. */
#screen-parish-notice{width:100%;max-width:var(--layout-max,980px);margin-inline:auto;padding-inline:var(--ui-gutter);background:var(--bg)}
.p275-section{border-radius:var(--ui-radius);margin-block:var(--ui-gap);padding:16px;background:var(--bg-elevated);border:1px solid var(--line);box-shadow:none}
.p275-hub{max-width:none;color:var(--ink)}
#parish-stage1-hero{width:100%;aspect-ratio:auto;height:clamp(150px,22vw,230px);min-height:0;border-radius:var(--ui-radius)}
.p275-hero-copy strong{font-size:clamp(22px,3vw,28px)}
.p275-section-head{gap:8px;margin-bottom:10px;align-items:baseline;flex-wrap:wrap}
.p275-section-head h3{font-size:18px;line-height:1.4}
.p275-section-head button{font-size:13px;min-height:36px;color:var(--accent)}
.p275-tabs,.p284-community-tabs{background:var(--bg-elevated);border-color:var(--line);border-radius:var(--ui-radius);gap:4px}
.p275-tabs button,.p284-community-tabs button{min-height:44px;font-size:14px;color:var(--ink-soft)}
.p275-tabs button[aria-selected=true],.p284-community-tabs button[aria-selected=true],.p275-filters button[aria-pressed=true]{background:var(--accent-soft);color:var(--accent);border-color:var(--line)}
.p275-post-row{padding-block:11px;min-height:48px;gap:8px}
.p275-post-row[aria-expanded="true"] .p275-post-title,.p285-feature[aria-expanded="true"] strong{color:var(--accent)}
.p275-post-title{font-size:15px;line-height:1.45;white-space:normal;overflow-wrap:anywhere}
.p275-post-date{font-size:12px;color:var(--ink-soft)}
.p275-kind{background:var(--accent-soft);color:var(--accent);font-size:11px}
.p275-new{background:none;color:var(--accent);font-size:11px;padding:0;white-space:nowrap}
.p275-pin{color:var(--ink-soft);font-size:15px}
.p275-quick{grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}
.p275-quick button{min-height:54px;padding:8px 4px;gap:4px;border-radius:10px;background:var(--bg-elevated)}
.p275-quick button b{font-size:12px}.p275-quick button span{font-size:16px}
.p275-prayer-section .prayer-row,.p275-prayer-section .row{box-shadow:none}
.p275-photo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(210px,48%),1fr));gap:12px}
.p275-photo-card{min-width:0;border:1px solid var(--line);border-radius:var(--ui-radius);overflow:hidden;background:var(--bg-elevated);color:var(--ink);text-align:left;padding:0;cursor:pointer}
.p275-photo-card img,.p275-photo-placeholder{display:block;width:100%;aspect-ratio:4/3;height:auto;object-fit:cover;background:var(--accent-soft)}
.p275-photo-copy{display:grid;gap:4px;padding:10px}.p275-photo-copy b{font-size:15px;overflow-wrap:anywhere}.p275-photo-copy small{font-size:12px;color:var(--ink-soft)}
.p285-feature{display:block;width:100%;padding:8px 0;border:0;background:none;text-align:left;color:var(--ink);font:inherit;cursor:pointer}
.p285-feature small{color:var(--ink-soft);font-size:12px}.p285-feature strong{display:block;font-size:18px;margin-block:6px}.p285-feature p{font-size:14px;line-height:1.65;margin:0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.p285-detail{padding-block:12px}.p285-back{margin-bottom:12px}.p285-detail .p275-article{border-radius:var(--ui-radius);background:var(--bg-elevated);padding:20px}
.p275-article-body{font-size:16px;line-height:1.8;overflow-wrap:anywhere}.p275-article-body figure{margin:24px 0}.p275-article-body img{display:block;max-width:100%;height:auto;margin-inline:auto;border-radius:8px}.p275-article-body figcaption{font-size:14px;line-height:1.6;color:var(--ink-soft);text-align:center;margin-top:8px;white-space:pre-wrap}.p275-article-body img[role=button]{cursor:zoom-in}
.p285-album-nav{display:flex;justify-content:space-between;gap:8px;margin-block:20px}
.p285-back,.p285-album-nav button,.oratio-dialog button,.p285-lightbox button{font:inherit;min-height:44px;padding:9px 14px;border-radius:10px;border:1px solid var(--line);background:var(--bg-elevated);color:var(--accent);cursor:pointer}
.oratio-dialog,.p285-lightbox{border:1px solid var(--line);border-radius:var(--ui-radius);padding:20px;background:var(--bg-elevated);color:var(--ink);width:calc(100% - 32px);max-width:480px;max-height:90dvh;overflow:auto}
.oratio-dialog::backdrop,.p285-lightbox::backdrop{background:rgb(0 0 0 / .7)}
.oratio-dialog h2{font-size:20px}.oratio-dialog .delete-title{font-weight:700;overflow-wrap:anywhere}.oratio-dialog .danger{color:var(--danger)}
.p285-lightbox{max-width:1100px}.p285-lightbox img{display:block;max-height:65dvh;max-width:100%;margin:auto;object-fit:contain}.p285-lightbox nav{display:flex;justify-content:space-between;align-items:center;gap:8px}.p285-lightbox [data-caption]{text-align:center;white-space:pre-wrap}
button:disabled{opacity:.5;cursor:default}button:focus-visible,a:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--oratio-focus);outline-offset:3px}
/* Admin shares tokens, touch targets and fields with member screens. */
.pa-wrap{max-width:var(--ui-width);padding:20px var(--ui-gutter) 96px}.pa-top{padding:12px max(var(--ui-gutter),calc((100vw - var(--ui-width))/2 + var(--ui-gutter)));min-height:64px}
.pa-card,.pa-panel,.pa-parish-head,.pa-content-card{border-radius:var(--ui-radius);box-shadow:none;background:var(--bg-elevated)}
.pa-form input,.pa-form select,.pa-form textarea,.pa-item,.pa-board-tools select,.pa-pick,.pa-board-setting-options input,.pa-board-setting-options select{background:var(--bg-elevated);color:var(--ink);border-color:var(--line);font-size:15px}
.pa-wrap button{min-height:40px;font-family:inherit}.pa-secondary,.pa-upload button{background:var(--accent-soft);color:var(--accent)}.pa-primary{background:var(--accent);color:var(--bg)}
.pa-item-actions button,.pa-content-card-actions button,.pa-board-setting-options button{background:var(--bg-elevated);color:var(--accent);border-color:var(--line)}
.pa-wrap .danger{background:transparent;color:var(--danger);border:1px solid var(--line);border-radius:8px;padding:8px 12px}
.pa-post-management{padding-bottom:12px}.pa-post-management>p,.pa-post-management>button{margin-inline:12px}.pa-post-management p{color:var(--ink-soft);font-size:13px}
.pa-form-actions{display:flex;justify-content:flex-end;bottom:0;padding:12px;padding-bottom:max(12px,env(safe-area-inset-bottom));background:var(--bg-elevated);border-top:1px solid var(--line);border-radius:0;gap:10px}
.pa-form-actions button{min-width:100px;min-height:44px}.pa-post-editor{border:0;padding:0;background:transparent}.pa-status{z-index:100;bottom:90px;border-radius:10px}.pa-status.error{background:var(--danger);color:var(--bg)}
.oratio-rich{border:1px solid var(--line);border-radius:var(--ui-radius);background:var(--bg-elevated);overflow:visible}
.oratio-rich-toolbar{position:sticky;top:64px;z-index:4;display:flex;flex-wrap:wrap;gap:5px;padding:8px;background:var(--bg-elevated);border-bottom:1px solid var(--line)}
.oratio-rich-toolbar button,.rich-photo-tools button{border:1px solid var(--line);border-radius:8px;padding:6px 9px;background:var(--bg-elevated);color:var(--ink);font:inherit;font-size:13px;cursor:pointer;min-height:40px}
.oratio-rich>.pa-help,.rich-upload-state{padding-inline:12px;color:var(--ink-soft);font-size:13px}
.oratio-rich-body{min-height:260px;max-height:none;overflow:visible;padding:16px;font-size:16px;line-height:1.8;background:var(--bg-elevated);color:var(--ink);outline:none}
.oratio-rich-body figure{margin:20px 0;padding:10px;border:1px solid var(--line);border-radius:12px;background:var(--bg-elevated)}
.oratio-rich-body figure img{display:block;max-width:100%;height:auto;max-height:560px;object-fit:contain;margin:auto;border-radius:8px}
.oratio-rich-body figcaption{min-height:42px;padding:8px;white-space:pre-wrap;text-align:center;color:var(--ink-soft);font-size:14px;outline:none}
.oratio-rich-body figcaption:empty::before{content:attr(data-placeholder);color:var(--ink-soft);pointer-events:none}
.rich-photo-tools{display:flex;flex-wrap:wrap;gap:6px;border-top:1px solid var(--line);padding-top:8px}.rich-photo-tools [aria-pressed=true]{color:var(--accent);background:var(--accent-soft)}
.oratio-rich-body [data-removed] img{opacity:.25}.oratio-rich-body [data-removed] figcaption{opacity:.5}.oratio-rich-body [data-removed] [data-action]:not([data-action=remove]){display:none}
.rich-preview{max-width:390px}.rich-preview img{max-width:100%;height:auto}.rich-preview [data-editor-tools]{display:none}
@media(max-width:560px){
 :root{--ui-gutter:12px;--ui-gap:12px}
 .p275-section{padding:12px}.p275-section-head h3{font-size:16px}.p275-post-title{font-size:14px}.p275-post-date{font-size:11px}
 /* V2.91: 휴대폰에서도 분류·제목·날짜를 한 줄에. 긴 제목만 두 줄까지 감싸고 날짜는 오른쪽에 고정 */
 .p275-post-row{grid-template-columns:auto minmax(0,1fr) auto auto 10px;gap:6px;align-items:center}.p275-post-row .p275-post-title{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;white-space:normal;overflow:hidden}.p275-post-date .p275-date-year{display:none}.p275-post-row .p275-row-arrow{display:inline-block}
 .p284-community-tabs{overflow-x:auto;justify-content:flex-start;display:flex}.p284-community-tabs button{flex:0 0 auto;white-space:nowrap;padding-inline:12px}
 .pa-form-actions{display:flex}.pa-form-actions button{flex:1}.oratio-rich-toolbar{overflow-x:auto;flex-wrap:nowrap}.oratio-rich-toolbar button{flex:0 0 auto}
 .p275-article-meta{flex-wrap:wrap}.p285-detail .p275-article{padding:14px}.p285-album-nav button{font-size:13px;padding-inline:8px}
}

/* Daily Communion follows the missal's simple text / or / text layout. */
.communion-variant{margin-block:0 14px;padding:0;border:0}
.prayer-text .communion-variant .ln.rubric{margin:0 0 12px}
.prayer-text .communion-variant .ln.text{margin:0;line-height:1.85}
.communion-or{display:flex;align-items:center;gap:14px;margin:24px 0;color:var(--ink-soft);font-size:14px}
.communion-or::before,.communion-or::after{content:"";height:1px;flex:1;background:var(--line)}
#detail-body>button{min-height:44px;padding:8px 14px;border:1px solid var(--line);border-radius:10px;background:var(--bg-elevated);color:var(--accent);font:inherit}
#detail-body>a{display:inline-block;min-height:44px;padding-block:10px;color:var(--accent)}

/* 2.85.2: Restore the existing complete prayer card. Keep white labels paired
   with a dark card surface; shared link/accent tokens must not recolor it. */
#screen-home .home-master-order{background:linear-gradient(160deg,var(--accent) 0%,var(--hero-to) 100%)}

/* Parish entry only: do not change the prayer card above it. */
#home-parish-section{margin:0 0 18px}
#home-parish-section>.home-head{display:none}
#home-parish-grid{display:block}
.home-parish-entry{display:flex;align-items:center;gap:14px;width:100%;padding:16px;border:1px solid var(--accent);border-radius:14px;background:var(--accent-soft);color:var(--ink);font:inherit;text-align:left;cursor:pointer}
.home-parish-entry-icon{display:grid;place-items:center;flex:0 0 42px;width:42px;height:42px;border-radius:12px;background:var(--bg-elevated)}
.home-parish-entry-icon img{width:28px;height:28px}
.home-parish-entry-copy{display:grid;gap:5px;flex:1;min-width:0}
.home-parish-entry-copy small{color:var(--accent);font-size:12px;font-weight:700}
.home-parish-entry-copy strong{font-size:19px;line-height:1.4;overflow-wrap:anywhere}
.home-parish-entry-copy>span{font-size:12px;line-height:1.5;color:var(--ink-soft)}
.home-parish-entry-action{font-size:14px;font-weight:700;color:var(--accent);white-space:nowrap}
@media(max-width:560px){.home-parish-entry{display:grid;grid-template-columns:42px minmax(0,1fr);gap:10px 12px;padding:14px}.home-parish-entry-icon{grid-column:1;grid-row:1}.home-parish-entry-copy{grid-column:2}.home-parish-entry-action{grid-column:2}.home-parish-entry:not(:has(.home-parish-entry-icon)) .home-parish-entry-copy,.home-parish-entry:not(:has(.home-parish-entry-icon)) .home-parish-entry-action{grid-column:1/-1}}

/* ORATIO UI REWORK 2026-09-18 — icon family / prayer shelf */
.bottom-nav .bn-label{display:inline-block;min-width:0}
.settings-orbit-symbol img,.settings-studio-icon img,.more-master-svg img,.ui-action-icon,.admin-inline-icon,.search-box-icon{display:block;width:20px;height:20px;object-fit:contain}
.settings-orbit-symbol img{width:18px;height:18px}.settings-studio-icon img{width:20px;height:20px}.ui-action-icon{width:18px;height:18px}.admin-inline-icon{width:18px;height:18px;flex:0 0 18px}.search-box-icon{width:18px;height:18px;opacity:.72}
.settings-prayer-intention-edit{display:grid!important;place-items:center!important}
.admin-card-btn,.admin-user-menu-btn{align-items:center}.admin-card-btn:has(>.admin-inline-icon),.admin-user-menu-btn{display:flex;gap:8px}
.cat-card{position:relative!important;display:grid!important;grid-template-columns:24px minmax(0,1fr) auto auto!important;align-items:center!important;gap:9px!important;min-height:54px!important;padding:10px 12px!important;text-align:left!important}
.cat-card .cc-icon{display:grid!important;place-items:center!important;width:22px;height:22px;margin:0!important}.cat-card .cc-icon img{display:block;width:20px;height:20px}.cat-card .cc-name{margin:0!important;font-size:14px!important}.cat-card .qc-sub{font-size:11.5px!important;color:var(--ink-soft)!important;white-space:nowrap}.cat-card .cc-arrow{font-size:17px;color:var(--ink-soft)}
#home-categories-body .home-cat-grid{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:7px!important}
#home-categories-body .home-prayer-shelf-row{display:grid!important;grid-template-columns:22px minmax(0,1fr) auto auto!important;align-items:center!important;gap:8px!important;min-height:52px!important;padding:9px 11px!important;border:1px solid var(--line)!important;border-radius:12px!important;background:var(--bg-elevated)!important;text-align:left!important;box-shadow:none!important}
.home-prayer-shelf-icon{display:grid!important;place-items:center!important;color:var(--oratio-icon-main)!important}.home-prayer-shelf-icon img{width:19px;height:19px;display:block}.home-prayer-shelf-row b{font-size:13px!important;font-weight:700!important;line-height:1.3!important}.home-prayer-shelf-meta{font-size:11px!important;color:var(--ink-soft)!important;white-space:nowrap}.home-prayer-shelf-arrow{font-size:16px!important;color:var(--ink-soft)!important}
#quick-grid.home-cat-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important}#quick-grid.home-cat-grid button{min-height:104px!important}#quick-grid.home-cat-grid button img{width:26px;height:26px}
@media(max-width:760px){#quick-grid.home-cat-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}#quick-grid.home-cat-grid button:last-child{grid-column:auto;max-width:none}.cat-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}}
@media(max-width:420px){#home-categories-body .home-cat-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:7px!important}.cat-card{grid-template-columns:20px minmax(0,1fr) auto!important;gap:6px!important;min-height:68px!important;padding:8px!important}.cat-card .cc-icon{width:20px;height:20px}.cat-card .cc-icon img{width:18px;height:18px}.cat-card .cc-name{font-size:12px!important;line-height:1.3!important;word-break:keep-all}.cat-card .qc-sub{font-size:10.5px!important}.cat-card .cc-arrow{display:none}}

/* UI icon rendering helpers */
.home-master-order-kicker{display:flex;align-items:center;gap:7px}.home-kicker-icon{width:18px;height:18px}.mass-guide-icon{display:grid;place-items:center;flex:0 0 28px;width:28px;height:28px}.mass-guide-icon img{width:23px;height:23px}.about-icon img{width:30px;height:30px}.theme-toggle-glyph{display:block;width:17px;height:17px;border:1.8px solid currentColor;border-radius:50%;position:relative}.theme-toggle-glyph::after{content:"";position:absolute;inset:2px 2px 2px 8px;border-radius:0 9px 9px 0;background:currentColor;opacity:.72}.ghost-btn:has(>.ui-action-icon){display:inline-flex;align-items:center;justify-content:center;gap:6px}
:root[data-theme=dark] img[src*="images/ui/icons/"]{filter:invert(1);opacity:.9}
@media(prefers-color-scheme:dark){:root:not([data-theme=light]) img[src*="images/ui/icons/"]{filter:invert(1);opacity:.9}}

.ms-icon img{display:block;width:28px;height:28px;margin:auto}:root[data-theme=dark] .ms-icon img[src*="images/ui/icons/"]{filter:invert(1);opacity:.92}

/* ORATIO 2.89 — pre-surgery visual-language pass: brand mark, unified nav icons, intention entry rows. */
.topbar h1{display:flex;align-items:center;justify-content:center;gap:7px}
#topbar-title-text{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
/* 2026-09-19 최종: 상단 본당명도 홈/하단과 같은 ORATIO 공통 성당 SVG 사용.
   본당별 공식 로고는 Hero 영역에서만 사용한다. */
.topbar-parish-mark{display:block;width:22px;height:22px;flex:0 0 22px;object-fit:contain;background:transparent;border-radius:0}
.topbar-parish-mark.hidden{display:none!important}
:root[data-theme=dark] .topbar-parish-mark{background:transparent}
@media(max-width:430px){.topbar-parish-mark{width:21px;height:21px;flex-basis:21px}}
.topbar-oratio-mark{width:22px;height:22px;flex:0 0 22px;overflow:visible}
.topbar-oratio-mark.hidden{display:none!important}
.oratio-mark-ring{fill:none;stroke:var(--accent);stroke-width:2.2}
.oratio-mark-cross{fill:none;stroke:var(--gold);stroke-width:2.2;stroke-linecap:round}

.bottom-nav button{font-family:inherit}
.bottom-nav .bn-icon{display:grid;place-items:center;width:24px;height:24px;margin:0 auto;line-height:1;color:currentColor}
.bottom-nav .bn-icon svg{display:block;width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;overflow:visible}
.bottom-nav .bn-label{font-size:10.5px;line-height:1.15;font-weight:650;letter-spacing:-.01em}
#main-bottom-nav button.active .bn-label,#legio-bottom-nav button.active .bn-label{font-weight:800}
#legio-bottom-nav{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));overflow:hidden}
#legio-bottom-nav.hidden{display:none!important}
#legio-bottom-nav button{min-width:0;min-height:58px;padding:6px 1px}
#legio-bottom-nav .bn-icon{width:23px;height:23px}
#legio-bottom-nav .bn-icon svg{width:20px;height:20px}
#legio-bottom-nav .bn-label{font-size:10px}

.home-master-today-list .hl-row.hl-nav{min-height:52px!important;padding-top:7px!important;padding-bottom:7px!important;background:rgba(255,255,255,.055)!important;font-weight:600}
.home-master-today-list .hl-row.hl-nav:hover{background:rgba(255,255,255,.10)!important}
.home-master-today-list .hl-nav-icon{display:grid;place-items:center;flex:0 0 28px;width:28px;height:28px;border:1px solid rgba(255,255,255,.20);border-radius:9px;background:rgba(255,255,255,.10);color:#fff}
.home-master-today-list .hl-nav-icon svg{display:block;width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.home-master-today-list .hl-nav-copy{display:grid;gap:1px;flex:1;min-width:0;text-align:left}
.home-master-today-list .hl-nav-copy .hl-title{display:block;flex:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:800}
.home-master-today-list .hl-nav-desc{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:rgba(255,255,255,.74);font-size:10.5px;font-weight:500;line-height:1.35}
@media(max-width:430px){
  .topbar-oratio-mark{width:20px;height:20px;flex-basis:20px}
  .bottom-nav .bn-icon svg{width:20px;height:20px}
  #legio-bottom-nav .bn-label{font-size:9.5px}
  .home-master-today-list .hl-nav-icon{width:27px;height:27px;flex-basis:27px}
  .home-master-today-list .hl-nav-desc{font-size:10px}
}


/* ORATIO 2.90 — 비회원 기도지향 진입 · 본당/레지오 아이덴티티 정리 */
.bottom-nav .bn-icon img{display:block;width:21px;height:21px;object-fit:contain}

.home-intention-prompts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:10px 0 12px}
.home-intention-prompts.hidden{display:none!important}
.home-intention-prompt{display:grid;grid-template-columns:34px minmax(0,1fr);gap:8px 10px;align-items:center;min-height:78px;padding:11px 12px;border:1px solid rgba(255,255,255,.20);border-radius:12px;background:rgba(255,255,255,.075);color:#fff;text-align:left}
.home-intention-prompt:hover{background:rgba(255,255,255,.12)}
.home-intention-prompt-icon{display:grid;place-items:center;width:34px;height:34px;border-radius:10px;background:rgba(255,255,255,.12)}
.home-intention-prompt-icon img{width:22px;height:22px;filter:brightness(0) invert(1);opacity:.95}
.home-intention-prompt-copy{display:grid;gap:3px;min-width:0}
.home-intention-prompt-copy b{font-size:13.5px}
.home-intention-prompt-copy small{font-size:10.5px;line-height:1.45;color:rgba(255,255,255,.76);word-break:keep-all}
.home-intention-prompt-action{grid-column:2;color:rgba(255,255,255,.92);font-size:10.5px;font-weight:750}

/* 2026-09-20: 이 화면(#screen-intention-entry)도 .screen이므로 원래
   var(--layout-max)(980px)를 따라야 하는데, 여기서만 720px로 다시 좁혀
   놓아서 topbar/bottom-nav(980px)와 폭이 어긋나 있었다. "폼이라 좁게"
   보이고 싶은 의도는 화면 전체가 아니라 폼 카드(.intention-entry-shell)
   에만 주는 것으로 옮긴다 — 화면 폭 자체는 다른 화면과 통일. */
.intention-entry-shell{max-width:640px}
.intention-entry-shell{position:relative;overflow:hidden;margin:8px auto 24px;padding:28px 24px 24px;border:1px solid var(--line);border-radius:22px;background:var(--bg-elevated);box-shadow:var(--shadow)}
.intention-entry-motif{position:absolute;inset:-90px -80px auto auto;width:260px;height:260px;border-radius:50%;opacity:.12;pointer-events:none;background:radial-gradient(circle at 50% 50%,var(--accent) 0 2px,transparent 3px 18px,var(--accent) 19px 20px,transparent 21px 40px,var(--gold) 41px 42px,transparent 43px)}
.intention-entry-shell.is-rosary .intention-entry-motif{opacity:.14;background:radial-gradient(circle at 50% 50%,transparent 0 34px,var(--accent) 35px 37px,transparent 38px 53px,var(--gold) 54px 57px,transparent 58px)}
.intention-entry-kicker{position:relative;color:var(--accent);font-size:12px;font-weight:800;letter-spacing:.04em}
.intention-entry-symbol{position:relative;display:grid;place-items:center;width:58px;height:58px;margin:18px 0 12px;border:1px solid var(--line);border-radius:18px;background:var(--accent-soft)}
.intention-entry-symbol img{width:34px;height:34px;object-fit:contain}
.intention-entry-shell h2{position:relative;margin:0 0 10px;font-size:28px;line-height:1.2}
.intention-entry-lead{position:relative;max-width:620px;margin:0 0 24px;color:var(--ink-soft);font-size:14px;line-height:1.75;word-break:keep-all}
.intention-entry-label{display:block;margin-bottom:7px;font-size:12px;font-weight:800;color:var(--ink)}
.intention-entry-input{display:block;width:100%;min-height:170px;padding:15px;border:1px solid var(--line);border-radius:14px;background:var(--bg);color:var(--ink);font:inherit;font-size:15px;line-height:1.7;resize:vertical}
.intention-entry-input:focus{outline:2px solid color-mix(in srgb,var(--accent) 32%,transparent);border-color:var(--accent)}
.intention-entry-meta{display:flex;justify-content:space-between;gap:12px;margin:8px 2px 18px;color:var(--ink-soft);font-size:10.5px;line-height:1.45}
.intention-entry-meta span:first-child{max-width:75%}
.intention-entry-save{width:100%;min-height:48px}
.intention-entry-cancel{width:100%;margin-top:8px}

@media(max-width:520px){
  .home-intention-prompts{grid-template-columns:1fr}
  .home-intention-prompt{min-height:70px}
  .intention-entry-shell{padding:22px 16px 18px;border-radius:18px}
  .intention-entry-shell h2{font-size:24px}
  .intention-entry-meta{display:grid;gap:4px}
  .intention-entry-meta span:first-child{max-width:none}
}

/* ORATIO 2.90 — 실제 본당 사진이 넓게 보이고 우측 건물까지 살리는 Hero 규칙. */
#screen-parish-notice #parish-stage1-hero{height:clamp(220px,34vw,310px);min-height:220px;aspect-ratio:auto;border-radius:18px}
#screen-parish-notice #parish-stage1-hero .p275-hero-image{object-fit:cover}
#screen-parish-notice #parish-stage1-hero .p275-hero-copy{left:clamp(16px,3.2vw,28px);bottom:clamp(16px,2.8vw,25px)}
@media(max-width:520px){#screen-parish-notice #parish-stage1-hero{height:220px;min-height:220px;border-radius:15px}}
/* V2.91 — 사진 크게 보기(Fancybox): 어르신도 누르기 쉬운 44px 버튼 */
.oratio-photo-viewer{--f-button-width:44px;--f-button-height:44px;--f-button-svg-width:24px;--f-button-svg-height:24px;--f-button-svg-stroke-width:2}
.oratio-photo-viewer .f-counter{font-size:15px}
.oratio-photo-viewer .fancybox__caption{font-size:15px;line-height:1.5;white-space:pre-wrap}
/* V2.91 — 본당 홈 갤러리 슬라이드(Carousel). 라이브러리 전에는 가로 스크롤 목록 */
.p291-home-slider{--f-carousel-slide-width:88%;--f-carousel-gap:10px;--f-carousel-dots-position:relative;--f-carousel-dots-height:32px;--f-carousel-dot-width:8px;--f-carousel-dot-height:8px;--f-carousel-dot-bg:var(--ink-soft,#756b60);--f-carousel-dot-selected-bg:var(--accent,#8a5a2b);--f-carousel-dot-opacity:.45;--f-carousel-dot-selected-opacity:1}
.p291-home-slider:not(.p291-ready){display:flex;gap:10px;overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;scrollbar-width:none}
.p291-home-slider:not(.p291-ready)::-webkit-scrollbar{display:none}
.p291-home-slider:not(.p291-ready)>.f-carousel__slide{flex:0 0 88%;scroll-snap-align:start}
.p291-slide{position:relative;display:block;width:100%;padding:0;border:0;border-radius:var(--ui-radius,14px);overflow:hidden;background:var(--accent-soft,#eee3d3);color:#fff;text-align:left;cursor:pointer}
.p291-slide img,.p291-slide .p275-photo-placeholder{display:block;width:100%;aspect-ratio:16/10;height:auto;object-fit:cover}
.p291-slide .p275-photo-placeholder{display:grid;place-items:center;color:var(--ink-soft,#756b60)}
.p291-slide-copy{position:absolute;inset:auto 0 0 0;padding:32px 14px 12px;background:linear-gradient(transparent,rgb(0 0 0 / .68))}
.p291-slide-copy b{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:16px;line-height:1.35}
.p291-slide-copy small{display:block;margin-top:2px;font-size:13px;opacity:.92}
.p291-slide:focus-visible{outline:3px solid var(--accent,#8a5a2b);outline-offset:2px}
.oratio-photo-viewer .fancybox__backdrop{background:#141416}
/* V2.91 — 갤러리 글쓰기: 앨범 모드(썸네일 격자) */
.oratio-rich.is-album .oratio-rich-body{min-height:96px}
.oratio-album{border-top:1px solid var(--line);padding:12px}
.oratio-album.is-dropping{outline:3px dashed var(--accent);outline-offset:-6px;background:var(--accent-soft)}
.oratio-album-bar{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px}
.oratio-album-bar strong{font-size:15px}
.oratio-album-add{min-height:48px;padding:10px 18px;border:0;border-radius:12px;background:var(--accent);color:#fff;font:inherit;font-size:16px;font-weight:700;cursor:pointer}
.oratio-album-sort{display:flex;gap:6px;margin-left:auto}
.oratio-album-sort button{min-height:40px;padding:6px 12px;border:1px solid var(--line);border-radius:10px;background:var(--bg-elevated);color:var(--ink);font:inherit;font-size:14px;cursor:pointer}
.oratio-album>.pa-help{margin:8px 0 10px;color:var(--ink-soft);font-size:13.5px;line-height:1.55}
.oratio-album-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(104px,1fr));gap:8px}
@media (min-width:720px){.oratio-album-grid{grid-template-columns:repeat(auto-fill,minmax(132px,1fr))}}
.oratio-album-empty{margin:6px 0 0;padding:26px 12px;border:2px dashed var(--line);border-radius:12px;text-align:center;color:var(--ink-soft);font-size:14px}
.album-tile{position:relative;border-radius:10px;overflow:hidden;background:var(--accent-soft);cursor:pointer;touch-action:manipulation;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;outline:none}
.album-tile figure{margin:0}
.album-tile img{display:block;width:100%;aspect-ratio:1/1;object-fit:cover;pointer-events:none}
.album-tile figcaption{display:none}
.album-tile:focus-visible{box-shadow:0 0 0 3px var(--accent)}
.album-no{position:absolute;top:6px;left:6px;min-width:24px;height:24px;padding:0 6px;border-radius:12px;background:rgb(0 0 0 / .62);color:#fff;font-size:13px;font-weight:700;line-height:24px;text-align:center}
.album-star{position:absolute;top:6px;right:6px;display:none;padding:2px 7px;border-radius:10px;background:#f4b400;color:#3a2a00;font-size:12px;font-weight:700}
.album-tile.is-cover{box-shadow:0 0 0 3px #f4b400}.album-tile.is-cover .album-star{display:block}
.album-cap{position:absolute;inset:auto 0 0 0;padding:14px 6px 5px;background:linear-gradient(transparent,rgb(0 0 0 / .66));color:#fff;font-size:11.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.album-cap:empty{display:none}
.album-state{position:absolute;inset:auto 6px 6px 6px;padding:3px 6px;border-radius:8px;background:rgb(255 255 255 / .9);color:#333;font-size:11.5px;text-align:center}
.album-tile.is-failed .album-state{background:#b3261e;color:#fff}
.album-tile.is-removed img{opacity:.3;filter:grayscale(1)}.album-tile.is-removed .album-no{background:#b3261e}
.album-tile.is-ghost{opacity:.35}.album-tile.is-chosen{transform:scale(1.04);box-shadow:0 8px 22px rgb(0 0 0 / .28);z-index:2}
.oratio-rich.is-sorting .album-tile:not(.is-chosen){transition:transform .15s}
.album-sheet{max-width:440px}
.album-sheet header{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}
.album-sheet>img{display:block;width:100%;max-height:42dvh;object-fit:contain;border-radius:10px;background:#111}
.album-sheet label{display:block;margin-top:12px;font-weight:600}
.album-sheet textarea{display:block;width:100%;box-sizing:border-box;margin-top:6px;padding:10px;border:1px solid var(--line);border-radius:10px;font:inherit;font-size:16px;background:var(--bg-elevated);color:var(--ink)}
.album-sheet-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:12px}
.album-sheet-actions [data-do="cover"],.album-sheet-actions [data-do="remove"]{grid-column:1/-1}
.album-sheet .danger{color:#b3261e;border-color:#e3b1ad}
.album-sheet footer{margin-top:12px;display:flex;justify-content:flex-end}
.album-sheet .primary{background:var(--accent);color:#fff;border-color:var(--accent);min-width:96px}
.album-tile.is-broken::after{content:'사진을 불러오지 못했습니다';position:absolute;inset:0;display:grid;place-items:center;padding:8px;text-align:center;font-size:12px;color:var(--ink-soft)}
.oratio-rich-body figure[data-broken]{outline:2px dashed #b3261e}
.album-sheet{box-sizing:border-box;width:calc(100% - 24px)}
/* V2.91 — 앨범 보기: 썸네일 격자. 휴대폰 2열에서 시작해 화면이 넓어지면 3·4·5열로 늘어난다 */
.p291-album{margin-top:14px}
.p291-album-count{margin:0 0 8px;color:var(--ink-soft);font-size:14px}
.p291-album-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(160px,calc(50% - 4px)),1fr));gap:6px}
.p291-album-tile{position:relative;display:block;padding:0;border:0;border-radius:8px;overflow:hidden;background:var(--accent-soft,#eee3d3);cursor:zoom-in;aspect-ratio:1/1}
.p291-album-tile img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .2s}
@media (hover:hover){.p291-album-tile:hover img{transform:scale(1.04)}}
.p291-album-tile:focus-visible{outline:3px solid var(--accent);outline-offset:2px}
.p291-album-tile.is-broken img{visibility:hidden}.p291-album-tile.is-broken::after{content:'사진 없음';position:absolute;inset:0;display:grid;place-items:center;color:var(--ink-soft);font-size:12px}

/* 2.90.36: compact display, expanded touch area. */
.topbar .topbar-account{gap:14px;flex-shrink:0}
.topbar .topbar-account-btn{min-width:30px;min-height:30px;height:30px;padding:4px 6px;flex-shrink:0;touch-action:manipulation;position:relative}
.topbar .topbar-account-btn::before{content:'';position:absolute;inset:-7px}
.topbar .topbar-actions{position:relative;z-index:2;min-width:max-content}
.topbar h1{position:static;min-width:0;pointer-events:none}
@media(max-width:360px){.topbar{gap:4px;padding-left:10px;padding-right:10px}.topbar .topbar-account{gap:12px}.topbar .topbar-account-btn{padding-inline:6px}}
/* V2.91 — 안드로이드(큰 글꼴 설정 등)에서 화면이 옆으로 밀리지 않도록 가로 넘침을 막는다 */
html,body{max-width:100%;overflow-x:hidden}
@supports (overflow:clip){html,body{overflow-x:clip}}
.p275-post-row>*{min-width:0}
/* V2.91 — 새 글 표시(카페식 빨간 N, 3일) */
.p291-n{display:inline-grid;place-items:center;width:16px;height:16px;margin-left:5px;border-radius:50%;background:#e53935;color:#fff;font:800 10px/1 Arial,Helvetica,sans-serif;vertical-align:.12em;flex:none}
.p291-slide-copy .p291-n{width:18px;height:18px;font-size:11px}
.p291-count{display:inline-grid;place-items:center;min-width:17px;height:17px;margin-left:5px;padding:0 5px;box-sizing:border-box;border-radius:9px;background:#e53935;color:#fff;font:800 10.5px/1 Arial,Helvetica,sans-serif;vertical-align:.1em}
.p291-has-new{position:relative}
.p291-has-new::after{content:'';position:absolute;top:7px;right:10px;width:7px;height:7px;border-radius:50%;background:#e53935}
