:root{--bg:#f7f3f1;--surface:#fff;--text:#241c1b;--muted:#74696a;--line:#ebe2df;--brand:#6e3a39;--primary:#6e3a39;--primary-soft:#f2e6e4;--on-primary:#fff;--danger:#c2410c;--danger-soft:#fcebe2;--accent:#b8862b;--cat-worship:#7b3fa0;--cat-worship-soft:#f1e7f7;--cat-event:#c2410c;--cat-event-soft:#fdeadf;--cat-meet:#1d6fa5;--cat-meet-soft:#e3f0f9;--cat-edu:#2f7d4a;--cat-edu-soft:#e3f3e8;--cat-etc:#6b6b73;--cat-etc-soft:#ececef;--on-cat:#fff;--radius:14px;--nav-h:64px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root{--bg:#171312;--surface:#221b1a;--text:#efe7e5;--muted:#a89c9a;--line:#362c2b;--primary:#d9a29e;--primary-soft:#3b2827;--on-primary:#2a1514;--danger:#f0905f;--danger-soft:#3d251a;--accent:#e0b25c;--cat-worship:#c79be3;--cat-worship-soft:#35263f;--cat-event:#f0905f;--cat-event-soft:#3d251a;--cat-meet:#7cb8e3;--cat-meet-soft:#1d2d3a;--cat-edu:#7fcf98;--cat-edu-soft:#1e3324;--cat-etc:#b3b3bb;--cat-etc-soft:#2c2c31;--on-cat:#1a1415;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}*{box-sizing:border-box}html,body{background:var(--bg);color:var(--text);-webkit-tap-highlight-color:transparent;margin:0;font-family:-apple-system,BlinkMacSystemFont,Apple SD Gothic Neo,Malgun Gothic,Noto Sans KR,sans-serif;font-size:16px}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}.app{max-width:560px;min-height:100dvh;margin:0 auto}.content{padding:0 16px calc(var(--nav-h) + 24px + env(safe-area-inset-bottom))}.topbar{z-index:5;padding:calc(8px + env(safe-area-inset-top)) 16px 8px;background:var(--bg);grid-template-columns:56px 1fr 56px;align-items:center;margin:0 -16px;display:grid;position:sticky;top:0}.topbar h1{text-align:center;margin:0;font-size:18px;font-weight:700}.topbar-side.right{justify-content:flex-end;display:flex}.icon-btn{background:0 0;border:0;border-radius:50%;justify-content:center;align-items:center;width:40px;height:40px;font-size:26px;line-height:1;display:inline-flex}.icon-btn.primary{background:var(--primary);color:var(--on-primary);font-size:22px}.text-btn{color:var(--primary);background:0 0;border:0;padding:8px 4px;font-weight:600}.search input{border:1px solid var(--line);background:var(--surface);border-radius:12px;outline:none;width:100%;padding:12px 14px}.search input:focus{border-color:var(--primary)}.chips{flex-wrap:wrap;gap:6px;padding:12px 0 4px;display:flex}.chip{border:1px solid var(--line);background:var(--surface);border-radius:999px;flex:none;padding:7px 14px;font-size:14px}.chip.active{background:var(--primary);border-color:var(--primary);color:var(--on-primary)}.count{color:var(--muted);margin:12px 4px 6px;font-size:13px}.list{background:var(--surface);border-radius:var(--radius);margin:0;padding:0;list-style:none;overflow:hidden}.list li+li{border-top:1px solid var(--line)}.list.compact{background:0 0}.row{align-items:center;gap:12px;padding:12px 14px;display:flex}.list.compact .row{padding:10px 0}.row-main{flex:1;min-width:0}.row-title{font-weight:600}.row-sub{color:var(--muted);margin-top:2px;font-size:14px}.chev{color:var(--muted);font-size:20px}.badge{background:var(--primary-soft);color:var(--primary);vertical-align:2px;border-radius:6px;margin-left:4px;padding:1px 7px;font-size:12px;font-weight:600;display:inline-block}.badge.soft{box-shadow:inset 0 0 0 1px var(--line);color:var(--muted);background:0 0}.avatar{background:var(--primary-soft);width:42px;height:42px;color:var(--primary);border-radius:50%;flex:none;justify-content:center;align-items:center;font-size:14px;font-weight:700;display:flex}.avatar.large{width:76px;height:76px;font-size:22px}.profile{text-align:center;flex-direction:column;align-items:center;padding:12px 0 20px;display:flex}.profile h2{margin:12px 0 4px;font-size:22px}.profile p{color:var(--muted);margin:0}.actions{gap:10px;margin-top:16px;display:flex}.action{background:var(--primary);min-width:96px;color:var(--on-primary);border-radius:12px;padding:10px 18px;font-weight:600}.card{background:var(--surface);border-radius:var(--radius);margin-bottom:12px;padding:16px}.card h3{margin:0 0 8px;font-size:15px}.info{margin:0}.info-row{gap:12px;padding:8px 0;display:flex}.info-row+.info-row{border-top:1px solid var(--line)}.info dt{width:72px;color:var(--muted);flex:none}.info dd{word-break:keep-all;margin:0}.memo,.body-text{white-space:pre-wrap;margin:0;line-height:1.6}.hint{color:var(--muted);margin:8px 0 0;font-size:13px;line-height:1.5}.hint.center{text-align:center;margin:20px 0}.empty{text-align:center;color:var(--muted);padding:40px 0}.danger-btn{background:var(--danger-soft);width:100%;color:var(--danger);border:0;border-radius:12px;margin-top:8px;padding:14px;font-weight:600}.form{flex-direction:column;gap:14px;padding-top:4px;display:flex}.field{flex-direction:column;gap:6px;min-width:0;display:flex}.field>span{color:var(--muted);font-size:14px;font-weight:600}.field input,.field select,.field textarea{border:1px solid var(--line);background:var(--surface);border-radius:12px;outline:none;width:100%;padding:12px}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--primary)}.field select:disabled{opacity:.7}.field-row{gap:10px;display:flex}.field-row>.field{flex:1}.field-row>.field.grow{flex:2}.segmented{gap:8px;display:flex}.segmented button{border:1px solid var(--line);background:var(--surface);border-radius:12px;flex:1;padding:11px}.segmented button.active{background:var(--primary);border-color:var(--primary);color:var(--on-primary)}.error{color:var(--danger);margin:0;font-size:14px}.primary-btn{background:var(--primary);color:var(--on-primary);border:0;border-radius:12px;padding:15px;font-size:16px;font-weight:700}.primary-btn:disabled{opacity:.6}.bday{align-items:center;gap:6px;font-weight:600;display:flex}.today{background:var(--accent);color:var(--on-primary);border-radius:999px;padding:2px 8px;font-size:12px}.card.menu{padding:4px 16px}.menu-item{text-align:left;background:0 0;border:0;justify-content:space-between;align-items:center;width:100%;padding:14px 0;display:flex}.menu-item+.menu-item{border-top:1px solid var(--line)}.menu-item.danger{color:var(--danger)}.role-tag{background:var(--primary-soft);color:var(--primary);border-radius:999px;padding:2px 8px;font-size:12px;font-weight:700;display:inline-block}.role-tag.admin{background:var(--danger-soft);color:var(--danger)}.role-tag.staff{background:var(--primary);color:var(--on-primary)}.role-tag.leader{color:#8a5f12;background:#f6ecd8}@media (prefers-color-scheme:dark){.role-tag.leader{color:var(--accent);background:#3a3020}}.segmented.wrap{flex-wrap:wrap}.segmented.wrap button{flex:40%}.chip.small{padding:5px 12px;font-size:13px}.sub-chips{background:var(--primary-soft);flex-wrap:wrap;gap:6px;margin:8px -16px 0;padding:8px 16px 4px;overflow:visible}.chip-count{opacity:.6;margin-left:4px;font-size:12px}.member-section .group-title{margin:14px 4px 6px}.group-category{color:var(--muted);font-weight:600}.group-count{color:var(--muted);margin-left:2px;font-size:13px;font-weight:400}.section-head{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.section-head h3{margin:0}.text-strong{color:var(--text)}.date-bar{align-items:center;gap:12px;margin-top:12px;display:flex}.date-bar input{border:1px solid var(--line);background:var(--surface);border-radius:12px;flex:1;min-width:0;padding:11px 12px}.date-bar-count{color:var(--muted);flex:none}.date-bar-count strong{color:var(--primary);font-size:22px}.check-list{margin-top:10px}.check-row{text-align:left;background:0 0;border:0;width:100%}.check-row.on{background:var(--primary-soft)}.check{border:2px solid var(--line);width:30px;height:30px;color:var(--on-primary);border-radius:50%;flex:none;justify-content:center;align-items:center;font-weight:700;display:flex}.check-row.on .check{background:var(--primary);border-color:var(--primary)}.card.summary{margin-top:12px;padding:8px 12px 14px}.grid-row{align-items:center;gap:4px;padding:9px 0;display:grid}.grid-row+.grid-row{border-top:1px solid var(--line)}.grid-row.head{color:var(--muted);font-size:11px}.grid-name{white-space:nowrap;text-overflow:ellipsis;font-weight:600;overflow:hidden}.grid-date{text-align:center;letter-spacing:-.5px}.grid-rate{text-align:right;font-size:13px;font-weight:600}.grid-rate.low{color:var(--danger)}.dot{border:2px solid var(--line);border-radius:50%;justify-self:center;width:14px;height:14px;display:block}.dot.on{background:var(--primary);border-color:var(--primary)}.dots-row{justify-content:space-between;display:flex}.dot-col{flex-direction:column;align-items:center;gap:5px;display:flex}.dot-label{color:var(--muted);font-size:11px}.visit-list{flex-direction:column;gap:10px;display:flex}.visit-card{background:var(--surface);border-radius:var(--radius);padding:14px 16px;display:block}.card .visit-card{border-top:1px solid var(--line);border-radius:0;padding:12px 0 0}.visit-head{color:var(--muted);justify-content:space-between;align-items:center;font-size:13px;display:flex}.visit-head .badge{margin:0}.visit-name{margin-top:6px;font-weight:700}.visit-name .row-sub{font-size:13px;font-weight:400}.visit-preview{-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:6px 0;line-height:1.5;display:-webkit-box;overflow:hidden}.member-link{align-items:center;gap:12px;margin-top:4px;display:flex}.greeting{flex-direction:column;gap:2px;margin:4px 4px 14px;display:flex}.greeting strong{font-size:20px}.greeting span{color:var(--muted);font-size:14px}.church-links{gap:8px;margin-bottom:8px;display:flex}.church-link{border-radius:12px;flex:1;justify-content:center;align-items:center;gap:8px;padding:14px 0;font-size:16px;font-weight:700;display:flex}.church-link svg{fill:none;stroke:currentColor;stroke-width:1.8px;stroke-linejoin:round;width:24px;height:24px}.church-link svg .fill{fill:currentColor;stroke:none}.church-link.homepage{background:var(--brand);color:#fff}.church-link.youtube{background:var(--surface);color:var(--text);box-shadow:inset 0 0 0 1.5px var(--line)}.church-link.youtube svg{color:#e62117}.quick-links{gap:8px;margin-bottom:12px;display:flex}.quick-links a{background:var(--surface);text-align:center;border-radius:12px;flex:1;padding:11px 0;font-size:14px;font-weight:600}.bulletin-hero{background:var(--brand);color:#fff;flex-direction:column;gap:4px;display:flex}.bulletin-label{opacity:.85;font-size:13px}.bulletin-title{margin:2px 0;font-size:22px}.bulletin-meta{opacity:.9;font-size:14px}.text-btn.small{padding:0;font-size:14px}.stack{flex-direction:column;gap:12px;display:flex}.pin-tag{background:var(--danger-soft);color:var(--danger);vertical-align:2px;border-radius:6px;margin-right:6px;padding:1px 7px;font-size:12px;font-weight:700;display:inline-block}.worship-list{margin:0;padding:0;list-style:none}.worship-list li{grid-template-columns:1fr auto;grid-template-areas:"name time""name place";padding:8px 0;display:grid}.worship-list li+li{border-top:1px solid var(--line)}.worship-name{grid-area:name;align-self:center;font-weight:600}.worship-time{text-align:right;grid-area:time}.worship-place{text-align:right;color:var(--muted);grid-area:place;font-size:13px}.event-row{align-items:flex-start;gap:12px;display:flex}.event-card{margin-bottom:0;display:block}.event-desc{margin:6px 0 0;font-size:14px;line-height:1.5}.date-box{background:var(--primary-soft);width:46px;height:46px;color:var(--primary);border-radius:12px;flex-direction:column;flex:none;justify-content:center;align-items:center;line-height:1.15;display:flex}.date-box-md{font-size:14px;font-weight:700}.date-box-wd{font-size:11px}.date-box.sun .date-box-wd,.cal-wd.sun,.cal-day.sun{color:var(--danger)}.month-nav{justify-content:space-between;align-items:center;margin-bottom:6px;display:flex}.month-nav strong{font-size:17px}.calendar{text-align:center;grid-template-columns:repeat(7,1fr);gap:2px;display:grid}.cal-wd{color:var(--muted);padding:4px 0;font-size:12px}.cal-day{background:0 0;border:0;border-radius:10px;height:40px;font-size:15px;position:relative}.cal-day.today{color:var(--primary);box-shadow:inset 0 0 0 1.5px var(--primary);font-weight:800}.cal-day.selected{background:var(--primary);color:var(--on-primary)}.cal-dots{justify-content:center;gap:2px;display:flex;position:absolute;bottom:4px;left:0;right:0}.cal-dot{background:var(--cat,var(--accent));border-radius:50%;width:6px;height:6px}.cal-day.selected .cal-dot{box-shadow:0 0 0 1.5px var(--on-primary)}.article-title{margin:6px 0 4px;font-size:20px}.article-body{margin-top:16px}.order-table{margin:0}.order-row{gap:12px;padding:8px 0;display:flex}.order-row+.order-row{border-top:1px dashed var(--line)}.order-row dt{width:72px;color:var(--muted);flex:none}.order-row dd{margin:0}.notice-items{margin:0;padding-left:20px;line-height:1.6}.notice-items li+li{margin-top:6px}.check-field{align-items:center;gap:10px;font-size:15px;display:flex}.check-field input{width:20px;height:20px;accent-color:var(--primary)}textarea.mono{font-size:14px;line-height:1.6}.worship-edit{flex-direction:column;gap:8px;margin:0;display:flex}.worship-edit input{border:1px solid var(--line);background:var(--bg);border-radius:10px;width:100%;min-width:0;padding:10px 12px}.worship-edit-actions{gap:6px;display:flex}.worship-edit-actions button{border:1px solid var(--line);background:0 0;border-radius:8px;flex:1;padding:7px 0;font-size:13px}.worship-edit-actions button:disabled{opacity:.4}.worship-edit-actions .danger{color:var(--danger)}.ghost-btn{border:1.5px dashed var(--line);color:var(--primary);background:0 0;border-radius:12px;padding:13px;font-weight:600}.private-note{margin:0 4px 12px}.bible-card{display:block}.bible-stat{align-items:baseline;gap:10px;margin-bottom:8px;display:flex}.bible-stat strong{color:var(--primary);font-size:28px}.bible-stat span{color:var(--muted);font-size:14px}.progress{background:var(--primary-soft);border-radius:999px;height:8px;overflow:hidden}.progress-fill{background:var(--primary);border-radius:999px;height:100%;transition:width .3s}.bible-card .row-sub,.card>.row-sub{margin-top:10px}.stat-pair{gap:10px;margin-bottom:8px;display:flex}.stat-pair>div{background:var(--bg);border-radius:12px;flex-direction:column;flex:1;align-items:center;padding:10px 0;display:flex}.stat-pair strong{color:var(--primary);font-size:22px}.stat-pair span{color:var(--muted);font-size:13px}.mini-row{border-top:1px solid var(--line);padding:8px 0;display:block}.ghost-btn.block{text-align:center;margin-top:10px;display:block}.ghost-btn.small{padding:8px;font-size:14px}.list-gap{margin-top:12px}.prayer-card{flex-direction:column;gap:10px;margin:0;display:flex}.prayer-main{display:block}.prayer-card.answered .visit-name{color:var(--muted)}.answer-note{background:var(--primary-soft);border-radius:10px;flex-direction:column;gap:2px;margin:8px 0 0;padding:10px 12px;font-size:14px;display:flex}.answer-note strong{color:var(--primary)}.answer-btn{background:var(--primary-soft);color:var(--primary);border:0;border-radius:10px;padding:10px;font-weight:700}.next-card{justify-content:space-between;align-items:center;gap:12px;display:flex}.next-card>div{flex-direction:column;gap:2px;display:flex}.next-card strong{font-size:18px}.primary-btn.small{padding:10px 16px;font-size:15px}.book-list{background:var(--surface);border-radius:var(--radius);margin:12px 0 0;padding:0;list-style:none;overflow:hidden}.book+.book{border-top:1px solid var(--line)}.book-head{text-align:left;background:0 0;border:0;grid-template-columns:1fr auto;gap:6px 10px;width:100%;padding:12px 14px;display:grid}.book-head .progress{grid-column:1/-1;height:5px}.book-name{font-weight:600}.book-name.complete{color:var(--primary)}.book-count{color:var(--muted);font-size:13px}.book.open{background:var(--bg)}.book-body{padding:0 14px 14px}.chapter-grid{grid-template-columns:repeat(auto-fill,minmax(40px,1fr));gap:6px;display:grid}.chapter{border:1px solid var(--line);background:var(--surface);border-radius:10px;height:40px;font-size:14px}.chapter.on{background:var(--primary);border-color:var(--primary);color:var(--on-primary);font-weight:700}.book-actions{gap:8px;margin-top:10px;display:flex}.book-actions button{border:1px solid var(--line);background:0 0;border-radius:8px;flex:1;padding:8px;font-size:13px}.book-actions button:disabled{opacity:.4}.login-tabs{margin:20px 0 16px}.login-form{text-align:left}.login-tabs button{padding:14px;font-size:17px;font-weight:700}.login-form.big .field>span{color:var(--text);font-size:17px}.login-form.big input{letter-spacing:.5px;padding:16px 14px;font-size:22px}.login-form.big input[type=password]{letter-spacing:6px}.login-form.big input::placeholder{letter-spacing:0;font-size:17px}.login-form.big .primary-btn{padding:18px;font-size:20px}.big-error{font-size:16px;line-height:1.5}.login-note{font-size:15px}.login-switch{color:var(--muted);margin-top:4px}.group-title{margin:18px 4px 8px;font-size:15px}.user-card{flex-direction:column;gap:10px;margin:0;display:flex}.user-card.pending{box-shadow:inset 0 0 0 2px var(--danger-soft)}.user-head{align-items:center;gap:6px;display:flex}.user-head .pin-tag,.user-head .badge{margin:0}.user-fields{margin-top:2px}.match-note{background:var(--bg);color:var(--muted);border-radius:10px;margin:0;padding:10px 12px;font-size:14px;line-height:1.55}.match-note.warn{background:var(--danger-soft);color:var(--text)}.match-note.ok{background:var(--primary-soft);color:var(--text)}.reset-btn{color:var(--muted);align-self:flex-start}.org-tree{padding-top:4px}.org-root{border-radius:var(--radius);background:var(--brand);color:#fff;align-items:center;gap:10px;padding:14px 16px;font-size:17px;display:flex}.org-root img{background:#fff;border-radius:4px;width:34px;height:auto}.org-branches{margin:0;padding:10px 0 0 24px;list-style:none;position:relative}.org-branches:before{content:"";background:var(--primary);opacity:.35;width:2px;position:absolute;top:0;bottom:30px;left:11px}.org-branches li{margin-bottom:10px;position:relative}.org-branches li:before{content:"";background:var(--primary);opacity:.35;width:13px;height:2px;position:absolute;top:50%;left:-13px}.org-node{border-left:4px solid var(--primary);background:var(--surface);border-radius:12px;align-items:center;gap:10px;padding:13px 14px;display:flex}.org-name{font-size:16px;font-weight:700}.officer-list{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:8px;display:grid}.officer{background:var(--bg);border-radius:10px;flex-direction:column;gap:2px;padding:10px 12px;display:flex}.officer span{color:var(--muted);font-size:12px}.role-table{border:1px solid var(--line);border-radius:10px;margin:0;overflow:hidden}.role-row{grid-template-columns:minmax(96px,52%) 1fr;display:grid}.role-row+.role-row{border-top:1px solid var(--line)}.role-row dt{background:var(--primary-soft);color:var(--primary);text-align:center;word-break:keep-all;justify-content:center;align-items:center;padding:9px 8px;font-size:14px;font-weight:600;display:flex}.role-row dd{flex-wrap:wrap;align-items:center;gap:4px 12px;margin:0;padding:9px 12px;font-size:15px;display:flex}.team{padding:12px 0}.team+.team{border-top:1px dashed var(--line)}.team-name{color:var(--primary);margin-bottom:8px;font-size:16px;font-weight:700}.team-duty{color:var(--muted);word-break:keep-all;margin:8px 0 0;font-size:14px;line-height:1.55}.team-duty:before{content:"☞ "}.role-table.compact .role-row{grid-template-columns:var(--role-w,64px) 1fr}.role-table.compact dt{white-space:nowrap;padding:9px 6px}.role-row dd.multi{grid-template-columns:repeat(auto-fill, minmax(var(--name-w,111px), 1fr));white-space:nowrap;gap:4px 10px;padding:9px 6px 9px 10px;display:grid}.person-link{color:var(--primary);text-underline-offset:3px;text-decoration:underline}.unit-row{justify-content:space-between;gap:10px;padding:10px 0;display:flex}.unit-row+.unit-row{border-top:1px solid var(--line)}.unit-row strong{font-weight:600}.edit-row{align-items:center;gap:6px;display:flex}.edit-row input{border:1px solid var(--line);background:var(--surface);border-radius:10px;flex:1;min-width:0;padding:10px}.edit-row input.narrow{flex:0 0 30%}.edit-row input.half{flex:0 0 48%}.section-edit{border:1.5px solid var(--line);border-radius:12px;padding:12px}.section-edit .edit-row input{padding:9px 8px;font-size:14px}.team-edit{background:var(--bg);border-radius:10px;flex-direction:column;gap:6px;padding:10px;display:flex}.team-edit textarea{border:1px solid var(--line);background:var(--surface);border-radius:10px;flex:1;width:100%;min-width:0;padding:9px 8px;font-size:14px;line-height:1.5}.mini-label{color:var(--muted);flex:0 0 36px;font-size:13px;font-weight:600}.add-section-row{flex-direction:column;gap:8px;display:flex}.edit-row input.section-title-input{font-weight:700}.edit-row .remove{background:var(--danger-soft);width:36px;height:36px;color:var(--danger);border:0;border-radius:8px;flex:none;font-size:18px}.body-text.small{color:var(--muted);font-size:14px}.header-chips{flex-wrap:wrap;gap:4px;margin:10px 0;display:flex}.header-chips .badge{margin:0}.header-chips .badge.required{background:var(--primary);color:var(--on-primary)}.import-tips{margin:0 0 12px;padding-left:18px;font-size:14px;line-height:1.6}.import-stats{grid-template-columns:repeat(4,1fr);gap:6px;margin-bottom:12px;display:grid}.import-stats>div{background:var(--bg);border-radius:10px;flex-direction:column;align-items:center;padding:10px 0;display:flex}.import-stats strong{color:var(--primary);font-size:20px}.import-stats span{color:var(--muted);font-size:12px}.import-stats .warn strong{color:var(--accent)}.import-stats .bad strong{color:var(--danger)}.import-options{flex-direction:column;gap:10px;margin-bottom:14px;font-size:14px;display:flex}.option-group{background:var(--bg);border-radius:10px;flex-direction:column;gap:6px;padding:10px 12px;display:flex}.option-group>span{font-weight:600}.import-options .check-field{align-items:flex-start;font-size:14px}.import-options .check-field input{flex:none;margin-top:1px}.import-list{margin-top:8px}.import-row{padding:10px 14px}.import-row-head{align-items:center;gap:8px;display:flex}.import-row-head .line-no{color:var(--muted);min-width:34px;font-size:12px}.import-row-head strong{flex:1}.import-row .row-sub{margin:2px 0 0 42px;font-size:13px}.status{border-radius:999px;flex:none;padding:2px 8px;font-size:12px;font-weight:700}.st-new{background:var(--primary-soft);color:var(--primary)}.st-existing{background:var(--bg);color:var(--muted)}.st-error{background:var(--danger-soft);color:var(--danger)}.import-msg{margin:4px 0 0 42px;font-size:13px}.import-msg.warn{color:#9a6a12}.import-msg.bad{color:var(--danger)}@media (prefers-color-scheme:dark){.import-msg.warn{color:var(--accent)}}.import-result ul{margin:0 0 12px;padding-left:18px;line-height:1.8}.block-link{text-align:center;display:block}.dialog-backdrop{z-index:100;background:#00000073;justify-content:center;align-items:center;padding:24px 16px;display:flex;position:fixed;inset:0}.dialog{background:var(--surface);border-radius:16px;width:100%;max-width:400px;padding:22px 18px 16px;box-shadow:0 12px 40px #00000040}.dialog-message{white-space:pre-wrap;word-break:keep-all;margin:0 0 16px;font-size:17px;line-height:1.6}.dialog-input{border:1.5px solid var(--line);background:var(--bg);border-radius:12px;outline:none;width:100%;margin-bottom:16px;padding:14px;font-size:20px}.dialog-input:focus{border-color:var(--primary)}.dialog-buttons{gap:8px;display:flex}.dialog-buttons button{border:0;border-radius:12px;flex:1;padding:14px;font-size:17px;font-weight:700}.dialog-cancel{background:var(--bg);color:var(--text)}.dialog-ok{background:var(--primary);color:var(--on-primary)}.dialog-ok.danger{background:var(--danger);color:#fff}.bottom-nav{z-index:10;height:calc(var(--nav-h) + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom);background:var(--surface);border-top:1px solid var(--line);justify-content:center;display:flex;position:fixed;bottom:0;left:0;right:0}.nav-item{min-width:0;max-width:186px;color:var(--muted);letter-spacing:-.3px;white-space:nowrap;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:3px;font-size:11px;display:flex}.nav-item svg{fill:none;stroke:currentColor;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;width:24px;height:24px}.nav-item.active{color:var(--primary);font-weight:700}.login{max-width:440px;padding:calc(48px + env(safe-area-inset-top)) 16px 32px;text-align:center;margin:0 auto}.login-logo{width:84px;height:auto}.login h1{margin:12px 0 6px;font-size:26px}.login-sub{color:var(--muted);margin:0 0 24px}.login-list{flex-direction:column;gap:10px;display:flex}.login-card{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);text-align:left;padding:16px}.login-card:active{border-color:var(--primary)}.login-card-head{align-items:center;gap:8px;display:flex}.login-card p{color:var(--muted);margin:6px 0 0;font-size:14px;line-height:1.5}.bulletin-tabs button{font-size:16px;font-weight:700}.bulletin-images{flex-direction:column;gap:10px;display:flex}.bulletin-image{border:1px solid var(--line);background:var(--surface);border-radius:12px;width:100%;padding:0;display:block;overflow:hidden}.bulletin-image img{width:100%;height:auto;display:block}.image-edit-list{flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.image-edit{border:1px solid var(--line);background:var(--surface);border-radius:12px;overflow:hidden}.image-edit img{object-fit:contain;background:var(--bg);width:100%;max-height:220px;display:block}.image-loading{text-align:center;color:var(--muted);padding:40px 0;font-size:14px}.image-edit-bar{border-top:1px solid var(--line);align-items:center;gap:6px;padding:8px;display:flex}.image-edit-bar .image-no{flex:1;font-weight:700}.image-edit-bar .ghost-btn.small{white-space:nowrap;border-style:solid}.image-edit-bar .ghost-btn:disabled{opacity:.35}.image-edit-bar .remove{background:var(--danger-soft);width:36px;height:36px;color:var(--danger);border:0;border-radius:8px;flex:none;font-size:18px}.image-viewer{z-index:100;color:#fff;background:#111;flex-direction:column;display:flex;position:fixed;inset:0}.image-viewer-bar,.image-viewer-nav{padding:10px 12px;padding-top:max(10px, env(safe-area-inset-top));background:#000;justify-content:space-between;align-items:center;gap:8px;display:flex}.image-viewer-nav{padding-top:10px;padding-bottom:max(10px, env(safe-area-inset-bottom))}.image-viewer-bar span{opacity:.85;font-size:15px}.image-viewer-bar button,.image-viewer-nav button{color:#fff;background:#222;border:1px solid #555;border-radius:10px;min-height:44px;padding:0 14px;font-size:16px;font-weight:600}.image-viewer-nav button{flex:1}.image-viewer-nav button:disabled{opacity:.35}.image-viewer-body{-webkit-overflow-scrolling:touch;flex-direction:column;flex:1;align-items:flex-start;display:flex;overflow:auto}.image-viewer-body img{flex:none;max-width:none;height:auto;margin:auto 0;display:block}.cat-tag{background:var(--bg);color:var(--primary);border-radius:6px;padding:2px 8px;font-size:13px;font-weight:700;display:inline-block}.business-actions{gap:10px;margin-bottom:12px;display:flex}.business-actions a{text-align:center;flex:1;justify-content:center;align-items:center;text-decoration:none;display:flex}.primary-btn.outline{background:var(--surface);color:var(--primary);border:1.5px solid var(--primary)}.new-tag{color:#fff;vertical-align:2px;background:#e5484d;border-radius:50%;justify-content:center;align-items:center;width:17px;height:17px;margin-left:5px;font-size:11px;font-weight:800;line-height:1;display:inline-flex}.quick-links a{position:relative}.new-dot{color:#fff;background:#e5484d;border-radius:10px;min-width:20px;height:20px;padding:0 6px;font-size:12px;font-weight:800;line-height:20px;position:absolute;top:-6px;right:-4px}.share-btn{border:1.5px solid var(--line);color:#191600;background:#fee500;border-radius:12px;justify-content:center;align-items:center;gap:8px;width:100%;margin-bottom:12px;padding:13px;font-size:16px;font-weight:700;display:flex}.share-btn svg{fill:none;stroke:currentColor;stroke-width:1.8px;width:20px;height:20px}.push-head{justify-content:space-between;align-items:center;gap:12px;margin-bottom:6px;display:flex}.push-head h3{margin:0}.switch{background:var(--line);border:0;border-radius:16px;flex:none;width:56px;height:32px;padding:0;transition:background .2s;position:relative}.switch span{background:#fff;border-radius:50%;width:26px;height:26px;transition:transform .2s;position:absolute;top:3px;left:3px;box-shadow:0 1px 3px #00000040}.switch.on{background:var(--primary)}.switch.on span{transform:translate(24px)}.switch:disabled{opacity:.6}.avatar{overflow:hidden}.avatar.has-photo{background:var(--line)}.avatar img{object-fit:cover;object-position:50% 0%;width:100%;height:100%;display:block}.photo-open{background:0 0;border:0;border-radius:50%;padding:0}.avatar.large{width:96px;height:96px}.photo-actions{gap:14px;margin-top:8px;display:flex}.text-btn.muted{color:var(--muted)}.photo-viewer{z-index:100;padding:max(16px, env(safe-area-inset-top)) 16px max(16px, env(safe-area-inset-bottom));color:#fff;background:#000000e6;flex-direction:column;justify-content:center;align-items:center;gap:16px;display:flex;position:fixed;inset:0}.photo-viewer img{border-radius:12px;max-width:100%;max-height:75vh}.photo-viewer-close{color:#fff;background:#222;border:1px solid #666;border-radius:10px;min-height:44px;padding:0 18px;font-size:16px;font-weight:600}.photo-match-list{margin-top:12px}.photo-match{align-items:flex-start;gap:12px;padding:12px;display:flex}.photo-match+.photo-match{border-top:1px solid var(--line)}.photo-match.dup{background:var(--danger-soft)}.photo-match img{object-fit:cover;object-position:50% 0%;background:var(--line);border-radius:50%;flex:none;width:64px;height:64px}.photo-match-main{flex:1;gap:6px;min-width:0;display:grid}.photo-match-main .row-sub{overflow-wrap:anywhere}.photo-match-main select{width:100%;min-height:44px;font-size:16px}.photo-match .import-msg{margin:0}.import-msg.ok{color:#2f7d4a}.adjust-sheet{z-index:100;padding:max(16px, env(safe-area-inset-top)) 16px max(16px, env(safe-area-inset-bottom));background:#0000008c;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.adjust-box{background:var(--surface);border-radius:16px;gap:14px;width:100%;max-width:360px;padding:18px;display:grid}.adjust-box h3{text-align:center;margin:0}.adjust-preview{place-items:center;min-height:180px;display:grid}.adjust-preview canvas{width:180px;height:180px;box-shadow:0 0 0 3px var(--line);border-radius:50%}.adjust-row,.adjust-actions{grid-template-columns:1fr 1fr;gap:10px;display:grid}.adjust-row button,.adjust-pad button{border:1.5px solid var(--line);background:var(--bg);min-height:48px;color:var(--text,inherit);border-radius:12px;font-size:17px;font-weight:700}.adjust-pad{grid-template-columns:repeat(3,56px);grid-template-areas:".up.""left.right"".down.";justify-content:center;gap:6px;display:grid}.adjust-pad .up{grid-area:up}.adjust-pad .left{grid-area:left}.adjust-pad .right{grid-area:right}.adjust-pad .down{grid-area:down}.cat-worship{--cat:var(--cat-worship);--cat-soft:var(--cat-worship-soft)}.cat-event{--cat:var(--cat-event);--cat-soft:var(--cat-event-soft)}.cat-meet{--cat:var(--cat-meet);--cat-soft:var(--cat-meet-soft)}.cat-edu{--cat:var(--cat-edu);--cat-soft:var(--cat-edu-soft)}.cat-etc{--cat:var(--cat-etc);--cat-soft:var(--cat-etc-soft)}.badge.cat{background:var(--cat-soft);color:var(--cat)}.cat-picker button{justify-content:center;align-items:center;gap:5px;padding-left:6px;padding-right:6px;display:inline-flex}.cat-swatch{background:var(--cat);border-radius:50%;flex:none;width:9px;height:9px}.cat-picker button.active{background:var(--cat);border-color:var(--cat);color:var(--on-cat)}.cat-picker button.active .cat-swatch{background:var(--on-cat)}.st-done{color:#2f7d4a;background:#e3f3e8}.st-wait{background:var(--primary-soft);color:var(--primary)}.st-draft{background:var(--bg);color:var(--muted)}@media (prefers-color-scheme:dark){.st-done{color:#7fcf98;background:#1e3324}}.school-waiting{box-shadow:inset 0 0 0 2px var(--primary)}.school-att-now{justify-content:space-between;align-items:center;gap:12px;display:flex}.school-att-now>div{gap:2px;display:grid}.school-att-now strong{font-size:22px}.primary-btn.small-btn{white-space:nowrap;flex:none;padding:11px 16px;font-size:15px;text-decoration:none}.school-history{border-top:1px solid var(--line);color:var(--muted);font-variant-numeric:tabular-nums;flex-wrap:wrap;gap:6px 12px;margin-top:12px;padding-top:10px;font-size:13px;display:flex}.school-history b{color:var(--text)}.school-att-head{justify-content:space-between;align-items:flex-end;gap:12px;display:flex}.school-att-head .field{flex:1;min-width:0;margin:0}.school-att-count{font-variant-numeric:tabular-nums;flex:none}.school-att-count strong{color:var(--primary);font-size:30px}.school-att-list .school-att-row{background:var(--surface);text-align:left;width:100%;font:inherit;color:inherit;border:0}.school-att-row.on{background:var(--primary-soft)}.att-mark{border:2px solid var(--line);width:34px;height:34px;color:var(--on-primary);border-radius:50%;flex:none;place-items:center;font-size:20px;font-weight:900;display:grid}.school-att-row.on .att-mark{background:var(--primary);border-color:var(--primary)}.sign-table{border:1.5px solid var(--line);border-radius:10px;grid-template-columns:repeat(4,1fr);display:grid;overflow:hidden}.sign-cell{text-align:center;grid-template-rows:auto 1fr auto;min-width:0;min-height:84px;display:grid}.sign-cell+.sign-cell{border-left:1.5px solid var(--line)}.sign-role{background:var(--bg);border-bottom:1.5px solid var(--line);padding:4px 0;font-size:13px;font-weight:700}.sign-name{overflow-wrap:anywhere;place-items:center;padding:4px 2px;font-weight:700;display:grid}.sign-cell.signed .sign-name{color:var(--primary)}.sign-cell.now .sign-name{color:var(--muted);font-size:13px;font-weight:600}.sign-cell.now{background:var(--primary-soft)}.sign-date{color:var(--muted);padding-bottom:4px;font-size:12px}.reject-note{background:var(--danger-soft);color:var(--danger);border-radius:10px;margin:10px 0 0;padding:10px 12px;font-size:14px}.report-grid{grid-template-columns:1fr 1fr;gap:10px;display:grid}.report-grid .field{min-width:0}.report-actions{gap:10px;margin-bottom:12px;display:grid}.staff-row{align-items:center;gap:10px;padding:10px 12px;display:flex}.staff-row .remove{background:var(--danger-soft);width:36px;height:36px;color:var(--danger);border:0;border-radius:8px;flex:none;font-size:18px}.duty-field{border-top:1px dashed var(--line);margin-top:4px;padding-top:10px}.duty-chips{flex-wrap:wrap;gap:6px;display:flex}.duty-chip{background:var(--primary-soft);color:var(--primary);border-radius:999px;align-items:center;gap:4px;padding:3px 4px 3px 10px;font-size:14px;font-weight:600;display:inline-flex}.duty-chip button{width:24px;height:24px;color:inherit;background:0 0;border:0;border-radius:50%;font-size:16px;line-height:1}.duty-add{grid-template-columns:1fr 1fr auto;align-items:center;gap:6px;display:grid}.duty-add select{min-width:0}.install-banner{border:1.5px solid var(--primary);text-align:left;position:relative}.install-head{align-items:center;gap:10px;margin-bottom:6px;padding-right:56px;display:flex}.install-head img{border-radius:9px;flex:none;width:36px;height:36px}.install-head strong{word-break:keep-all;font-size:16px;line-height:1.35}.install-banner p{word-break:keep-all;margin:0;font-size:15px;line-height:1.6}.install-banner .key{border:1.5px solid var(--primary);color:var(--primary);white-space:nowrap;border-radius:6px;padding:0 6px;font-weight:700;display:inline-block}.install-btn{width:100%;margin-top:10px}.install-later{position:absolute;top:12px;right:10px}.report-group h3{border-bottom:1.5px solid var(--line);margin:0 0 10px;padding-bottom:6px;font-size:16px}.report-rows{gap:8px;display:grid}.report-rows .field,.report-grid .field{margin:0}.report-group .report-rows .field{grid-template-columns:64px minmax(0,1fr);align-items:center;gap:8px;display:grid}.report-rows .field>span{margin:0;font-weight:700}.report-rows strong,.report-grid strong{overflow-wrap:anywhere}.report-group .report-sum{border-top:1.5px dashed var(--line);flex-direction:row;grid-column:1/-1;justify-content:space-between;align-items:center;padding-top:8px;display:flex}.report-sum>span{margin:0;font-weight:700}.report-group textarea{width:100%}.money-rows{gap:10px;display:grid}.money-row{border-bottom:1px solid var(--line);grid-template-columns:minmax(0,1fr) 130px auto;grid-template-areas:"name amount del""memo memo memo";align-items:center;gap:6px 8px;padding-bottom:10px;display:grid}.money-row .money-name{overflow-wrap:anywhere;grid-area:name;min-width:0;font-weight:700}.money-row .money-amount{text-align:right;grid-area:amount}.money-row .money-memo{grid-area:memo;font-size:14px}.money-row .icon-mini{grid-area:del}.money-row.view{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:none}.money-row.view .money-name{grid-area:auto;font-weight:500}.money-row.view small{color:var(--muted,#888);font-weight:400}.money-total{gap:8px;display:grid}.money-total>div{justify-content:space-between;align-items:center;display:flex}.money-total .balance{border-top:2px solid var(--primary);padding-top:10px;font-size:18px}.money-total .balance strong{color:var(--primary);font-size:20px}.money-total .balance.minus strong{color:var(--danger)}.icon-mini{border:1px solid var(--line);background:var(--surface);width:32px;height:32px;color:inherit;border-radius:8px;font-size:16px;line-height:1}.icon-mini:disabled{opacity:.35}.items-editor+.items-editor{margin-top:14px}.items-editor h4{margin:10px 0 6px;font-size:15px}.items-list{gap:6px;margin:0 0 8px;padding:0;list-style:none;display:grid}.items-list li{background:var(--bg);border-radius:10px;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:6px;padding:6px 8px 6px 12px;display:grid}.items-list li span{overflow-wrap:anywhere}.items-add{grid-template-columns:minmax(0,1fr) auto;gap:8px;display:grid}.report-export{gap:10px;display:grid}.report-export h3,.report-export .hint{margin:0}.report-export-row{grid-template-columns:1fr 1fr;gap:10px;display:grid}.print-sheet-wrap{pointer-events:none;position:fixed;top:0;left:-10000px}.print-sheet{color:#111;background:#fff;width:760px;padding:36px 34px 28px;font-family:Malgun Gothic,Apple SD Gothic Neo,Noto Sans KR,sans-serif;font-size:14px;line-height:1.45}.print-sheet h1{text-align:center;letter-spacing:.12em;white-space:pre;margin:0 0 20px;font-size:28px;font-weight:700}.print-sheet table{border-collapse:collapse;width:100%}.print-sheet th,.print-sheet td{vertical-align:middle;border:1px solid #333;padding:5px 7px}.print-sheet th{white-space:nowrap;background:#f3f3f3;font-weight:700}.print-sheet .num{text-align:right;white-space:nowrap}.print-sheet .unit{color:#555;margin-left:4px;font-size:12px}.print-sheet .ps-vert{text-align:center;writing-mode:vertical-rl;letter-spacing:.2em;width:28px;padding:6px 2px}.ps-head{justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:12px;display:flex}.ps-meta p{white-space:nowrap;margin:4px 0;font-size:15px}.print-sheet .ps-stack{text-align:center;width:28px;padding:4px 2px;line-height:1.6}.print-sheet .ps-sign{width:auto}.print-sheet .ps-sign th:not(.ps-vert){text-align:center;width:62px;font-size:12px}.print-sheet .ps-sign td{text-align:center;vertical-align:middle;height:52px}.print-sheet .ps-sign td b{font-size:13px;display:block}.print-sheet .ps-sign td small{color:#666;font-size:10px;display:block}.ps-two{grid-template-columns:1fr 1fr;gap:0 10px;display:grid}.ps-two>div{flex-direction:column;gap:10px;display:flex}.print-sheet .ps-box{margin-bottom:0}.ps-two .ps-box th:not(.ps-vert){width:62px}.print-sheet .ps-box.grow{flex:1}.print-sheet .ps-box.grow td{vertical-align:top}.ps-text{white-space:pre-wrap;overflow-wrap:anywhere;min-height:70px}.print-sheet .ps-three{table-layout:fixed;margin-top:10px}.print-sheet .ps-three td{vertical-align:top;height:120px}.print-sheet .ps-money{table-layout:fixed}.print-sheet .ps-money th:first-child,.print-sheet .ps-money th:nth-child(3){width:22%}.print-sheet .ps-money th:nth-child(2),.print-sheet .ps-money th:nth-child(4){width:14%}.print-sheet .ps-money td{overflow-wrap:anywhere;height:30px}.print-sheet .ps-note{vertical-align:top;white-space:pre-wrap;font-size:13px}.print-sheet .ps-total th,.print-sheet .ps-total td{background:#f3f3f3;font-weight:700}.ps-foot{text-align:right;color:#666;margin:14px 0 0;font-size:12px}@media print{body.printing-sheet>:not(#root),body.printing-sheet #root>*>:not(.content),body.printing-sheet .content>:not(.print-sheet-wrap){display:none!important}body.printing-sheet .print-sheet-wrap{position:static}body.printing-sheet .print-sheet{width:auto;padding:0}body.printing-sheet{background:#fff}@page{size:A4;margin:12mm}}.att-group-title{margin:16px 4px 8px;font-size:16px}.school-att-count .att-gap{margin-left:10px}.school-att-head .school-att-count{flex-wrap:wrap;justify-content:flex-end;align-items:baseline;gap:3px;display:flex}.school-att-head .school-att-count strong{font-size:24px}.receipts{gap:10px;display:grid}.receipts .section-head h3{margin:0}.receipt-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:0;padding:0;list-style:none;display:grid}.receipt-grid li{gap:4px;min-width:0;display:grid;position:relative}.receipt-thumb{aspect-ratio:3/4;border:1px solid var(--line);background:var(--bg);border-radius:10px;place-items:center;display:grid;overflow:hidden}.receipt-thumb img{object-fit:cover;width:100%;height:100%}.receipt-pdf{color:var(--danger);font-size:18px;font-weight:800}.receipt-name{text-align:center;color:var(--muted,#888);overflow-wrap:anywhere;font-size:12px}.receipt-del{color:#333;background:#ffffffeb;width:28px;height:28px;position:absolute;top:4px;right:4px}
