:root{--green:#0a4b3e;--blue:#0a4d85;--red:#cf2030;--text:#1d2a2a;--muted:#5b6b6b;--surface:#fff;--bg:#eef3f1;--border:#cfdad6;color:var(--text);background:var(--bg);font-family:"Baloo 2",system-ui,-apple-system,Segoe UI,Roboto,sans-serif}@media (prefers-color-scheme:dark){:root{--text:#e6eeec;--muted:#9fb2ae;--surface:#15201e;--bg:#0c1413;--border:#2b3b38}}*{box-sizing:border-box}body{background:var(--bg);min-height:100vh;margin:0}.shell{max-width:420px;margin:0 auto;padding:32px 16px}.brand{color:var(--green);align-items:center;gap:10px;margin-bottom:24px;font-size:1.4rem;font-weight:700;display:flex}.logo{background:var(--green);color:#fff;border-radius:10px;place-items:center;width:40px;height:40px;display:grid}.card{background:var(--surface);border:1px solid var(--border);border-radius:14px;flex-direction:column;gap:14px;padding:24px;display:flex}.card h1{margin:0;font-size:1.35rem}.card p{color:var(--muted);margin:0}label{flex-direction:column;gap:6px;font-weight:600;display:flex}input{font:inherit;border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:8px;padding:10px 12px}input:focus{outline:2px solid var(--blue);outline-offset:1px}button{font:inherit;background:var(--red);color:#fff;cursor:pointer;border:0;border-radius:8px;padding:11px 14px;font-weight:700}button:disabled{opacity:.6;cursor:progress}button.link{color:var(--blue);background:0 0;padding:4px}.guest-entry{margin-top:8px}.error{font-weight:600;color:var(--red)!important}.qr{background:#fff;border-radius:8px;align-self:center;width:200px;height:200px;padding:8px}.secret code{word-break:break-all}.roles{margin:0;padding-left:18px}.notice{font-weight:600;color:var(--green)!important}@media (prefers-color-scheme:dark){.notice{color:#6fd3b8!important}}select,textarea{font:inherit;border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:8px;padding:10px 12px}textarea{resize:vertical}select:focus,textarea:focus{outline:2px solid var(--blue);outline-offset:1px}input:disabled,select:disabled,textarea:disabled{opacity:.75}a{color:var(--blue)}h2{margin:8px 0 0;font-size:1.1rem}.muted{color:var(--muted);margin:0}button.secondary{color:var(--blue);border:1px solid var(--border);background:0 0}button.danger{color:var(--red);border:1px solid var(--red);background:0 0}button.link.danger-text,.error-text{color:var(--red)}.workspace{grid-template-columns:220px 1fr;min-height:100vh;display:grid}.sidebar{background:var(--surface);border-right:1px solid var(--border);flex-direction:column;gap:4px;padding:20px 14px;display:flex}.sidebar .brand{margin-bottom:16px}.nav-link{color:var(--text);border-radius:8px;padding:9px 12px;font-weight:600;text-decoration:none}.nav-link:hover{background:var(--bg)}.nav-link.active{background:var(--green);color:#fff}.sidebar-foot{border-top:1px solid var(--border);flex-direction:column;align-items:flex-start;gap:4px;margin-top:auto;padding-top:16px;display:flex}.who{font-weight:600}.content{min-width:0;padding:28px 24px}.panel{background:var(--surface);border:1px solid var(--border);border-radius:14px;flex-direction:column;gap:16px;max-width:1100px;padding:24px;display:flex}.panel h1{margin:0;font-size:1.4rem}.panel-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.back{font-weight:600;text-decoration:none}.filters{grid-template-columns:2fr 1fr 1fr;gap:12px;display:grid}.table-wrap{border:1px solid var(--border);border-radius:10px;overflow-x:auto}table{border-collapse:collapse;width:100%}th,td{text-align:left;border-bottom:1px solid var(--border);vertical-align:top;padding:10px 12px}th{color:var(--muted);background:var(--bg);font-size:.85rem;font-weight:700}tbody tr:last-child td{border-bottom:0}tr.clickable{cursor:pointer}tr.clickable:hover td{background:var(--bg)}td a{font-weight:600;text-decoration:none}.sub{color:var(--muted);font-size:.85rem;display:block}@media (width>=761px){.show-sm{display:none!important}}.empty{text-align:center;color:var(--muted);padding:24px}.pager{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.badge{background:var(--bg);color:var(--muted);border:1px solid var(--border);border-radius:999px;margin-left:6px;padding:1px 8px;font-size:.8rem;font-weight:700;display:inline-block}td>.badge:first-child{margin-left:0}.badge.active,.badge.create{color:var(--green);border-color:var(--green)}.badge.update{color:var(--blue);border-color:var(--blue)}.badge.error{color:var(--red);border-color:var(--red)}.grid-form{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 18px;display:grid}.grid-form .wide{grid-column:1/-1}fieldset.grid-form{border:0;min-width:0;margin:0;padding:0}.field-error{color:var(--red);font-size:.85rem;font-weight:600}.hint{color:var(--muted);font-size:.85rem;font-weight:400}.subpanel{border-top:1px solid var(--border);flex-direction:column;gap:10px;padding-top:16px;display:flex}.group-list{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.group-list li{border:1px solid var(--border);border-radius:8px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;padding:8px 12px;display:flex}.inline-form{flex-wrap:wrap;gap:8px;display:flex}.danger-zone{border-top:1px solid var(--border);padding-top:16px}.chips{flex-wrap:wrap;gap:8px;display:flex}.chip{color:var(--text);border:1px solid var(--border);background:0 0;border-radius:999px;padding:6px 12px;font-weight:600}.chip.active{background:var(--green);border-color:var(--green);color:#fff}.cell-list{margin:0;padding-left:16px}@media (prefers-color-scheme:dark){.badge.active,.badge.create{color:#6fd3b8;border-color:#6fd3b8}.badge.update,a,button.secondary,button.link{color:#7fb6ea}.nav-link.active,.chip.active{background:#1d6b5a;border-color:#1d6b5a}}@media (width<=760px){.workspace{grid-template-columns:1fr}.sidebar{border-right:0;border-bottom:1px solid var(--border);flex-flow:wrap;align-items:center;padding:10px 16px}.sidebar .brand{margin:0 8px 0 0}.sidebar-foot{border:0;flex-direction:row;align-items:center;margin:0 0 0 auto;padding:0}.who{display:none}.content,.panel{padding:16px}.filters,.grid-form{grid-template-columns:1fr}.hide-sm{display:none}}label.check{flex-direction:row;align-self:end;align-items:center;gap:8px;padding-bottom:10px}label.check input{width:18px;height:18px}.day{flex-direction:column;gap:8px;display:flex}.day h2{color:var(--muted);font-size:1rem}.event-card{border:1px solid var(--border);border-radius:10px;grid-template-columns:110px 1fr auto;align-items:center;gap:12px;padding:12px 14px;display:grid}.event-card.cancelled{opacity:.6}.event-card.cancelled .event-title{text-decoration:line-through}.event-time{font-variant-numeric:tabular-nums;font-weight:700}.event-title{font-size:1.05rem;font-weight:700;text-decoration:none}.rsvp{flex-direction:column;gap:8px;display:flex}.rsvp .inline-form input{flex:1;min-width:200px}button.choice{border:1px solid var(--border);color:var(--text);background:0 0}button.choice.going.active{background:var(--green);border-color:var(--green);color:#fff}button.choice.not-going.active{background:var(--red);border-color:var(--red);color:#fff}.rsvp.compact button.choice{padding:6px 12px}.facts{grid-template-columns:160px 1fr;gap:8px 16px;margin:0;display:grid}.facts dt{color:var(--muted);font-weight:700}.facts dd{margin:0}.pre{white-space:pre-wrap}.notice:not(p){margin:0}@media (width<=760px){.event-card{grid-template-columns:1fr;gap:6px}.facts{grid-template-columns:1fr;gap:2px}.facts dd{margin-bottom:8px}}.qr-card{border:1px solid var(--border);border-radius:10px;flex-wrap:wrap;align-items:center;gap:16px;padding:12px;display:flex}.qr-card>div{flex-direction:column;flex:1;align-items:flex-start;gap:8px;min-width:200px;display:flex}.stats{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;display:grid}.stats>div{border:1px solid var(--border);border-radius:10px;flex-direction:column;align-items:center;padding:10px;display:flex}.stats strong{font-variant-numeric:tabular-nums;font-size:1.5rem}.stats span{color:var(--muted);font-size:.85rem}.scan-feedback{border-radius:10px;margin:0;padding:12px 14px;font-size:1.1rem;font-weight:700}.scan-feedback.ok{background:var(--green);color:#fff}.scan-feedback.warn{color:#2a2100;background:#f3c14b}.scan-feedback.error{background:var(--red);color:#fff}.desk-input{flex-wrap:wrap;gap:8px;display:flex}.desk-input .inline-form{flex:1}.desk-input .inline-form input{flex:1;min-width:200px}.scanner video{background:#000;border-radius:10px;width:100%;max-width:480px}.roster{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.roster-toggle{text-align:left;width:100%;color:var(--text);border:1px solid var(--border);background:0 0;grid-template-columns:32px 1fr auto;align-items:center;gap:10px;padding:10px 12px;font-weight:600;display:grid}.roster li.present .roster-toggle{border-color:var(--green)}.tick{border:2px solid var(--border);color:#fff;border-radius:50%;place-items:center;width:28px;height:28px;display:grid}.roster li.present .tick{background:var(--green);border-color:var(--green)}.roster-name{flex-direction:column;display:flex}@media (width<=760px){.stats{grid-template-columns:repeat(2,minmax(0,1fr))}}.tabs{border-bottom:1px solid var(--border);flex-wrap:wrap;gap:4px;display:flex}.tab{color:var(--muted);border-bottom:3px solid #0000;margin-bottom:-1px;padding:8px 14px;font-weight:600;text-decoration:none}.tab.active{color:var(--text);border-bottom-color:var(--red)}.follow-filters{grid-template-columns:1fr 1fr;max-width:560px}.follow-list li>div>.sub{margin-top:2px;display:block}.filters:has(.checkbox){grid-template-columns:2fr 1fr 1fr auto}label.checkbox{flex-direction:row;align-self:end;align-items:center;gap:8px;padding-bottom:10px;font-weight:600}label.checkbox input{width:18px;height:18px}th.num,td.num{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}.negative{color:var(--red)}.positive{color:var(--green)}td.row-actions{white-space:nowrap;text-align:right}td.row-actions button+button{margin-left:10px}.balance-card{border:1px solid var(--border);background:var(--bg);border-radius:12px;flex-direction:column;gap:4px;padding:18px 20px;display:flex}.balance-card strong{font-variant-numeric:tabular-nums;font-size:2rem}.fee-list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.fee-list li{border:1px solid var(--border);border-radius:10px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:12px 14px;display:flex}.fee-pay{align-items:center;gap:12px;display:flex}.fee-pay strong{font-variant-numeric:tabular-nums}.transfer-box{background:var(--bg);border-radius:8px;width:100%;padding:10px 12px}.transfer-box p{margin:0 0 8px}.transfer-box dl{grid-template-columns:max-content 1fr;gap:4px 16px;margin:0 0 8px;display:grid}.transfer-box dt{color:var(--muted)}.transfer-box dd{margin:0}.billing-run-head{flex-wrap:wrap;align-items:flex-end;gap:12px;display:flex}@media (prefers-color-scheme:dark){.positive{color:#6fd3b8}}@media (width<=760px){.filters:has(.checkbox){grid-template-columns:1fr}label.checkbox{padding-bottom:0}td.row-actions{white-space:normal}td.row-actions button{display:block;margin:0 0 6px!important}.fee-pay{justify-content:space-between;width:100%}}fieldset{border:1px solid var(--border);border-radius:8px;flex-wrap:wrap;gap:0 18px;margin:0;padding:10px 14px;display:flex}legend{padding:0 4px;font-weight:700}fieldset label.checkbox{padding-bottom:4px}.public{max-width:720px;margin:0 auto;padding:32px 16px}.brand-link{color:inherit;text-decoration:none}.event-link{border:1px solid var(--border);color:var(--text);border-radius:10px;flex-direction:column;gap:2px;padding:12px 14px;text-decoration:none;display:flex}.event-link:hover{background:var(--bg)}.public-description{color:var(--text)!important}.order-form{border-top:1px solid var(--border);flex-direction:column;gap:14px;padding-top:16px;display:flex}.ticket-types{flex-direction:column;gap:8px;display:flex}.ticket-type{border:1px solid var(--border);border-radius:10px;justify-content:space-between;align-items:center;gap:12px;padding:10px 14px;display:flex}.order-form label.check{align-self:start;padding-bottom:0;font-weight:400}.hp{width:1px;height:1px;position:absolute;left:-10000px;overflow:hidden}.center{text-align:center}.visit-list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.visit-list li{border:1px solid var(--border);border-radius:10px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 12px;padding:10px 14px;display:flex}.visit-list li.blocked{opacity:.75}.visit-list .wide-row{flex-basis:100%}.visit-list .wide-row input{flex:1;min-width:200px}.application h2{margin:8px 0 0;font-size:1.05rem}.packages{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px;display:grid}.package{--package-color:var(--green);text-align:left;background:var(--surface);color:var(--text);border:2px solid var(--border);border-top:6px solid var(--package-color);border-radius:12px;flex-direction:column;align-items:flex-start;gap:4px;padding:14px;font-weight:400;display:flex}.package.active{border-color:var(--package-color);box-shadow:0 0 0 2px color-mix(in srgb, var(--package-color) 25%, transparent)}.package .price{font-size:1.3rem;font-weight:700}.package .choose{color:var(--package-color);margin-top:auto;padding-top:8px;font-weight:600}.policy{flex-direction:column;gap:6px;display:flex}.policy details{border:1px solid var(--border);border-radius:10px;padding:8px 12px}.policy summary{cursor:pointer;font-weight:600}.policy details p{max-height:240px;margin-top:8px;overflow:auto}.member-policies{border-left:4px solid var(--red);margin-bottom:16px}.member-policies ul{gap:12px;margin:0;padding:0;list-style:none}.member-policies li{flex-direction:column;gap:8px;display:flex}.member-policies summary .badge{margin-left:8px}.package-list li>.acceptance-list{border-top:1px solid var(--border);flex-basis:100%;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:4px 16px;max-height:320px;margin:0;padding:8px 0 0;list-style:none;display:grid;overflow:auto}.package-list .acceptance-list li{border:0;border-radius:0;padding:0;font-size:.9rem;display:block}.acceptance-list .sub{margin-left:6px}.package-list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.package-list li{border:1px solid var(--border);border-left:6px solid var(--package-color,var(--border));border-radius:10px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 12px;padding:10px 14px;display:flex}.package-list li>form{flex-basis:100%}.package-list .wide-row{flex-direction:column;flex-basis:100%;gap:12px;display:flex}.application label.check{align-self:flex-start;align-items:flex-start;padding-bottom:0}.application label.check input{flex:none;margin-top:2px}input[type=color]{width:64px;height:40px;padding:2px}.mail-preview{border:1px dashed var(--border);background:var(--bg,transparent);border-radius:10px;flex-direction:column;gap:8px;padding:16px;display:flex}.mail-preview p{margin:0}.bug-dialog{border:1px solid var(--border);background:var(--surface);width:min(560px,100vw - 32px);color:var(--text);border-radius:12px;padding:20px}.bug-dialog::backdrop{background:#0006}.bug-dialog h2{margin:0 0 12px}.bug-dialog form{flex-direction:column;gap:12px;display:flex}.bug-dialog label{flex-direction:column;gap:4px;display:flex}.bug-dialog label.checkbox{flex-direction:row;align-self:flex-start;padding:0}.bug-shot{object-fit:contain;object-position:left top;border:1px solid var(--border);border-radius:8px;max-width:100%;max-height:240px;margin-top:8px;display:block}.bug-list{flex-direction:column;gap:12px;margin:0;padding:0;list-style:none;display:flex}.bug-list>li{border:1px solid var(--border);border-radius:10px;padding:12px 14px}.bug-list .bug-text{white-space:pre-wrap;margin:8px 0}.bug-note{flex-wrap:wrap;align-items:flex-end;gap:8px;margin-top:10px;display:flex}.bug-note label{flex-direction:column;flex:260px;gap:4px;display:flex}.bug-list .bug-head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:8px;display:flex}
