:root{--ink: #1b2430;--muted: #5d6b7c;--line: #dde3ea;--bg: #f4f6f9;--card: #ffffff;--brand: #1d3a6e;--brand-soft: #e8eef9;--good: #1f7a4d;--good-soft: #e3f4ea;--bad: #b3261e;--radius: 12px}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.45 system-ui,-apple-system,Segoe UI,Roboto,sans-serif}h1{font-size:1.5rem;margin:0 0 .75rem}h2{font-size:1.15rem;margin:0 0 .5rem}p{margin:0 0 .75rem}button,input,select{font:inherit;color:inherit}.shell{min-height:100dvh}.topbar{position:sticky;top:0;z-index:5;display:flex;align-items:center;gap:.75rem;padding:.6rem 1rem;padding-top:max(.6rem,env(safe-area-inset-top));background:var(--brand);color:#fff}.brand{letter-spacing:.08em}.topbar nav{display:flex;gap:.25rem;flex:1;overflow-x:auto;scrollbar-width:none}.topbar nav a{color:#cfdcf5;text-decoration:none;padding:.45rem .75rem;border-radius:999px;white-space:nowrap}.topbar nav a.active{background:#ffffff2e;color:#fff}main{max-width:760px;margin:0 auto;padding:1rem 1rem 3rem}.center{min-height:100dvh;display:grid;place-items:center;padding:1rem}input,select{width:100%;min-height:48px;padding:.6rem .8rem;background:#fff;border:1px solid var(--line);border-radius:10px}input:focus,select:focus,button:focus-visible{outline:3px solid #8fb0ec;outline-offset:1px}button{min-height:48px;padding:.6rem 1rem;background:#fff;border:1px solid var(--line);border-radius:10px;cursor:pointer;white-space:nowrap}button:disabled{opacity:.6;cursor:default}button.primary{background:var(--brand);border-color:var(--brand);color:#fff;font-weight:600}button.huge{width:100%;min-height:64px;font-size:1.25rem;border-radius:14px;margin-top:.5rem}button.link{background:none;border:0;min-height:0;padding:.4rem;color:inherit;text-decoration:underline}.topbar button.link{color:#cfdcf5}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:1.25rem}.card.inline{display:grid;gap:.6rem;margin-bottom:1rem}label{display:grid;gap:.3rem;font-size:.9rem;color:var(--muted)}.bar{display:flex;gap:.5rem;margin-bottom:.75rem}.bar select,.bar input{flex:1;min-width:0}.error{color:var(--bad);background:#fdecea;padding:.6rem .8rem;border-radius:10px}.ok{color:var(--good);background:var(--good-soft);padding:.6rem .8rem;border-radius:10px}.note{color:var(--muted);font-size:.85rem}.empty{color:var(--muted);text-align:center;padding:2rem 1rem}.count{color:var(--muted);font-weight:400;font-size:1rem}.login,.welcome .card{width:min(420px,100%);display:grid;gap:.9rem}.welcome .card{text-align:center}.welcome form{display:grid;gap:.6rem;text-align:left}.eyebrow{color:var(--muted);margin:0}.bigtick{width:72px;height:72px;margin:0 auto;border-radius:50%;background:var(--good);color:#fff;display:grid;place-items:center;font-size:2.4rem}.trap{position:absolute;left:-9999px;width:1px;height:1px;opacity:0}.stats{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:1rem;margin-bottom:.75rem}.stats .big{font-size:2.6rem;font-weight:700;line-height:1;color:var(--brand)}.meter{height:8px;background:var(--brand-soft);border-radius:99px;overflow:hidden;margin-top:.6rem}.meter span{display:block;height:100%;background:var(--good);transition:width .2s}.chips{display:flex;gap:.4rem;margin-bottom:.5rem;overflow-x:auto}.chip{min-height:40px;border-radius:999px;padding:.3rem .9rem}.chip.on{background:var(--brand-soft);border-color:var(--brand);color:var(--brand);font-weight:600}.list{list-style:none;margin:0;padding:0;display:grid;gap:.4rem}.row{width:100%;min-height:60px;display:flex;align-items:center;gap:.85rem;text-align:left;padding:.5rem .9rem;font-size:1.1rem;border-radius:12px;touch-action:manipulation}.row.here{background:var(--good-soft);border-color:var(--good)}.tick{flex:none;width:32px;height:32px;border-radius:50%;border:2px solid var(--line);display:grid;place-items:center;font-weight:700;color:#fff}.row.here .tick{background:var(--good);border-color:var(--good)}.row .name{flex:1;overflow:hidden;text-overflow:ellipsis}.tag{font-size:.75rem;background:#fff3d6;color:#7a5200;border-radius:99px;padding:.1rem .55rem;font-weight:600;margin-left:.4rem}.list.plain .person,.reportrow{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:.7rem .9rem}.person .name{font-weight:600}.sub{color:var(--muted);font-size:.9rem}.barline{display:flex;align-items:center;gap:.6rem;margin-top:.35rem}.barline span{display:block;height:14px;background:var(--brand);border-radius:7px;min-width:2px}.barline b{min-width:2ch}.qrblock{display:grid;gap:.75rem;justify-items:center;text-align:center}.qr{width:min(340px,90%);height:auto;border:1px solid var(--line);border-radius:12px;background:#fff}.actions{display:flex;gap:.5rem;flex-wrap:wrap;justify-content:center}.small{width:100%;text-align:left}.printonly{display:none}@media print{body{background:#fff}.topbar,.noprint{display:none!important}.printonly{display:block}.qrblock h2{font-size:2.2rem}.qr{width:420px;border:0}}.table-scroll{overflow-x:auto;margin-bottom:.75rem;border:1px solid var(--line);border-radius:var(--radius);background:var(--card)}table.map{border-collapse:collapse;width:100%;font-size:.9rem}table.map th,table.map td{padding:.5rem .6rem;border-bottom:1px solid var(--line);text-align:left;vertical-align:top;min-width:130px}table.map th select{min-height:40px;margin-top:.25rem}table.map td{color:var(--muted)}.tag.bad{background:#fdecea;color:var(--bad)}.note.warn{background:#fff8e1;border:1px solid #f1d98a;color:#6a4b00;padding:.6rem .8rem;border-radius:10px}.notice{text-align:left}.notice p{margin:0 0 .5rem}.notice summary{cursor:pointer;text-decoration:underline;margin-bottom:.4rem;min-height:32px;display:flex;align-items:center}.memberrow,.eventrow{display:flex;justify-content:space-between;align-items:center;gap:.75rem;flex-wrap:wrap}.memberactions{display:flex;gap:.4rem;flex-wrap:wrap;align-items:center}.memberactions select{width:auto;min-height:40px}.memberactions button{min-height:40px;padding:.3rem .8rem}.eventside{display:grid;justify-items:end;gap:.1rem}.big.small{font-size:1.6rem;font-weight:700;color:var(--brand);line-height:1}.row .count{color:var(--muted);font-size:.9rem;white-space:nowrap}h1 .link{font-size:.9rem;font-weight:400;margin-left:.5rem}.presentcount{display:flex;align-items:baseline;gap:.35rem}a.button{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:.6rem 1rem;background:#fff;border:1px solid var(--line);border-radius:10px;color:inherit;text-decoration:none;white-space:nowrap}.center-link{text-align:center;color:var(--muted);font-size:.95rem;padding:.4rem}.linkcard{display:grid;gap:.6rem;margin-bottom:1rem;border-color:var(--good);background:var(--good-soft)}.linkcard input{font-size:.85rem}.linkcard p{margin:0}
