.oo-wrap{--oo-green-dark:var(--color-2,#a00410);--oo-green:var(--color-3,#e30512);--oo-green-tint:var(--color-1,#f4b4b7);--oo-green-bg:var(--color-4,#fdebec);--oo-text:var(--color-body,#1e1e1e);--oo-meta:#6b6b6b;--oo-line:#e7dede;--oo-radius-lg:var(--border-radius-lg,10px);--oo-radius-btn:var(--button-border-radius,5px);--oo-aanwezig:#2f7d1a;--oo-aanwezig-bg:#eaf4dd;--oo-aanwezig-tint:#cae3a9;--oo-afwezig:#b3261e;--oo-afwezig-bg:#fceceb;max-width:1040px;margin:0 auto;font-family:'Helvetica Now Text','Helvetica Neue',Arial,sans-serif;color:var(--oo-text)}.oo-login-wrap{max-width:420px;padding:20px 0 40px}.oo-login-box{background:#fff;border:1px solid var(--oo-line);border-radius:var(--oo-radius-lg);padding:40px 36px;box-shadow:0 4px 24px rgba(0,0,0,.08)}.oo-login-logo{text-align:center;margin-bottom:16px}.oo-login-logo .dashicons{font-size:48px;width:48px;height:48px;color:var(--oo-green-dark)}.oo-login-box h2{text-align:center;margin:0 0 4px;font-size:24px;line-height:1.2;color:var(--oo-green-dark)}.oo-login-sub{text-align:center;color:var(--oo-meta);font-size:15px;margin:0 0 24px}.oo-login-form .oo-form-groep{margin-bottom:16px}.oo-login-form label{display:block;font-size:14px;font-weight:600;color:var(--oo-text);margin-bottom:5px}.oo-login-form input[type=text],.oo-login-form input[type=password]{width:100%;padding:10px 12px;border:1px solid #c8d3bf;border-radius:var(--oo-radius-btn);font-size:16px;box-sizing:border-box;transition:border-color .15s,box-shadow .15s}.oo-login-form input:focus{outline:none;border-color:var(--oo-green);box-shadow:0 0 0 3px rgba(227,5,18,.18)}.oo-wachtwoord-vergeten{text-align:center;font-size:14px;margin-top:14px;color:var(--oo-meta)}.oo-wachtwoord-vergeten a{color:var(--oo-green);text-decoration:none}.oo-wachtwoord-vergeten a:hover{text-decoration:underline}.oo-btn{display:inline-block;padding:9px 18px;border-radius:var(--oo-radius-btn);font-size:15px;font-weight:700;line-height:1.2;cursor:pointer;border:none;transition:background .15s,color .15s,border-color .15s,opacity .15s}.oo-btn-primary{background:var(--oo-green-dark);color:#fff;width:100%;padding:12px;font-size:16px;margin-top:4px}.oo-btn-primary:hover{background:#00631f}.oo-btn-aanwezig{background:var(--oo-aanwezig-bg);color:var(--oo-aanwezig);border:1.5px solid var(--oo-aanwezig-tint)}.oo-btn-aanwezig:hover,.oo-btn-aanwezig.actief{background:var(--oo-aanwezig);color:#fff;border-color:var(--oo-aanwezig)}.oo-btn-afwezig{background:var(--oo-afwezig-bg);color:var(--oo-afwezig);border:1.5px solid #f0c4c1}.oo-btn-afwezig:hover,.oo-btn-afwezig.actief{background:var(--oo-afwezig);color:#fff;border-color:var(--oo-afwezig)}.oo-alert{padding:11px 16px;border-radius:var(--oo-radius-btn);font-size:15px;margin-bottom:16px}.oo-alert-error{background:var(--oo-afwezig-bg);color:var(--oo-afwezig);border:1px solid #f0c4c1}.oo-alert-succes{background:var(--oo-green-bg);color:var(--oo-green-dark);border:1px solid var(--oo-green-tint)}.oo-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px;padding-bottom:14px;border-bottom:2px solid var(--oo-green-tint)}.oo-header h2{margin:0;font-size:26px;line-height:1.2;color:var(--oo-green-dark)}.oo-header-meta{display:flex;align-items:center;gap:16px;font-size:15px}.oo-welkom{color:var(--oo-meta)}.oo-uitlog-link{color:var(--oo-green);text-decoration:none;font-size:14px;font-weight:600}.oo-uitlog-link:hover{text-decoration:underline}.oo-uitleg{margin:0 0 20px;padding:14px 18px;background:var(--oo-green-bg);border-left:4px solid var(--oo-green);border-radius:6px;font-size:14px;line-height:1.5}.oo-uitleg>:first-child{margin-top:0}.oo-uitleg>:last-child{margin-bottom:0}.oo-uitleg p{margin:0 0 .6em}.oo-uitleg a{color:var(--oo-green-dark)}.oo-legenda{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:20px;font-size:14px;color:var(--oo-meta)}.oo-leg{display:flex;align-items:center;gap:4px}.oo-leg.aanwezig{color:var(--oo-aanwezig)}.oo-leg.afwezig{color:var(--oo-afwezig)}.oo-leg.onbekend{color:var(--oo-meta)}.oo-leg.verlopen{color:#9aa89b}.oo-optredens-lijst{display:flex;flex-direction:column;gap:5px}.oo-optreden-kaart{border:1px solid var(--oo-line);border-radius:8px;background:#fff;transition:box-shadow .15s,background .15s}.oo-optreden-kaart:hover{box-shadow:0 2px 10px rgba(0,0,0,.1)}.oo-optreden-kaart.oo-verleden{opacity:.65;background:#f7f7f7}.oo-optreden-kaart.status-aanwezig{border-left:4px solid var(--oo-aanwezig)}.oo-optreden-kaart.status-afwezig{border-left:4px solid var(--oo-afwezig)}.oo-optreden-kaart.status-onbekend{border-left:4px solid #d1d5db}.oo-optreden-kaart.oo-focus{box-shadow:0 0 0 3px var(--oo-green-tint);background:var(--oo-green-bg)}.oo-kaart-body{display:flex;align-items:center;gap:12px;padding:7px 12px}.oo-rij-info{--oo-kol-datum:92px;--oo-kol-tijd:88px;--oo-kol-gap:12px;display:flex;flex-direction:column;gap:3px;flex:1 1 auto;min-width:0;overflow:hidden}.oo-rij-hoofd{display:flex;align-items:center;flex-wrap:nowrap;gap:6px var(--oo-kol-gap);min-width:0}.oo-rij-details{display:flex;align-items:center;flex-wrap:nowrap;gap:4px var(--oo-kol-gap);min-width:0;padding-left:calc(var(--oo-kol-datum) + var(--oo-kol-tijd) + 2 * var(--oo-kol-gap))}.oo-rij-datum{flex:0 0 var(--oo-kol-datum);font-size:14px;font-weight:700;color:var(--oo-green-dark);white-space:nowrap;text-transform:capitalize;font-variant-numeric:tabular-nums}.oo-rij-tijd{flex:0 0 var(--oo-kol-tijd);font-size:13px;color:var(--oo-meta);white-space:nowrap;font-variant-numeric:tabular-nums}.oo-rij-titel{font-size:15px;font-weight:700;line-height:1.2;color:var(--oo-green-dark);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:0 1 auto;min-width:3em}.oo-meta-item{display:inline-flex;align-items:center;gap:4px;font-size:13px;color:var(--oo-meta);white-space:nowrap;flex:0 0 auto}.oo-meta-locatie,.oo-meta-invallers{flex:0 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis}.oo-rij-omschrijving{font-size:13px;color:var(--oo-meta);opacity:.85;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1 1 40px;min-width:0}.oo-optreden-status{flex:0 0 auto;display:inline-block;box-sizing:border-box;width:9.5em;text-align:center;overflow:hidden;text-overflow:ellipsis;font-size:11px;font-weight:700;line-height:1;padding:4px 9px;border-radius:999px;border:1px solid transparent;text-transform:uppercase;letter-spacing:.02em;white-space:nowrap}.oo-rij-acties{display:flex;align-items:center;gap:8px;flex:0 0 auto}.oo-status-huidige{flex:0 0 7.5em;font-size:12px;font-weight:700;white-space:nowrap}.oo-rij-knoppen{flex:0 0 74px;display:flex;justify-content:flex-start}.oo-status-huidige.status-aanwezig{color:var(--oo-aanwezig)}.oo-status-huidige.status-afwezig{color:var(--oo-afwezig)}.oo-status-huidige.status-onbekend{color:var(--oo-meta)}.oo-status-knoppen{display:flex;gap:4px}.oo-status-knoppen .oo-btn{padding:5px 10px;font-size:14px;line-height:1}.oo-slot{font-size:15px;color:var(--oo-meta);padding:0 4px}.oo-agenda-mini{display:flex;gap:4px}.oo-agenda-mini a{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:6px;border:1px solid var(--oo-green-tint);background:var(--oo-green-bg);color:var(--oo-green-dark);text-decoration:none;font-size:14px}.oo-agenda-mini a:hover{background:var(--oo-green-tint)}.oo-vaste-link{margin:0 0 14px;padding:8px 12px;border:1px solid var(--oo-green-tint);border-radius:8px;background:var(--oo-green-bg);font-size:13px}.oo-vaste-link>summary{cursor:pointer;font-weight:700;color:var(--oo-green-dark)}.oo-vaste-link p{margin:8px 0}.oo-vaste-link-rij{display:flex;gap:6px}.oo-vaste-link-rij input{flex:1 1 auto;min-width:0;padding:6px 8px;border:1px solid var(--oo-line);border-radius:var(--oo-radius-btn);font-size:12px;background:#fff}.oo-login-hint{font-size:13px;color:var(--oo-meta);text-align:center}.oo-bezetting{border-top:1px solid var(--oo-line);font-size:13px}.oo-bezetting>summary{display:flex;align-items:center;gap:6px;padding:5px 12px;cursor:pointer;color:var(--oo-meta);list-style:none;user-select:none}.oo-bezetting>summary::-webkit-details-marker{display:none}.oo-bezetting>summary:before{content:'▸';display:inline-block;width:1em;transition:transform .15s}.oo-bezetting[open]>summary:before{transform:rotate(90deg)}.oo-bezetting>summary:hover{color:var(--oo-green-dark)}.oo-bezetting-teller{font-weight:700;color:var(--oo-text)}.oo-bezetting-inhoud{padding:4px 12px 12px}.oo-bezetting-groepen{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px, 1fr));gap:10px 16px}.oo-bezetting-kop{display:flex;justify-content:space-between;align-items:baseline;gap:8px;padding-bottom:3px;margin-bottom:4px;border-bottom:1px solid var(--oo-line);font-weight:700;color:var(--oo-green-dark)}.oo-bezetting-aantal{font-size:12px;color:var(--oo-aanwezig)}.oo-bezetting-groep-leeg .oo-bezetting-aantal{color:var(--oo-afwezig)}.oo-bezetting-grid{list-style:none;margin:0;padding:0}.oo-bezetting-lid{display:flex;align-items:center;gap:6px;padding:1px 0;margin:0}.oo-bezetting-lid .oo-lid-status{flex:0 0 1.1em;font-weight:700;text-align:center}.oo-bezetting-lid.status-aanwezig .oo-lid-status{color:var(--oo-aanwezig)}.oo-bezetting-lid.status-afwezig .oo-lid-status{color:var(--oo-afwezig)}.oo-bezetting-lid.status-onbekend .oo-lid-status{color:var(--oo-meta)}.oo-bezetting-lid.status-afwezig .oo-lid-naam{color:var(--oo-meta);text-decoration:line-through}.oo-bezetting-lid.jij .oo-lid-naam{font-weight:700}.oo-leeg{text-align:center;padding:60px 20px;color:var(--oo-meta);font-size:16px}@media (max-width:720px){.oo-kaart-body{flex-wrap:wrap}.oo-rij-hoofd,.oo-rij-details{flex-wrap:wrap;white-space:normal}.oo-rij-details{padding-left:0}.oo-rij-omschrijving{flex-basis:100%}.oo-rij-tijd,.oo-status-huidige,.oo-rij-knoppen{flex-basis:auto}.oo-rij-tijd:empty{display:none}.oo-optreden-status{width:auto}.oo-rij-acties{margin-left:auto}.oo-header h2{font-size:22px}.oo-login-box{padding:28px 20px}}