:root{--accent:#335f55;--soft:#edf4ef;--ink:#253b34;--line:#dfe7e1;--bg:#f6f7f3;font-family:system-ui,-apple-system,'Segoe UI',sans-serif;color:var(--ink);background:var(--bg)}
:root[data-parish=shinjeong]{--accent:#765497;--soft:#f2eaf7;--ink:#3d3150;--line:#e5ddeb;--bg:#faf7fc}
*{box-sizing:border-box}body{margin:0}button,select,a{touch-action:manipulation}button,select{font:inherit;color:inherit}button,a,select{outline-offset:4px}button{cursor:pointer;background:white;border:1px solid var(--line);border-radius:10px;padding:10px 14px}button:disabled{opacity:.35;cursor:default}a{color:var(--accent)}header{max-width:1320px;margin:auto;padding:28px 32px;display:flex;align-items:center;justify-content:space-between;gap:16px;border-bottom:1px solid var(--line)}.brand{display:flex;gap:14px;align-items:center;font-size:26px;text-decoration:none;font-weight:750}.brand small{display:block;font-size:10px;letter-spacing:3px;margin-top:4px;font-weight:500}.admin{font-size:13px;text-decoration:none}main{max-width:1320px;margin:auto;padding:28px 32px}nav{display:flex;gap:8px}nav .active{background:var(--accent);color:white;border-color:var(--accent)}.heading{display:flex;justify-content:space-between;align-items:center;margin:34px 0 24px;gap:20px}.eyebrow{font-size:12px;font-weight:650;letter-spacing:1px;color:var(--accent)}h1{font-size:44px;margin:8px 0;letter-spacing:-2px}h2{font-size:19px;margin:0}h3{font-size:16px;line-height:1.6;margin:0 0 16px}.month-controls{display:flex;gap:8px;align-items:center}select{padding:10px;border:1px solid var(--line);background:white;border-radius:10px}.summary{display:flex;align-items:center;gap:18px;flex-wrap:wrap;padding:18px 0 26px;font-size:14px}.summary>span{margin-right:auto}.summary a{text-decoration:none}.summary button{background:transparent}.workspace{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(290px,1fr);gap:24px}.calendar-panel,aside{background:white;border:1px solid var(--line);border-radius:18px;padding:24px;min-width:0}.panel-title{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:24px}.segmented{display:flex;background:var(--soft);padding:3px;border-radius:10px}.segmented button{border:0;background:transparent;padding:7px 12px;font-size:13px}.segmented [aria-pressed=true]{background:white;box-shadow:0 1px 4px #0001}.week,.calendar{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}.week span{text-align:center;font-size:12px;color:#7b827e;padding-bottom:14px}.week .sunday,.sunday .date-number{color:#c05d5d}.calendar{gap:4px}.date{min-width:0;min-height:104px;text-align:left;padding:10px 8px;border-color:transparent;background:#fafbf9;display:flex;flex-direction:column;gap:5px}.date.selected{border-color:var(--accent);background:var(--soft)}.date-number{font-size:16px}.date-label{font-size:11px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;line-height:1.45}.date-songs{font-size:11px;color:var(--accent);margin-top:auto}.date small{font-size:10px;color:var(--accent)}.hint{font-size:12px;color:#78817b;line-height:1.8;margin:22px 0 0}aside>h2{font-size:23px;margin-bottom:28px}.mass{border-top:1px solid var(--line);padding-top:22px;margin-top:22px}.role{padding:13px 0}.role-name{font-size:12px;color:#78817b;margin-bottom:9px}.songs{display:flex;gap:7px;flex-wrap:wrap}.songs a{display:flex;gap:5px;align-items:center;background:var(--soft);padding:10px 12px;border-radius:10px;text-decoration:none}.songs b{font-size:20px}.songs span{font-size:11px}.muted{font-size:12px;color:#89908b}.month-list button{display:grid;grid-template-columns:45px 1fr;gap:9px;width:100%;border:0;border-bottom:1px solid var(--line);border-radius:0;text-align:left;line-height:1.5}.month-list small{grid-column:2;color:var(--accent)}footer{display:flex;gap:16px;flex-wrap:wrap;justify-content:space-between;color:#78817b;font-size:12px;margin-top:40px;padding:22px 0;border-top:1px solid var(--line)}#counter{flex-basis:100%;text-align:center;margin-top:10px}dialog{width:min(1000px,94vw);max-height:92vh;border:0;border-radius:16px;padding:24px;color:var(--ink)}dialog::backdrop{background:#16201bcc}.modal-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px}dialog img{width:100%;display:block;margin-top:18px}#error{background:#fff0ed;padding:16px;border-radius:10px;color:#9a4039}
@media(max-width:900px){.workspace{grid-template-columns:1fr}aside{order:-1}.date{min-height:90px}.role{display:flex;gap:15px;align-items:center}.role-name{min-width:75px;margin:0}aside>h2{margin-bottom:10px}.mass{margin-top:14px;padding-top:14px}}
@media(max-width:560px){header{padding:20px 16px}.brand{font-size:21px}.admin{font-size:11px}main{padding:22px 14px}.heading{align-items:flex-start;flex-direction:column;margin-top:26px;gap:12px}h1{font-size:36px}.summary{gap:12px;font-size:12px}.summary>span{flex-basis:100%}.calendar-panel,aside{padding:16px}.calendar{gap:2px}.date{padding:6px 3px;min-height:92px;border-radius:7px}.date-label{font-size:10px}.date-songs{font-size:10px}.panel-title h2{font-size:17px}.songs a{padding:8px 10px}.songs b{font-size:18px}}
