
*{box-sizing:border-box}body{margin:0;background:#f5f6fa;color:#24283d;font:15px system-ui,-apple-system,sans-serif}button,input,select,textarea{font:inherit}button,a{touch-action:manipulation}button{cursor:pointer;border:1px solid #dddfea;border-radius:10px;padding:11px 16px;background:white;color:#363b55}button:hover{background:#f0effb}button.primary{background:#5951b6;color:white;border-color:#5951b6}aside{position:fixed;width:232px;inset:0 auto 0 0;background:white;border-right:1px solid #e6e8f1;padding:30px 22px}.brand{font-size:24px;font-weight:750;letter-spacing:-1px}.mark{display:inline-grid;place-items:center;background:#5951b6;color:white;width:34px;height:34px;border-radius:11px;margin-right:9px}.sub{font-size:11px;letter-spacing:2px;color:#81869a;margin:9px 0 40px}.church{padding:14px 0;border-top:1px solid #eee;border-bottom:1px solid #eee;font-size:13px;margin-bottom:28px}nav button{display:block;width:100%;text-align:left;margin-bottom:9px;border:0;color:#75798e;background:transparent}nav button.active{background:#eeecfa;color:#5149a7;font-weight:650}.foot{position:absolute;bottom:25px;font-size:12px;color:#8a8da0}main{margin-left:232px;padding:32px 45px;max-width:1500px}.top{display:flex;justify-content:space-between;align-items:center;gap:15px}.eyebrow{font-size:11px;letter-spacing:2px;color:#7067b4;font-weight:700}h1{font-size:32px;letter-spacing:-1px;margin:9px 0}h2{font-size:18px;margin:0 0 18px}p{color:#7b8093;line-height:1.6}.notice{background:#eeedf9;border:1px solid #e2dff5;color:#625a8f;padding:12px 17px;border-radius:10px;font-size:12px;margin:25px 0}.cards{display:grid;grid-template-columns:repeat(4,1fr);gap:17px}.card,.panel{background:white;border:1px solid #e5e7ef;border-radius:15px;padding:24px}.card small{color:#7c8194}.number{font-size:33px;font-weight:700;margin:15px 0 5px}.card span{font-size:11px;color:#9296a8}.split{display:grid;grid-template-columns:1.6fr 1fr;gap:20px;margin-top:22px}.actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.panel{margin-top:20px}.split .panel{margin:0}.empty{text-align:center;padding:40px 15px;color:#8a8ea2}.empty strong{display:block;color:#555b73;margin-bottom:10px}.field{display:flex;flex-direction:column;gap:8px}label{font-size:13px;color:#63697f}input,select,textarea{width:100%;border:1px solid #dfe2ec;background:#fff;padding:12px;border-radius:9px;color:#292e45}input:focus,select:focus,textarea:focus{outline:2px solid #b9b2eb}input[type=number]{font-size:20px}textarea{min-height:80px}.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.two{grid-template-columns:repeat(2,1fr)}details{border:1px solid #e5e7ee;border-radius:12px;background:white;margin:16px 0;padding:20px}summary{cursor:pointer;font-weight:650;margin:0}details[open] summary{margin-bottom:22px}.total{display:flex;justify-content:space-between;background:#eeedf9;padding:18px;border-radius:10px;margin:20px 0;color:#51499c}.total strong{font-size:24px}.form{max-width:850px}table{border-collapse:collapse;width:100%;font-size:13px}td,th{text-align:left;padding:15px 10px;border-bottom:1px solid #eeeff5}th{font-size:11px;color:#8a8ea0;font-weight:600}.scroll{overflow:auto}.pill{font-size:11px;color:#6257ab;background:#f0eef9;border-radius:20px;padding:5px 9px}.row{display:flex;justify-content:space-between;gap:15px;align-items:center}.barrow{display:grid;grid-template-columns:90px 1fr 35px;gap:12px;align-items:center;font-size:12px;margin:18px 0}.bar{background:#f0eef9;border-radius:5px;height:16px}.bar i{display:block;background:#8275c9;height:16px;border-radius:5px}#toast{position:fixed;bottom:25px;right:25px;background:#272d43;color:white;padding:15px 22px;border-radius:12px;display:none;z-index:5}.muted{font-size:12px;color:#8b8fa3}.toggle{font-size:12px}#reportFilters{margin-top:20px}.group-list{display:flex;flex-wrap:wrap;gap:8px;margin:15px 0}button.danger{color:#a44848} @media(max-width:900px){main{padding:25px;margin-left:195px}aside{width:195px;padding:25px 15px}.cards{grid-template-columns:repeat(2,1fr)}.split{grid-template-columns:1fr}.grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:600px){aside{position:static;width:auto;padding:18px 20px;border:0}.brand{font-size:21px}.sub,.church,.foot{display:none}nav{position:fixed;bottom:0;left:0;right:0;display:flex;background:white;padding:9px 5px;border-top:1px solid #e4e5ee;z-index:3}nav button{padding:12px 4px;text-align:center;font-size:11px;margin:0}main{margin:0;padding:14px 18px 100px}.top{align-items:flex-start}h1{font-size:27px}.card{padding:18px}.number{font-size:28px}.panel{padding:19px}.grid{grid-template-columns:repeat(2,1fr)}.two{grid-template-columns:1fr}.notice{margin:18px 0}.top .primary{font-size:12px;padding:12px}.toggle{font-size:11px;padding:8px}.barrow{grid-template-columns:75px 1fr 30px}}

main{max-width:1120px}.brand img{width:100%;max-width:155px;border-radius:10px;display:block}.sub{margin-bottom:20px}.church a{color:inherit}.notice{font-size:14px}.field{margin-bottom:12px}.check{display:inline-flex;gap:7px;align-items:center;min-height:40px;margin-right:12px}.check input{width:auto}fieldset{border:1px solid #e5e7ee;border-radius:10px;margin:10px 0;padding:12px}legend{font-weight:650}.person{display:grid;grid-template-columns:2fr 1fr auto;gap:10px;align-items:end}.person .field{margin:0}.person .checks{grid-column:1/-1}.summary-values{display:flex;flex-wrap:wrap;gap:14px}.summary-values span{white-space:nowrap}.status{min-height:24px;font-weight:650}.report-list button{display:block;margin:8px 0;text-align:left}.note{font-size:13px}button:focus-visible,a:focus-visible,summary:focus-visible{outline:2px solid #5951b6;outline-offset:3px}@media(max-width:600px){.brand img{width:95px}.person{grid-template-columns:1fr 1fr}.person button{grid-column:1/-1;justify-self:start}.grid{grid-template-columns:1fr}aside{border-bottom:1px solid #e6e8f1}.church{display:block;margin:0;border:0;padding:7px 0 0}}

@media print {
  @page { margin: 13mm; }
  body { background: white; color: black; font-size: 10pt; }
  aside, main { display: none !important; }
  #print-report[hidden] { display: block !important; }
  #print-report img { display: block; width: 95px; height: auto; }
  #print-report h1 { font-size: 19pt; }
  #print-report h2, #print-report h3 { break-after: avoid; margin: 12pt 0 4pt; }
  #print-report section + section { break-before: page; }
  #print-report p, #print-report th { color: black; }
  #print-report table { table-layout: auto; font-size: 9pt; }
  #print-report td, #print-report th { padding: 4pt; overflow-wrap: anywhere; white-space: pre-wrap; }
  #print-report tr { break-inside: avoid; }
}

/* Attendance shell, dashboard and form share the original component styles. */
main { max-width: 1500px; }
.brand { display: flex; align-items: center; gap: 9px; }
.brand img { width: 64px; height: auto; border-radius: 0; }
.sub { margin: 9px 0 40px; color: #666b80; }
.top p { margin: 0; color: #60667b; }
.status:empty { display: none; }
#overview .row h2 { margin: 0; }
#overview .row { margin-bottom: 14px; }
.card small, nav button, .note { color: #62677e; }
#page-title:focus { outline: none; }
[hidden] { display: none; }
@media (max-width: 600px) {
  .sub, .foot { display: none; }
  nav { padding-bottom: calc(9px + env(safe-area-inset-bottom)); }
  main { padding-bottom: calc(100px + env(safe-area-inset-bottom)); }
  input, select, textarea { font-size: 16px; }
}

.login{width:min(420px,calc(100% - 32px));margin:10vh auto}.login img{width:100px;height:auto}@media print{.login{display:none}}
