a{color:var(--yellow);text-underline-offset:3px}button,a,input,select{touch-action:manipulation}button{cursor:pointer}button:disabled{opacity:.35;cursor:default}button:focus-visible,a:focus-visible,select:focus-visible{outline:2px solid var(--yellow);outline-offset:4px}header{flex-wrap:wrap;gap:12px}nav{flex-wrap:wrap;font-size:.87rem}nav a{padding:5px 0}nav a[aria-current=page]{color:white;border-bottom:2px solid var(--yellow)}header .brand span{font-size:.95rem}.muted,small{color:var(--muted)}small{display:block;font-size:.77rem}.section-heading{display:flex;justify-content:space-between;align-items:center;gap:12px;margin:20px 0 12px}.section-heading h2{margin:0}.section-heading a{font-size:.85rem}.metrics{grid-template-columns:repeat(3,minmax(0,1fr))}.metrics>a{display:block;text-decoration:none;border-radius:14px;padding:18px;background:var(--panel);color:var(--white);border:1px solid #ffb80055;transition:background .15s}.metrics>a:first-child{background:var(--yellow);color:var(--black)}.metrics>a:hover{border-color:var(--white)}.metrics>a:first-child small{color:#4a3500}.metrics strong{margin-bottom:7px}.metrics small{margin-top:5px}.open-list a{display:flex;gap:8px;align-items:center;background:var(--panel);border:1px solid var(--line);padding:8px 11px;border-radius:8px;text-decoration:none;color:var(--white)}.person a,.attendance-name a,.rule-row a,.person-link{color:var(--white);font-weight:750;text-decoration:none;overflow-wrap:anywhere}.participant-row .person{min-width:0}.person a:hover,.attendance-name a:hover,.rule-row a:hover,.person-link:hover{color:var(--yellow)}.badge{display:inline-block;border-radius:6px;padding:5px 8px;font-size:.76rem;font-weight:750;background:#ffffff12;color:#ccc}.badge.present,.badge.ok{background:#5fdc9b20;color:#80e7b1}.badge.excused{background:#72b6ff20;color:#96caff}.badge.absent,.badge.due{background:#ff6b5726;color:#ff9a8a}.badge.incomplete{background:#ffb80026;color:var(--yellow)}.date-nav{display:flex;gap:20px}.attendance-counts{display:flex;gap:10px 20px;flex-wrap:wrap;margin:16px 0;font-size:.9rem}.attendance-counts b{color:var(--white);font-size:1.12rem}.attendance-list{display:grid;gap:8px}.attendance-row{display:flex;gap:16px;align-items:center;justify-content:space-between;background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:12px}.attendance-name{min-width:0}.attendance-name small{margin-top:3px}.attendance-actions{display:flex;gap:6px;margin:0}.attendance-button{min-height:44px;border:1px solid #ffffff26;border-radius:8px;padding:7px 11px;background:transparent;color:#ccc;font:650 .82rem system-ui}.attendance-button.selected.present{background:#24523c;color:#c6ffe2;border-color:#80e7b1}.attendance-button.selected.excused{background:#24415d;color:#d1e9ff;border-color:#96caff}.attendance-button.selected.absent{background:#5e302b;color:#ffd3cb;border-color:#ff9a8a}.complete-form{max-width:540px;margin:20px auto}.complete-form small{margin-top:8px;text-align:center}.rules-section{margin-top:40px;border-top:1px solid var(--line);padding-top:28px}.rules-section h2{font-size:1.55rem;margin:6px 0}.rule-row{display:flex;justify-content:space-between;gap:20px;padding:15px 0;border-bottom:1px solid var(--line)}.rule-row>div:last-child{text-align:right}.rule-row small{margin-top:4px}.rule-row.due{border-left:3px solid #ff9a8a;padding-left:12px}.member-title{font-size:clamp(2rem,8vw,3.6rem);overflow-wrap:anywhere}.history-list{display:grid;gap:16px;margin-top:20px}.history-row{display:grid;grid-template-columns:120px 1fr auto;align-items:center;gap:12px;padding:14px;background:var(--panel);border:1px solid var(--line);border-radius:10px;text-decoration:none;color:var(--white)}.history-row small{margin-top:5px}.filters{display:grid;grid-template-columns:1fr 1fr 1fr auto;gap:12px;align-items:end;margin-bottom:20px}.filters label{margin:0}.filters>a{font-size:.8rem;grid-column:1/-1}select{display:block;width:100%;background:#101010;color:var(--white);border:1px solid var(--line);border-radius:10px;padding:12px;margin-top:5px;font:inherit}.filters input{margin-top:5px}.result-heading{display:flex;gap:16px;align-items:baseline}.result-heading>strong{font-size:1.6rem;color:var(--yellow)}.result-heading>span{font-size:.9rem;color:var(--muted)}.date-group{background:var(--panel);border:1px solid var(--line);border-radius:12px;overflow:hidden}.date-group h2{background:#ffffff07;padding:13px 16px;margin:0;font-size:.92rem}.date-group h2 a{color:var(--white);text-decoration:none}.beer-history-row{display:grid;grid-template-columns:minmax(100px,1fr) 65px 65px auto;gap:14px;align-items:center;padding:14px 16px;border-top:1px solid var(--line)}.beer-count{font-size:1.3rem}.beer-count small{display:inline;font-size:.75rem;font-weight:400}.payment-action{min-height:42px}.manage-person{grid-template-columns:1fr auto}.tracking-form{grid-column:1/-1;display:flex;align-items:end;gap:10px}.tracking-form label{margin:0;flex:1}.tracking-form button{min-height:44px}.manage-person{border-bottom:1px solid var(--line);padding:12px 0}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}#save-status:not(:empty){position:fixed;bottom:20px;left:50%;transform:translateX(-50%);background:#303030;border:1px solid var(--yellow);padding:10px 18px;border-radius:10px;z-index:10;max-width:90vw;box-shadow:var(--shadow)}body.is-saving main{opacity:.75}body.is-saving main button{pointer-events:none}.manage-person .delete-button{min-height:44px}
@media(max-width:760px){header{position:relative}header .brand span{display:block}nav{width:100%;gap:9px 16px}.filters{grid-template-columns:1fr 1fr}.filters button{height:46px}.metrics{gap:8px}.metrics>a{padding:13px}.metrics small{font-size:.7rem}.attendance-row{align-items:stretch;flex-direction:column;gap:9px}.attendance-actions{width:100%}.attendance-button{flex:1;font-size:.76rem;padding:7px 5px}.attendance-name{display:flex;align-items:center;justify-content:space-between;gap:10px}.rule-row{gap:12px}.beer-history-row{grid-template-columns:minmax(80px,1fr) 55px 65px;gap:10px}.beer-history-row form{grid-column:1/-1}.payment-action{width:100%;padding:10px}.history-row{grid-template-columns:95px 1fr auto;gap:8px;padding:12px}.history-row .badge{font-size:.7rem}.member-title{line-height:1.1}}
@media(max-width:420px){main{padding-left:12px;padding-right:12px}.brand img{width:55px}.brand span{max-width:260px;font-size:.85rem!important}.metrics{grid-template-columns:1fr 1fr}.metrics>a:first-child{grid-column:1/-1}.metrics>a:first-child strong{display:inline-block;margin-right:8px}.metrics>a:first-child span{display:inline}.metrics>a:first-child small{display:block}.rule-row{flex-direction:column;gap:8px}.rule-row>div:last-child{text-align:left}.filters{grid-template-columns:1fr}.section-heading{align-items:start}.section-heading .badge{max-width:150px}.participant-row{grid-template-columns:minmax(60px,1fr) auto auto;gap:7px;padding:10px}.paid-form{grid-column:auto}.paid-form button{width:auto;min-width:65px;font-size:.75rem;padding:10px 7px}.stepper{grid-template-columns:36px 30px 36px}.stepper button{width:36px;height:42px}.person a{font-size:.9rem}.manage-person{grid-template-columns:1fr}.tracking-form{flex-direction:column;align-items:stretch}}
