:root{font-family:-apple-system,BlinkMacSystemFont,"Noto Sans",sans-serif;color:#203d38;background:#f3f6f4;font-synthesis:none}*{box-sizing:border-box}body{margin:0}main{max-width:520px;margin:auto;padding:20px 16px 40px}header{display:flex;align-items:center;justify-content:space-between;min-height:36px;margin-bottom:20px}.brand{font-weight:800;letter-spacing:.04em}h1{font-size:26px;margin:8px 0 18px}h2{font-size:21px;margin:6px 0}button,input,select{font:inherit}button{cursor:pointer;border:1px solid #cbd9d2;background:white;border-radius:10px;padding:10px 14px;color:inherit;min-height:44px}button:disabled{cursor:default;opacity:.55}button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #57ad90;outline-offset:2px}.primary{width:100%;background:#21634e;border:0;color:white;font-weight:700;padding:16px}.text{border:0;background:none;font-size:14px;margin-top:12px}label{display:block;font-size:14px}form label{margin:18px 0}input:not([type=checkbox]),select{display:block;width:100%;padding:12px;background:white;border:1px solid #cbd9d2;border-radius:8px;margin-top:6px;min-width:0}input[type=checkbox]{width:20px;height:20px;accent-color:#21634e;flex-shrink:0}#auth{padding:30px 8px}.eyebrow{color:#588272;font-size:11px;letter-spacing:.15em;font-weight:700;margin:0}.muted{color:#6a7e76;line-height:1.6}.small{font-size:12px}.toolbar{display:flex;align-items:end;gap:12px;margin:24px 0 18px}.toolbar label{flex:1}.toolbar button{font-size:12px;margin-bottom:0}.sheet{background:white;border:1px solid #dce5df;border-radius:18px;padding:22px 16px;box-shadow:0 6px 24px #243e3606}.sheet-heading{display:flex;justify-content:space-between;align-items:center;gap:12px}.sheet-heading h2{overflow-wrap:anywhere}.total{display:flex;align-items:baseline;gap:4px;white-space:nowrap}.total strong{font-size:32px;color:#21634e}.total span{font-size:11px;color:#6a7e76}.month-nav{display:flex;justify-content:space-between;align-items:center;gap:10px;margin:20px 0}.month-nav label{min-width:0}.month-nav input{border:0;text-align:center;margin:0;font-weight:700;background:#f4f7f5}.month-nav button{font-size:24px;border:0;background:#f4f7f5;padding:0 15px}.weekdays,.calendar{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}.weekdays{text-align:center;font-size:11px;color:#788980;margin-bottom:8px}.weekdays span:first-child{color:#b16b64}.weekdays span:last-child{color:#6788a4}.day{min-width:0;min-height:0;height:57px;border:1px solid #edf1ee;border-radius:8px;padding:5px 0;display:flex;flex-direction:column;align-items:center;justify-content:space-between;background:#fff}.date{font-size:11px;color:#728078}.mark{height:24px;font-size:23px;line-height:24px;font-weight:700;color:#21634e}.day.attended{background:#edf6ef;border-color:#d3e9d8}.day.today .date{background:#21634e;color:white;border-radius:20px;padding:0 5px}.day:disabled{opacity:1}.day.future .date{color:#bac6bf}footer{display:flex;justify-content:space-between;border-top:1px solid #edf1ee;margin-top:18px;padding-top:14px;font-size:10px;color:#7a8b81}.admin{margin-top:28px;padding:20px;background:#e7eee9;border-radius:12px}.admin h2{font-size:16px;margin-bottom:16px}.switch{display:flex;align-items:center;gap:10px;line-height:1.6}#message{font-size:13px;min-height:18px;line-height:1.5;color:#21634e}#message.error{color:#b33030}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}[hidden]{display:none!important}body.capture{background:white}body.capture header,body.capture #controls,body.capture #admin,body.capture #edit-help,body.capture #message{display:none}body.capture main{padding:16px 12px}body.capture .sheet{box-shadow:none}body.capture .month-nav button{visibility:hidden}#capture-close{display:block;margin:18px auto;font-size:12px}@media(max-width:360px){main{padding:12px 8px}.sheet{padding:18px 10px}.day{height:53px}.toolbar{gap:8px}}@media print{header,#controls,#admin,#edit-help,#capture-close,#message{display:none!important}body{background:white}.sheet{box-shadow:none}}

#admin-access{margin-top:24px;font-size:12px;color:#6a7e76}#admin-form{margin-top:12px}#admin-form input{margin-bottom:12px}body.capture #admin-access{display:none}
