@import"https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&family=JetBrains+Mono:wght@400;500&display=swap";:root{--brand: #e1222a;--brand-hover: #c51820;--brand-soft: #fff1f1;--brand-soft-border: #ffdcdc;--fg-1: #1b1b1b;--fg-2: #555;--fg-3: #777;--fg-4: #999;--bg-1: #f7f7f8;--bg-2: #fff;--bg-3: #fafafb;--bg-chip: #f0f0f2;--border-1: #e3e3e6;--border-soft: #ececef;--border-2: #cfd2d6;--danger: #8a1f1f;--danger-bg: #fdecec;--danger-border: #f3b4b4;--success: #1f6e3a;--success-bg: #dff5e3;--warning: #7a5a00;--warning-bg: #fff4d9;--warning-border: #f1dcb0;--taak-zaalwacht: #6a1b9a;--taak-scheids: #e1222a;--taak-teller: #2e7d32;--font-sans: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-mono: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;--ring-brand: 0 0 0 2px rgba(225, 34, 42, .22);--shadow-lg: 0 4px 16px rgba(15, 15, 16, .05);--shadow-drop: 0 8px 24px rgba(15, 15, 16, .08);--shadow-brand: 0 4px 12px rgba(225, 34, 42, .28)}*{box-sizing:border-box}html,body{margin:0;padding:0}html{scrollbar-gutter:stable}body{font-family:var(--font-sans);font-size:15px;line-height:1.5;color:var(--fg-1);background:var(--bg-1);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.app{max-width:1600px;margin:0 auto;padding:24px 32px 48px}.app header h1{margin:0 0 4px;font-size:24px}.app header p{margin:0;color:var(--fg-2)}.header-top{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:24px}.brand-lockup{display:flex;align-items:center;gap:14px}.brand-lockup img{height:44px;width:auto;display:block;border-radius:4px}.brand-lockup h1{margin:0;font-size:22px;font-weight:700;line-height:1.2;color:var(--fg-1)}.brand-lockup p{margin:2px 0 0;font-size:13px;color:var(--fg-2)}.app-nav{display:inline-flex;gap:4px;padding:4px;background:var(--bg-chip);border-radius:8px}.nav-btn{padding:6px 14px;background:transparent;border:none;border-radius:5px;font-size:14px;color:#444;cursor:pointer;font-family:inherit}.nav-btn:hover:not(.active){background:#e5e7ea}.nav-btn.active{background:var(--brand);color:#fff}.app main section h2{margin:0 0 12px;font-size:18px}.state{padding:16px;background:#fff;border:1px solid var(--border-1);border-radius:6px}.state-error{color:var(--danger);background:var(--danger-bg);border-color:var(--danger-border)}.state code{background:var(--bg-chip);padding:1px 6px;border-radius:3px;font-size:13px}.thuisdagen-table{width:100%;border-collapse:collapse;background:#fff;border:1px solid var(--border-1);border-radius:6px;overflow:hidden}.thuisdagen-table th,.thuisdagen-table td{padding:8px 12px;text-align:left;border-bottom:1px solid var(--border-soft)}.thuisdagen-table thead th{background:var(--bg-chip);font-weight:600;font-size:13px;text-transform:uppercase;letter-spacing:.02em;color:#444}.thuisdagen-table tbody tr:nth-child(2n){background:var(--bg-3)}.thuisdagen-table tbody tr:last-child td{border-bottom:none}.thuisdagen-row-clickable:hover{background:var(--brand-soft)!important}.thuisdagen-table .col-num{text-align:center;font-variant-numeric:tabular-nums;width:110px}.count-cell{display:inline-block;padding:2px 8px;border-radius:10px;background:var(--warning-bg);color:var(--warning);font-size:13px;font-weight:600;min-width:40px}.count-cell.count-klaar{background:var(--success-bg);color:var(--success)}.count-cell.count-open{background:var(--danger-bg);color:var(--danger)}.count-empty{color:#bbb}.table-legend{margin:8px 2px 0;font-size:12px;color:#888}.link-button{background:none;border:none;color:var(--brand);cursor:pointer;padding:4px 6px;font-size:14px;border-radius:4px;font-family:inherit}.link-button:hover{background:var(--brand-soft)}.primary-button{background:var(--brand);color:#fff;border:none;padding:8px 14px;font-size:14px;border-radius:5px;cursor:pointer;font-family:inherit}.primary-button:hover:not(:disabled){background:var(--brand-hover)}.primary-button:disabled{opacity:.6;cursor:not-allowed}.thuisdag-detail{display:flex;flex-direction:column;gap:20px}.detail-header{display:flex;align-items:center;justify-content:space-between;gap:16px;background:#fff;border:1px solid var(--border-1);border-radius:6px;padding:12px 16px}.detail-header-center{flex:1;text-align:center}.detail-header-center h2{margin:0;font-size:20px}.detail-locatie{margin:2px 0 0;color:#666;font-size:13px}.dag-toggle{display:inline-flex;border:1px solid var(--border-2);border-radius:6px;overflow:hidden;background:#f3f4f6}.dag-toggle label{padding:6px 12px;font-size:14px;cursor:pointer;color:#444;display:inline-flex;align-items:center;gap:6px;border-right:1px solid var(--border-2)}.dag-toggle label:last-child{border-right:none}.dag-toggle label.active{background:var(--brand);color:#fff}.dag-toggle input{accent-color:var(--brand)}.detail-two-col{display:flex;gap:20px;flex-wrap:wrap}.detail-two-col>.panel:first-child{flex:2 1 380px}.detail-two-col>.panel:last-child{flex:1 1 240px}.detail-three-col{display:grid;grid-template-columns:minmax(240px,1fr) 210px minmax(380px,2fr);gap:16px;align-items:start}@media (max-width: 960px){.detail-three-col{grid-template-columns:1fr}}.taken-table-compact{font-size:13px}.taken-table-compact th,.taken-table-compact td{padding:6px}.taken-table-compact .col-tijd{width:64px;font-size:13px}.taken-table-compact .taak-drop{min-width:110px;padding:3px 6px}.taken-table-compact .assigned-pill{font-size:12px;padding:2px 8px}.taken-table-compact .drop-placeholder{font-size:12px}.taken-table-compact .badge{font-size:.68rem;padding:2px 7px}.panel{background:#fff;border:1px solid var(--border-1);border-radius:6px;padding:14px 16px}.panel h3{margin:0 0 10px;font-size:15px;text-transform:uppercase;letter-spacing:.03em;color:var(--fg-2)}.panel .empty{color:#888;margin:6px 0}.match-list{list-style:none;padding:0;margin:0}.match-section-heading{margin:18px 0 8px!important;padding-top:12px;border-top:1px solid var(--border-soft)}.match-list li{display:flex;align-items:baseline;gap:12px;padding:6px 0;border-bottom:1px solid var(--bg-chip)}.match-list li:last-child{border-bottom:none}.match-tijd{font-variant-numeric:tabular-nums;font-weight:600;color:#333;min-width:48px}.match-teams{flex:1}.match-meta{font-size:12px;color:#888}.team-pool{display:flex;flex-direction:column;gap:12px}.team-pool-group h4{margin:0 0 6px;font-size:12px;text-transform:uppercase;letter-spacing:.03em;color:var(--fg-3);font-weight:600}.team-pool-group ul{list-style:none;margin:0;padding:0}.team-pool-group li{display:grid;grid-template-columns:1fr 36px 36px;align-items:center;gap:4px;padding:4px 6px;font-size:14px;border-radius:4px}.team-pool-head{display:grid;grid-template-columns:1fr 36px 36px;align-items:baseline;gap:4px;padding:0 6px 4px}.team-pool-head h4{margin:0}.team-pool-col-head{text-align:right;font-size:11px;letter-spacing:.04em;color:#888;font-weight:600}.team-col-num{text-align:right;font-variant-numeric:tabular-nums;color:var(--brand);font-weight:600;font-size:14px}.team-col-num.is-zero{color:#c8c8c8;font-weight:400}.team-draggable.has-day-tasks{background:var(--brand-soft)}.team-draggable.is-uit .team-code{color:var(--warning)}.team-uit-indicator{margin-left:4px;color:var(--warning);font-weight:700;font-size:11px}.team-code{font-weight:600;color:#333}.team-count{color:var(--brand);letter-spacing:1px;font-size:13px}.team-count-num{color:#888;font-size:12px;margin-left:4px}.team-pool-note{margin:8px 0 0;font-size:11px;color:var(--fg-4);font-style:italic}.taken-table{width:100%;border-collapse:collapse}.taken-table th,.taken-table td{padding:8px 10px;text-align:left;border-bottom:1px solid var(--border-soft);vertical-align:middle}.taken-table th{font-size:12px;text-transform:uppercase;letter-spacing:.03em;color:#666}.taken-table tbody tr:last-child td{border-bottom:none}.taken-table select{padding:4px 6px;border:1px solid var(--border-2);border-radius:4px;background:#fff;font-size:14px;min-width:120px;font-family:inherit}.taken-table .col-tijd{font-variant-numeric:tabular-nums;font-weight:600;color:#333;white-space:nowrap;width:96px}.team-draggable{cursor:grab;-webkit-user-select:none;user-select:none;padding:4px 6px;border-radius:4px;transition:background .12s ease}.team-draggable:hover{background:var(--brand-soft)}.team-draggable:active{cursor:grabbing}.team-draggable.is-dragging{opacity:.35;background:var(--brand-soft)}.team-drag-overlay{display:inline-flex;align-items:center;padding:6px 12px;background:var(--brand);color:#fff;border-radius:18px;font-weight:600;font-size:13px;box-shadow:var(--shadow-brand);cursor:grabbing}.team-drag-overlay .team-code{color:#fff}.taak-drop{display:inline-flex;align-items:center;gap:6px;padding:4px 8px;min-width:140px;min-height:30px;border:1px dashed var(--border-2);border-radius:16px;background:var(--bg-3);transition:background .12s ease,border-color .12s ease}.taak-drop.has-assignment{border-style:solid;border-color:var(--brand-soft-border);background:#fff}.taak-drop.is-drag-active{border-color:var(--brand);background:var(--brand-soft)}.taak-drop.is-over{border-color:var(--brand);background:var(--brand-soft-border);box-shadow:inset 0 0 0 1px var(--brand)}.drop-placeholder{color:#888;font-size:13px;font-style:italic}.assigned-pill{display:inline-block;padding:2px 10px;background:var(--brand);color:#fff;border-radius:12px;font-weight:600;font-size:13px;letter-spacing:.02em}.claim-chip{display:inline-flex;align-items:center;gap:2px;padding:2px 4px 2px 10px;background:#efe5ff;color:#5b2ea3;border-radius:12px;font-size:12px;font-weight:600}.claim-name{max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.claim-unclaim-btn{background:transparent;border:none;color:#8a5fc7;font-size:14px;line-height:1;cursor:pointer;padding:0 4px;border-radius:3px}.claim-unclaim-btn:hover:not(:disabled){color:var(--danger);background:var(--danger-bg)}.claim-unclaim-btn:disabled{opacity:.4;cursor:not-allowed}.claim-empty{color:#c8c8c8;font-size:12px}.unassign-btn{background:none;border:none;color:#888;font-size:18px;line-height:1;cursor:pointer;padding:0 4px;border-radius:3px}.unassign-btn:hover:not(:disabled){color:var(--danger);background:var(--danger-bg)}.unassign-btn:disabled{opacity:.5;cursor:not-allowed}.badge{display:inline-block;padding:2px 10px;border-radius:12px;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.03em;color:#fff}.badge-zaalwacht{background:var(--taak-zaalwacht)}.badge.scheids,.badge-scheids{background:var(--taak-scheids)}.badge-teller{background:var(--taak-teller)}.warning-icon{color:#c77700;font-size:16px;cursor:help}.warnings-panel{background:#fffaf0;border-color:var(--warning-border)}.warnings-list{list-style:none;padding:0;margin:0}.warning-item{display:flex;align-items:flex-start;gap:10px;padding:6px 8px;border-radius:4px;margin-bottom:4px}.warning-item.warning-warn{background:var(--warning-bg)}.warning-item.warning-info{background:var(--brand-soft)}.warning-sev{font-size:15px;line-height:1;padding-top:2px}.regels-page{display:flex;flex-direction:column;gap:16px}.regels-header{display:flex;align-items:center;gap:12px}.regels-title{margin:0;font-size:20px}.regels-list{display:flex;flex-direction:column;gap:12px}.rule-card{background:#fff;border:1px solid var(--border-1);border-radius:6px;padding:14px 16px;display:flex;flex-direction:column;gap:10px;transition:opacity .12s ease,background .12s ease}.rule-card-disabled{background:#f3f3f5;opacity:.75}.rule-card-header{display:flex;align-items:center;gap:12px}.rule-enabled-toggle{display:inline-flex;align-items:center;gap:6px;cursor:pointer;-webkit-user-select:none;user-select:none;font-size:12px;text-transform:uppercase;letter-spacing:.03em;color:var(--fg-2)}.rule-enabled-toggle input[type=checkbox]{accent-color:var(--brand);width:16px;height:16px;cursor:pointer}.rule-enabled-label{font-weight:600}.rule-naam-input{flex:1;font-size:16px;font-weight:600;padding:6px 8px;border:1px solid transparent;border-radius:4px;background:transparent;color:var(--fg-1);font-family:inherit}.rule-naam-input:hover,.rule-naam-input:focus{border-color:var(--border-2);background:#fff;outline:none}.rule-card-disabled .rule-naam-input{color:var(--fg-2)}.rule-severity-select{padding:4px 10px;border-radius:12px;border:1px solid transparent;font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.03em;cursor:pointer;font-family:inherit}.rule-severity-info{background:var(--brand-soft);color:var(--brand);border-color:var(--brand-soft-border)}.rule-severity-warn{background:var(--warning-bg);color:var(--warning);border-color:var(--warning-border)}.rule-card-body{display:flex;flex-direction:column;gap:10px}.rule-beschrijving-input{width:100%;padding:4px 8px;font-size:13px;color:#666;border:1px solid transparent;border-radius:4px;background:transparent;font-family:inherit}.rule-beschrijving-input:hover,.rule-beschrijving-input:focus{border-color:var(--border-2);background:#fff;outline:none}.rule-predicate-row{display:flex;align-items:center;gap:8px}.rule-meta-label{font-size:12px;text-transform:uppercase;letter-spacing:.03em;color:var(--fg-3);font-weight:600}.pill{display:inline-block;padding:2px 10px;border-radius:12px;background:var(--bg-chip);color:#333;font-size:12px;font-weight:500}.rule-predicate-label{font-family:var(--font-mono);background:var(--brand-soft);color:var(--brand)}.rule-field{display:flex;flex-direction:column;gap:4px}.rule-params-textarea{width:100%;min-height:80px;padding:8px 10px;font-family:var(--font-mono);font-size:13px;line-height:1.4;border:1px solid var(--border-2);border-radius:4px;background:var(--bg-3);color:var(--fg-1);resize:vertical}.rule-params-textarea:focus{outline:none;border-color:var(--brand);background:#fff;box-shadow:var(--ring-brand)}.rule-params-error{color:var(--danger);font-size:13px;padding:2px 4px}.rule-message-input{width:100%;padding:6px 10px;border:1px solid var(--border-2);border-radius:4px;font-size:14px;background:#fff;font-family:inherit}.rule-message-input:focus{outline:none;border-color:var(--brand);box-shadow:var(--ring-brand)}.rule-save-row{display:flex;align-items:center;justify-content:flex-end;gap:12px;margin-top:4px}.rule-unchanged{font-size:12px;color:#aaa;font-style:italic}.rule-save-error{font-size:13px;color:var(--danger)}.teams-page{display:flex;flex-direction:column;gap:16px}.teams-page-header{display:flex;align-items:center;gap:12px}.teams-page-header h2{margin:0;font-size:20px}.teams-filter-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.teams-filter-label{font-size:12px;text-transform:uppercase;letter-spacing:.03em;color:var(--fg-3);font-weight:600;margin-right:4px}.teams-filter-btn{background:#fff;border:1px solid var(--border-2);color:#666;padding:4px 12px;border-radius:14px;font-size:13px;font-weight:500;cursor:pointer;transition:background .12s ease,color .12s ease,border-color .12s ease;font-family:inherit}.teams-filter-btn:hover{background:var(--bg-chip)}.teams-filter-btn.active{background:var(--brand);color:#fff;border-color:var(--brand)}.teams-filter-btn.active:hover{background:var(--brand-hover);border-color:var(--brand-hover)}.teams-table{width:100%;border-collapse:collapse;background:#fff;border:1px solid var(--border-1);border-radius:6px;overflow:hidden}.teams-table th,.teams-table td{padding:8px 12px;text-align:left;border-bottom:1px solid var(--border-soft)}.teams-table thead th{background:var(--bg-chip);font-weight:600;font-size:13px;text-transform:uppercase;letter-spacing:.02em;color:#444}.teams-table tbody tr:nth-child(2n){background:var(--bg-3)}.teams-table tbody tr:last-child td{border-bottom:none}.teams-table .col-num{text-align:right;font-variant-numeric:tabular-nums;width:90px}.teams-table .teams-col-totaal{font-weight:700;color:var(--fg-1)}.teams-table .teams-col-totaal.is-zero{color:#bbb;font-weight:500}.teams-footer-avg{margin:4px 2px 0;text-align:right;font-size:12px;color:#888}.teams-footer-avg-item{display:inline}.teams-footer-avg-sep{color:#ccc;margin:0 2px}.team-count-season{color:#aaa;font-size:11px;font-variant-numeric:tabular-nums}.faq-panel{background:#fff;border:1px solid var(--border-1);border-radius:6px;padding:0;overflow:hidden}.faq-panel summary{padding:12px 16px;cursor:pointer;font-weight:600;color:#333;list-style:none;-webkit-user-select:none;user-select:none;display:flex;align-items:center;gap:8px}.faq-panel summary::-webkit-details-marker{display:none}.faq-panel summary:before{content:"▸";display:inline-block;font-size:11px;color:#888;transition:transform .12s ease}.faq-panel[open] summary{background:var(--brand-soft);color:var(--brand);border-bottom:1px solid var(--border-1)}.faq-panel[open] summary:before{transform:rotate(90deg)}.faq-panel summary:hover{background:var(--brand-soft)}.faq-content{padding:14px 20px 20px;color:#333}.faq-content h3{margin:16px 0 6px;font-size:14px;font-weight:600;text-transform:none;letter-spacing:0;color:var(--fg-1)}.faq-content h3:first-child{margin-top:4px}.faq-content p{margin:0 0 8px;line-height:1.55}.faq-content code{background:var(--bg-chip);padding:1px 6px;border-radius:3px;font-size:13px;font-family:var(--font-mono)}.faq-list{margin:4px 0 10px;padding-left:22px;line-height:1.6}.faq-list li{margin-bottom:4px}.predicate-doc-table{width:100%;border-collapse:collapse;margin-top:8px;font-size:13px;border:1px solid var(--border-1);border-radius:6px;overflow:hidden}.predicate-doc-table th,.predicate-doc-table td{padding:8px 10px;text-align:left;border-bottom:1px solid var(--border-soft);vertical-align:top}.predicate-doc-table thead th{background:var(--bg-chip);font-size:11px;text-transform:uppercase;letter-spacing:.03em;color:var(--fg-2);font-weight:600}.predicate-doc-table tbody tr:last-child td{border-bottom:none}.predicate-doc-table tbody tr:nth-child(2n){background:var(--bg-3)}.predicate-key-code{font-family:var(--font-mono);font-size:12px;background:var(--brand-soft);color:var(--brand);padding:2px 6px;border-radius:3px;font-weight:600;display:inline-block}.predicate-doc-desc{margin-top:4px;font-size:12px;color:#666;font-weight:400;max-width:320px;line-height:1.45}.predicate-params-code{font-family:var(--font-mono);font-size:12px;background:var(--bg-1);color:var(--fg-1);padding:4px 6px;border-radius:3px;display:inline-block;white-space:pre-wrap;word-break:break-word;border:1px solid var(--border-soft)}.predicate-pill-row{display:flex;flex-wrap:wrap;gap:4px}.predicate-pill{display:inline-block;padding:2px 8px;border-radius:10px;background:var(--bg-chip);color:#444;font-size:11px;font-family:var(--font-mono);border:1px solid var(--border-1)}.regels-toolbar{display:flex;align-items:center;justify-content:flex-end}.new-rule-toggle-btn{background:var(--brand);color:#fff;border:none;padding:8px 14px;font-size:14px;font-weight:600;border-radius:5px;cursor:pointer;transition:background .12s ease;font-family:inherit}.new-rule-toggle-btn:hover:not(:disabled){background:var(--brand-hover)}.new-rule-toggle-btn:disabled{opacity:.6;cursor:not-allowed}.new-rule-form{background:#fff;border:1px solid var(--brand-soft-border);border-radius:6px;padding:16px 18px;display:flex;flex-direction:column;gap:12px;box-shadow:0 2px 6px #e1222a0f}.new-rule-form-title{margin:0 0 4px;font-size:16px;font-weight:600;color:var(--brand);text-transform:none;letter-spacing:0}.new-rule-field{display:flex;flex-direction:column;gap:4px}.new-rule-label{font-size:12px;text-transform:uppercase;letter-spacing:.03em;color:var(--fg-2);font-weight:600}.new-rule-required{color:#c44;margin-left:2px}.new-rule-input{width:100%;padding:6px 10px;border:1px solid var(--border-2);border-radius:4px;font-size:14px;background:#fff;color:var(--fg-1);font-family:inherit}.new-rule-input:focus{outline:none;border-color:var(--brand);box-shadow:var(--ring-brand)}.new-rule-textarea{width:100%;padding:8px 10px;border:1px solid var(--border-2);border-radius:4px;font-size:14px;line-height:1.45;background:#fff;color:var(--fg-1);resize:vertical;font-family:inherit}.new-rule-textarea:focus{outline:none;border-color:var(--brand);box-shadow:var(--ring-brand)}.new-rule-textarea-short{min-height:44px}.new-rule-row-two{display:grid;grid-template-columns:2fr 1fr;gap:12px}.new-rule-submit-error{color:var(--danger);background:var(--danger-bg);border:1px solid var(--danger-border);padding:8px 10px;border-radius:4px;font-size:13px}.new-rule-actions{display:flex;align-items:center;justify-content:flex-end;gap:12px;margin-top:4px}.rule-delete-btn{background:none;border:none;color:#aaa;font-size:22px;line-height:1;width:28px;height:28px;border-radius:4px;cursor:pointer;padding:0;display:inline-flex;align-items:center;justify-content:center;transition:background .12s ease,color .12s ease}.rule-delete-btn:hover:not(:disabled){background:var(--danger-bg);color:var(--danger)}.rule-delete-btn:disabled{opacity:.5;cursor:not-allowed}.widgets-page{display:flex;flex-direction:column;gap:16px}.widgets-header{display:flex;align-items:center;gap:16px}.widgets-title{margin:0;font-size:18px}.widgets-toolbar{display:flex;align-items:center;gap:12px}.new-widget-toggle-btn{background:var(--brand);color:#fff;border:none;padding:8px 14px;font-size:14px;border-radius:5px;cursor:pointer;font-family:inherit}.new-widget-toggle-btn:hover{background:var(--brand-hover)}.widgets-list{display:flex;flex-direction:column;gap:12px}.widget-info-panel{background:var(--brand-soft);border:1px solid var(--brand-soft-border);border-radius:6px;padding:10px 14px}.widget-info-panel>summary{cursor:pointer;font-weight:600;color:var(--brand);list-style:none;-webkit-user-select:none;user-select:none}.widget-info-panel>summary::-webkit-details-marker{display:none}.widget-info-panel>summary:before{content:"▸";display:inline-block;margin-right:6px;transition:transform .12s ease}.widget-info-panel[open]>summary:before{transform:rotate(90deg)}.widget-info-content{margin-top:10px;color:var(--fg-1);font-size:14px}.widget-info-content p{margin:6px 0}.widget-info-content ul{margin:6px 0 6px 20px;padding:0}.widget-info-content code{background:#fff;padding:1px 5px;border-radius:3px;font-size:12.5px;border:1px solid var(--brand-soft-border)}.widget-info-note{background:#fff7e6;border:1px solid #f4d798;border-radius:4px;padding:6px 10px;font-size:13px;margin-top:8px}.widget-card{background:#fff;border:1px solid var(--border-1);border-radius:8px;padding:14px 16px;display:flex;flex-direction:column;gap:10px}.widget-card-header{display:flex;align-items:center;gap:10px}.widget-card-naam{margin:0;font-size:16px;flex:1;min-width:0;word-break:break-word}.widget-delete-btn{background:none;border:none;color:#aaa;font-size:22px;line-height:1;width:28px;height:28px;border-radius:4px;cursor:pointer;padding:0;display:inline-flex;align-items:center;justify-content:center;transition:background .12s ease,color .12s ease}.widget-delete-btn:hover:not(:disabled){background:var(--danger-bg);color:var(--danger)}.widget-delete-btn:disabled{opacity:.5;cursor:not-allowed}.widget-card-body{display:flex;flex-direction:column;gap:8px}.widget-type-badge{display:inline-block;padding:3px 10px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;border-radius:999px;color:#fff;flex-shrink:0}.badge-type-thuisdag{background:var(--brand)}.badge-type-team{background:#1f8a4c}.badge-type-aankomend{background:#7a3fbf}.badge-type-komende_dagen{background:#b8721d}.widget-meta-row{display:flex;align-items:center;gap:8px;font-size:13px;flex-wrap:wrap}.widget-meta-label{font-size:12px;text-transform:uppercase;letter-spacing:.03em;color:var(--fg-2);font-weight:600;min-width:54px}.widget-meta-value{background:#f4f5f7;padding:2px 8px;border-radius:4px;font-family:var(--font-mono);font-size:12.5px;color:var(--fg-1)}.widget-url-row .widget-url-code{flex:1;min-width:0;overflow-wrap:anywhere;word-break:break-all}.widget-config-row{display:flex;flex-direction:column;gap:4px}.widget-config-pre{background:#f4f5f7;border:1px solid var(--border-1);border-radius:4px;padding:8px 10px;font-family:var(--font-mono);font-size:12.5px;margin:0;white-space:pre-wrap;word-break:break-word}.copy-btn{background:#fff;border:1px solid var(--border-2);padding:4px 10px;font-size:12px;border-radius:4px;cursor:pointer;color:var(--brand);white-space:nowrap;transition:background .12s ease,border-color .12s ease,color .12s ease;font-family:inherit}.copy-btn:hover{background:var(--brand-soft);border-color:var(--brand)}.copy-btn:active{background:var(--brand-soft-border)}.widget-collapsible{background:#f9fafb;border:1px solid var(--border-1);border-radius:6px;padding:8px 12px}.widget-collapsible>summary{cursor:pointer;font-weight:600;font-size:13px;color:var(--brand);list-style:none;-webkit-user-select:none;user-select:none}.widget-collapsible>summary::-webkit-details-marker{display:none}.widget-collapsible>summary:before{content:"▸";display:inline-block;margin-right:6px;transition:transform .12s ease}.widget-collapsible[open]>summary:before{transform:rotate(90deg)}.widget-preview-frame{margin-top:10px;border:1px solid var(--border-1);border-radius:4px;overflow:hidden;background:#fff}.widget-embed-wrap{margin-top:10px;display:flex;flex-direction:column;gap:6px;align-items:flex-start}.widget-embed-textarea{width:100%;min-height:60px;padding:8px 10px;border:1px solid var(--border-2);border-radius:4px;font-family:var(--font-mono);font-size:12.5px;line-height:1.45;background:#fff;color:var(--fg-1);resize:vertical}.widget-embed-textarea:focus{outline:none;border-color:var(--brand);box-shadow:var(--ring-brand)}.new-widget-form{background:#fff;border:1px solid var(--border-2);border-radius:8px;padding:16px;display:flex;flex-direction:column;gap:12px}.new-widget-form-title{margin:0;font-size:16px}.widget-form-field{display:flex;flex-direction:column;gap:4px}.widget-form-label{font-size:12px;text-transform:uppercase;letter-spacing:.03em;color:var(--fg-2);font-weight:600}.widget-required{color:#c44;margin-left:2px}.widget-form-input{width:100%;padding:6px 10px;border:1px solid var(--border-2);border-radius:4px;font-size:14px;background:#fff;color:var(--fg-1);font-family:inherit}.widget-form-input:focus{outline:none;border-color:var(--brand);box-shadow:var(--ring-brand)}.widget-form-input-number{max-width:120px}.widget-form-hint{font-size:12px;color:#666}.widget-form-error{font-size:12px;color:var(--danger)}.widget-slug-row{display:flex;gap:8px;align-items:stretch}.widget-slug-row .widget-form-input{flex:1}.widget-slug-gen-btn{background:#f4f5f7;border:1px solid var(--border-2);padding:0 12px;font-size:13px;border-radius:4px;cursor:pointer;color:#444;white-space:nowrap;font-family:inherit}.widget-slug-gen-btn:hover:not(:disabled){background:#e5e7ea}.widget-slug-gen-btn:disabled{opacity:.5;cursor:not-allowed}.widget-slug-preview{font-size:12px;color:#666}.widget-slug-preview code{background:#f4f5f7;padding:1px 6px;border-radius:3px;font-family:var(--font-mono);font-size:12px}.widget-form-submit-error{color:var(--danger);background:var(--danger-bg);border:1px solid var(--danger-border);padding:8px 10px;border-radius:4px;font-size:13px}.widget-form-actions{display:flex;align-items:center;justify-content:flex-end;gap:12px;margin-top:4px}.header-right{display:flex;align-items:center;gap:12px}.auth-chip-container{position:relative;display:inline-block}.auth-chip{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;background:var(--bg-chip);border:1px solid var(--border-1);border-radius:999px;font-size:13px;color:#333;cursor:pointer;max-width:200px}.auth-chip:hover{background:#e5e7ea}.auth-chip-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:160px}.auth-chip-caret{font-size:10px;color:#666}.auth-dropdown{position:absolute;top:calc(100% + 6px);right:0;min-width:200px;background:#fff;border:1px solid var(--border-1);border-radius:6px;box-shadow:var(--shadow-drop);padding:6px;z-index:50}.auth-dropdown-email{padding:6px 10px;font-size:12px;color:#666;border-bottom:1px solid var(--border-soft);margin-bottom:4px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.auth-dropdown-item{display:block;width:100%;text-align:left;padding:8px 10px;background:none;border:none;border-radius:4px;font-size:14px;color:#333;cursor:pointer;font-family:inherit}.auth-dropdown-item:hover:not(:disabled){background:#f4f5f7}.auth-dropdown-item:disabled{opacity:.6;cursor:not-allowed}.auth-gate-loading{max-width:420px;margin:80px auto;text-align:center}.login-page{display:flex;justify-content:center;align-items:flex-start;padding:80px 16px 48px}.login-card{width:100%;max-width:360px;padding:24px;background:#fff;border:1px solid var(--border-1);border-radius:8px;box-shadow:var(--shadow-lg)}.login-title{margin:0 0 4px;font-size:20px}.login-subtitle{margin:0 0 20px;color:var(--fg-2);font-size:14px}.login-form-field{margin-bottom:12px}.login-label{display:block;margin-bottom:4px;font-size:13px;color:#444}.login-input{width:100%;padding:8px 10px;font-size:14px;border:1px solid var(--border-2);border-radius:4px;background:#fff;font-family:inherit}.login-input:focus{outline:none;border-color:var(--brand);box-shadow:var(--ring-brand)}.login-input:disabled{background:#f4f5f7;color:#888}.login-divider{height:1px;background:var(--border-soft);margin:20px 0 12px}.login-help-toggle{background:none;border:none;padding:4px 0;color:var(--brand);font-size:12px;cursor:pointer;text-decoration:underline;font-family:inherit}.login-help-toggle:hover{color:var(--brand-hover)}.login-back-row{margin-top:16px}.users-page{display:flex;flex-direction:column;gap:16px}.users-page-header{display:flex;align-items:center;gap:12px}.users-page-header h2{margin:0;font-size:20px}.users-filter-bar{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.users-search{flex:1;min-width:240px;max-width:480px;padding:8px 12px;font-size:14px;border:1px solid var(--border-2);border-radius:4px;background:#fff;color:var(--fg-1);font-family:inherit}.users-search:focus{outline:none;border-color:var(--brand);box-shadow:var(--ring-brand)}.users-team-filter{padding:8px 10px;font-size:14px;border:1px solid var(--border-2);border-radius:4px;background:#fff;color:var(--fg-1);min-width:200px;font-family:inherit}.users-team-filter:focus{outline:none;border-color:var(--brand);box-shadow:var(--ring-brand)}.users-table{width:100%;border-collapse:collapse;background:#fff;border:1px solid var(--border-1);border-radius:6px;overflow:hidden}.users-table th,.users-table td{padding:8px 12px;text-align:left;border-bottom:1px solid var(--border-soft);vertical-align:middle}.users-table thead th{background:var(--bg-chip);font-weight:600;font-size:13px;text-transform:uppercase;letter-spacing:.02em;color:#444}.users-table tbody tr:nth-child(2n){background:var(--bg-3)}.users-table tbody tr:last-child td{border-bottom:none}.users-no-subs{color:#bbb}.subscription-pills{display:flex;flex-wrap:wrap;gap:4px}.subscription-pill{display:inline-block;padding:2px 10px;border-radius:12px;background:var(--bg-chip);color:#333;font-size:12px;font-weight:600;letter-spacing:.01em}.subscription-pill-speler{background:var(--brand-soft);color:var(--brand)}.subscription-pill-ouder{background:#efe5ff;color:#6b3fb3}.user-delete-btn{background:none;border:none;color:#aaa;font-size:22px;line-height:1;width:28px;height:28px;border-radius:4px;cursor:pointer;padding:0;display:inline-flex;align-items:center;justify-content:center;transition:background .12s ease,color .12s ease}.user-delete-btn:hover:not(:disabled){background:var(--danger-bg);color:var(--danger)}.user-delete-btn:disabled{opacity:.5;cursor:not-allowed}.users-stats{margin:4px 2px 0;text-align:right;font-size:12px;color:#888}.invites-page{display:flex;flex-direction:column;gap:16px}.invites-header{display:flex;align-items:center;gap:16px}.invites-form{background:#f9fafb;border:1px solid var(--border-1);border-radius:6px;padding:14px 16px}.invites-table{width:100%}.invites-table td,.invites-table th{vertical-align:middle}.invite-row-expired td{color:#888}.invite-usage-empty{color:#999}.invite-usage-partial{color:#b8860b;font-weight:600}.invite-usage-full{color:#c62828;font-weight:600}.invite-url-cell{font-family:var(--font-mono);font-size:12px}.invite-url-text{display:inline-block;max-width:280px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;vertical-align:middle;margin-right:8px;color:#444}.invite-expired-label{color:#c62828;font-weight:600}.invite-created-url-row{display:flex;align-items:center;gap:10px;background:var(--brand-soft);border:1px solid var(--brand-soft-border);border-radius:6px;padding:10px 12px;margin:8px 0 12px;flex-wrap:wrap}.invite-created-url-row .invite-url-cell{flex:1 1 auto;word-break:break-all;color:var(--brand)}.audit-page .audit-total{color:#888;font-weight:400;font-size:15px}.audit-table td.audit-when{white-space:nowrap;font-variant-numeric:tabular-nums;color:#444;font-size:13px}.audit-table .audit-email{color:#666;font-size:12px}.audit-table code{background:#eef0f3;padding:1px 6px;border-radius:3px;font-size:12px;font-family:var(--font-mono)}.audit-action-pill{display:inline-block;padding:2px 10px;border-radius:12px;font-size:12px;font-weight:600;letter-spacing:.01em;text-transform:uppercase}.audit-action-create{background:#e0f6e8;color:#146c2e}.audit-action-update{background:#fff3d6;color:#8a5a00}.audit-action-delete{background:var(--danger-bg);color:var(--danger)}.audit-load-more{display:flex;justify-content:center;padding:12px 0}.audit-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;display:flex;align-items:center;justify-content:center;z-index:1000;padding:24px}.audit-modal{background:#fff;border-radius:8px;box-shadow:0 12px 32px #00000040;width:min(1100px,100%);max-height:calc(100vh - 48px);display:flex;flex-direction:column;overflow:hidden}.audit-modal-header{display:flex;justify-content:space-between;align-items:flex-start;padding:16px 20px;border-bottom:1px solid var(--border-1);gap:16px}.audit-modal-meta{color:#666;font-size:13px;margin-top:4px}.audit-modal-meta code{background:#eef0f3;padding:1px 5px;border-radius:3px;font-size:12px}.audit-modal-close{background:none;border:none;font-size:28px;line-height:1;color:#666;cursor:pointer;padding:0;width:32px;height:32px;border-radius:4px}.audit-modal-close:hover{background:var(--bg-chip);color:var(--fg-1)}.audit-diff-cols{display:grid;grid-template-columns:1fr 1fr;gap:16px;padding:16px 20px;overflow:auto;flex:1}.audit-diff-col h4{margin:0 0 8px;font-size:13px;text-transform:uppercase;letter-spacing:.03em;color:var(--fg-2)}.audit-diff-col pre{background:#1f2430;color:#e6e8eb;padding:14px 16px;border-radius:6px;overflow:auto;font-size:12px;line-height:1.5;font-family:var(--font-mono);margin:0;white-space:pre-wrap;word-break:break-word}@media (max-width: 720px){.audit-diff-cols{grid-template-columns:1fr}}.season-chip-container{position:relative;display:inline-block}.season-chip{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;background:#e8eaee;border:1px solid #d4d7dc;border-radius:999px;font-size:13px;color:#333;cursor:pointer;max-width:240px}.season-chip:hover{background:#dde0e5}.season-chip-loading{color:#666;cursor:default}.season-chip-label{color:#666;font-size:11px;text-transform:uppercase;letter-spacing:.04em}.season-chip-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:140px;font-weight:600}.season-chip-badge{color:#2e7d32;font-size:10px}.season-chip-caret{font-size:10px;color:#666}.season-chip-dropdown{position:absolute;top:calc(100% + 6px);right:0;min-width:220px;background:#fff;border:1px solid var(--border-1);border-radius:6px;box-shadow:var(--shadow-drop);padding:6px;z-index:50}.season-chip-item{display:flex;width:100%;justify-content:space-between;align-items:center;gap:10px;text-align:left;padding:8px 10px;background:none;border:none;border-radius:4px;font-size:14px;color:#333;cursor:pointer;font-family:inherit}.season-chip-item:hover:not(:disabled){background:#f4f5f7}.season-chip-item.is-selected{background:var(--brand-soft);color:var(--brand);font-weight:600}.season-chip-item-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.season-chip-item-badge{font-size:10px;text-transform:uppercase;letter-spacing:.04em;color:#2e7d32;background:#e6f4ea;border-radius:999px;padding:2px 8px}.seasons-page{display:flex;flex-direction:column;gap:16px}.seasons-table{width:100%}.seasons-form{background:#f9fafb;border:1px solid var(--border-1);border-radius:6px;padding:14px 16px;display:flex;flex-direction:column;gap:12px}.seasons-form-row{display:flex;gap:16px;flex-wrap:wrap;align-items:flex-end}.seasons-form-row label{display:flex;flex-direction:column;gap:4px;font-size:13px;color:var(--fg-2)}.seasons-form-row label span{font-weight:600}.seasons-form-row input[type=text],.seasons-form-row input[type=date]{padding:8px 10px;font-size:14px;border:1px solid var(--border-2);border-radius:4px;background:#fff;color:var(--fg-1);min-width:180px;font-family:inherit}.seasons-form-row input:focus{outline:none;border-color:var(--brand);box-shadow:var(--ring-brand)}.seasons-form-check{flex-direction:row!important;align-items:center!important;gap:8px!important}.seasons-form-check input{width:16px;height:16px}.seasons-form-actions{display:flex;gap:12px;align-items:center}.season-active-pill{display:inline-block;font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:#2e7d32;background:#e6f4ea;border-radius:999px;padding:3px 10px;font-weight:600}.season-delete-btn{color:#c62828}.nieuws-page{display:flex;flex-direction:column;gap:16px;padding:0 4px}.nieuws-header{display:flex;align-items:center;gap:16px;flex-wrap:wrap}.nieuws-header .widgets-title{flex:1;margin:0}.nieuws-new-btn{margin-left:auto}.nieuws-filter-toggle{display:flex;gap:16px;align-items:center;flex-wrap:wrap;padding:8px 12px;background:var(--brand-soft);border:1px solid var(--brand-soft-border);border-radius:8px}.nieuws-filter-toggle label{display:inline-flex;align-items:center;gap:6px;cursor:pointer;font-size:14px}.nieuws-filter-toggle input[type=radio]{accent-color:var(--brand)}.nieuws-filter-count{margin-left:auto;font-size:12px;color:#555}.nieuws-list{display:flex;flex-direction:column;gap:12px}.nieuws-card{display:flex;gap:16px;padding:14px;background:#fff;border:1px solid var(--brand-soft-border);border-radius:10px;box-shadow:0 1px 2px #00000008;transition:box-shadow .12s ease,transform .12s ease}.nieuws-card:hover{box-shadow:0 4px 12px #00000014;transform:translateY(-1px)}.nieuws-card-thumb{width:120px;height:90px;object-fit:cover;border-radius:6px;flex-shrink:0;background:var(--brand-soft)}.nieuws-card-thumb-empty{display:flex;align-items:center;justify-content:center;font-size:11px;color:#aaa;background:#f6f6f6;border:1px dashed #ddd}.nieuws-card-body{display:flex;flex-direction:column;gap:6px;flex:1;min-width:0}.nieuws-card-title{font-size:16px;font-weight:600;color:#222;line-height:1.3}.nieuws-card-meta{font-size:12px;color:#666;display:flex;flex-wrap:wrap;gap:4px;align-items:center}.nieuws-card-excerpt{font-size:13px;color:#444;line-height:1.4;white-space:pre-wrap;word-wrap:break-word}.nieuws-card-actions{display:flex;gap:12px;margin-top:4px;align-items:center}.nieuws-delete-btn{font-size:12px;padding:4px 10px;border-radius:6px;width:auto;height:auto}.nieuws-status-badge{display:inline-block;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.03em;border-radius:999px;padding:2px 10px;margin-left:4px}.nieuws-status-badge.badge-published{background:var(--success-bg);color:var(--success)}.nieuws-status-badge.badge-draft{background:var(--warning-bg);color:var(--warning);border:1px solid var(--warning-border)}.nieuws-form{background:#fff}.nieuws-form-field{margin-bottom:12px}.nieuws-form-field-checkbox{margin-top:4px}.nieuws-checkbox-label{display:inline-flex;align-items:center;gap:8px;cursor:pointer;font-size:14px}.nieuws-checkbox-label input[type=checkbox]{accent-color:var(--brand);width:16px;height:16px}.nieuws-checkbox-label small{color:#666;font-weight:400}.nieuws-dropzone{display:block;border:2px dashed var(--brand-soft-border);border-radius:8px;padding:24px;text-align:center;cursor:pointer;background:var(--brand-soft);color:#555;font-size:13px;transition:border-color .12s ease,background .12s ease;margin-top:8px}.nieuws-dropzone small{display:block;margin-top:4px;color:#777;font-size:12px}.nieuws-dropzone:hover,.nieuws-dropzone:focus-visible{border-color:var(--brand);background:#fff;outline:none}.nieuws-dropzone-over{border-color:var(--brand);background:#fff;box-shadow:inset 0 0 0 2px var(--brand-soft-border)}.nieuws-dropzone-disabled{cursor:not-allowed;opacity:.6}.nieuws-thumbs{display:flex;flex-wrap:wrap;gap:8px;margin:8px 0}.nieuws-thumb{position:relative;width:96px;height:96px;border-radius:6px;overflow:hidden;border:1px solid var(--brand-soft-border);background:#f5f5f5;flex:0 0 auto}.nieuws-thumb img{width:100%;height:100%;object-fit:cover;display:block}.nieuws-thumb-new{border-color:var(--brand);box-shadow:0 0 0 1px var(--brand)}.nieuws-thumb-remove{position:absolute;top:2px;right:2px;width:22px;height:22px;border-radius:50%;border:none;background:#0f0f10bf;color:#fff;font-size:16px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0}.nieuws-thumb-remove:hover{background:var(--brand)}.nieuws-remove-notice{font-size:12px;color:var(--warning);background:var(--warning-bg);border:1px solid var(--warning-border);border-radius:6px;padding:6px 10px;margin:8px 0;display:flex;gap:8px;align-items:center;flex-wrap:wrap}.nieuws-push-hint{display:block;margin-top:4px;color:#666;font-size:12px}.nieuws-card-thumb-btn{position:relative;padding:0;border:none;background:transparent;cursor:pointer;display:block}.nieuws-card-thumb-btn .nieuws-card-thumb{transition:opacity .12s ease}.nieuws-card-thumb-btn:hover .nieuws-card-thumb{opacity:.85}.nieuws-card-thumb-count{position:absolute;bottom:6px;right:6px;background:#0f0f10bf;color:#fff;border-radius:10px;padding:2px 8px;font-size:11px;font-weight:600;pointer-events:none}.nieuws-lightbox{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000d9;z-index:9999;display:flex;align-items:center;justify-content:center;padding:40px}.nieuws-lightbox-img{max-width:100%;max-height:100%;display:block;border-radius:4px;cursor:default}.nieuws-lightbox-nav{position:absolute;top:50%;transform:translateY(-50%);width:48px;height:48px;border-radius:50%;border:none;background:#ffffff26;color:#fff;font-size:32px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center}.nieuws-lightbox-nav:hover{background:#ffffff4d}.nieuws-lightbox-prev{left:16px}.nieuws-lightbox-next{right:16px}.nieuws-lightbox-close{position:absolute;top:16px;right:16px;width:40px;height:40px;border-radius:50%;border:none;background:#ffffff26;color:#fff;font-size:24px;line-height:1;cursor:pointer}.nieuws-lightbox-close:hover{background:var(--brand)}.nieuws-lightbox-counter{position:absolute;bottom:16px;left:50%;transform:translate(-50%);background:#0f0f10bf;color:#fff;border-radius:12px;padding:4px 12px;font-size:12px}
