@font-face{font-family:Metropolis;src:url(/fonts/metropolis-regular-webfont.woff2)format("woff2"),url(/fonts/metropolis-regular-webfont.woff)format("woff");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Metropolis;src:url(/fonts/metropolis-medium-webfont.woff2)format("woff2"),url(/fonts/metropolis-medium-webfont.woff)format("woff");font-weight:500;font-style:normal;font-display:swap}@font-face{font-family:Metropolis;src:url(/fonts/metropolis-medium-webfont.woff2)format("woff2"),url(/fonts/metropolis-medium-webfont.woff)format("woff");font-weight:600;font-style:normal;font-display:swap}@font-face{font-family:Metropolis;src:url(/fonts/metropolis-bold-webfont.woff2)format("woff2"),url(/fonts/metropolis-bold-webfont.woff)format("woff");font-weight:700;font-style:normal;font-display:swap}:root{--navy-900:#0f0a2e;--navy-800:#1a1450;--navy-700:#2c2185;--navy-600:#3f32a8;--gold-400:#ff7eb3;--gold-500:#ee2361;--gold-600:#c41a4f;--brand-purple:#2c2185;--brand-magenta:#ee2361;--primary:#ee2361;--accent:#ee2361;--surface-100:#faf8fc;--surface-200:#f3f0f7;--surface-300:#e4dfe8;--surface-400:#c9c2d4;--text-900:#1a1230;--text-800:#2d2245;--text-700:#453a58;--text-600:#5c526d;--text-500:#736a82;--text-400:#8a8394;--text-300:#a8a2b0;--danger:#dc2626;--danger-light:#fee2e2;--success:#16a34a;--radius-sm:6px;--radius-md:10px;--radius-lg:18px;--shadow-sm:0 1px 3px #1a123012, 0 1px 2px #1a12300d;--shadow-md:0 4px 16px #1a12301a, 0 2px 6px #1a12300f;--shadow-lg:0 20px 48px #1a123024, 0 8px 20px #1a123014;--transition:.16s cubic-bezier(.4, 0, .2, 1)}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px}body{background:var(--surface-100);color:var(--text-900);-webkit-font-smoothing:antialiased;font-family:Metropolis,system-ui,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;line-height:1.55}a{color:inherit;text-decoration:none}img{max-width:100%;display:block}input,textarea,select,button{font-family:inherit}.layout{width:100%;min-width:0;min-height:100dvh;display:flex}.layout-mobile-header{padding:10px 12px;padding-top:calc(10px + env(safe-area-inset-top,0px));padding-left:calc(12px + env(safe-area-inset-left,0px));padding-right:calc(12px + env(safe-area-inset-right,0px));z-index:150;background:#cec7f6;border-bottom:1px solid #2c218526;flex-shrink:0;align-items:center;gap:10px;display:none;position:sticky;top:0}.layout-mobile-menu-btn{border-radius:var(--radius-md);width:44px;height:44px;color:var(--navy-800);cursor:pointer;transition:background var(--transition), color var(--transition);background:#ffffff8c;border:none;justify-content:center;align-items:center;padding:0;display:inline-flex}.layout-mobile-menu-btn:hover{background:#ffffffeb}.layout-mobile-header-brand{align-items:center;gap:10px;min-width:0;display:flex}.layout-mobile-header-logo{object-fit:contain;flex-shrink:0;width:36px;height:36px}.layout-mobile-header-title{color:var(--text-900);letter-spacing:-.02em;white-space:nowrap;text-overflow:ellipsis;font-size:1.05rem;font-weight:700;overflow:hidden}.sidebar-backdrop{z-index:180;cursor:pointer;background:#0f0a2e73;border:none;width:100%;height:100%;margin:0;padding:0;animation:.12s ease-out fadeIn;position:fixed;inset:0}.sidebar{background:#cec7f6;border-right:1px solid #2c21851f;flex-direction:column;flex-shrink:0;width:260px;height:100vh;padding:20px 12px;display:flex;position:sticky;top:0;overflow-y:auto}.sidebar-logo{border-bottom:1px solid #1a12301a;align-items:center;gap:12px;margin-bottom:16px;padding:8px 12px 20px;display:flex}.sidebar-logo-mark{object-fit:contain;flex-shrink:0;width:auto;max-width:132px;height:40px}.sidebar-logo-text{flex-direction:column;justify-content:center;display:flex}.sidebar-title{color:var(--text-900);letter-spacing:-.02em;font-size:1.1rem;font-weight:700;line-height:1.2}.sidebar-nav{flex-direction:column;flex:1;gap:2px;display:flex}.sidebar-nav-label{text-transform:uppercase;letter-spacing:.08em;color:var(--text-500);margin-top:4px;padding:12px 14px 4px;font-size:10px;font-weight:600}.nav-item{border-radius:var(--radius-md);color:var(--text-700);transition:background var(--transition), color var(--transition);cursor:pointer;align-items:center;gap:10px;padding:10px 14px;font-size:14px;font-weight:500;display:flex}.nav-item svg{flex-shrink:0;width:18px;height:18px}.nav-item:hover{color:var(--text-900);background:#ffffff73}.nav-item.active{color:var(--navy-800);background:#ffffffeb;box-shadow:0 1px 4px #2c21851f}.nav-item.active svg{stroke:var(--gold-500)}.sidebar-user{border-top:1px solid #1a12301a;align-items:center;gap:10px;margin-top:8px;padding:12px 10px;display:flex}.user-avatar{background:var(--navy-700);border:2px solid var(--gold-500);color:#fff;-webkit-user-select:none;user-select:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;font-size:12px;font-weight:600;display:flex;overflow:hidden}.user-avatar img{object-fit:cover;width:100%;height:100%}.user-info{flex:1;min-width:0}.user-name{color:var(--text-900);white-space:nowrap;text-overflow:ellipsis;font-size:13px;font-weight:600;display:block;overflow:hidden}.user-email{color:var(--text-600);white-space:nowrap;text-overflow:ellipsis;font-size:11px;display:block;overflow:hidden}.btn-logout{cursor:pointer;color:var(--text-500);transition:color var(--transition);border-radius:var(--radius-sm);background:0 0;border:none;padding:6px}.btn-logout:hover{color:var(--danger);background:#dc26261a}.btn-logout svg{width:16px;height:16px}.main-content{flex:1;min-width:0;overflow-y:auto}.page{max-width:1200px;padding:32px 36px}.page-header{justify-content:space-between;align-items:flex-start;margin-bottom:28px;display:flex}.group-page-header{border:1px solid var(--surface-300);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);background:#fff;padding:20px 24px 22px}.group-page-header .page-title{margin:0}.group-page-header .page-subtitle:first-of-type{margin-top:6px}.page-title{color:var(--text-900);letter-spacing:-.5px;font-size:24px;font-weight:700}.page-subtitle{color:var(--text-500);margin-top:2px;font-size:14px}.page-title-row{flex-wrap:wrap;align-items:baseline;gap:6px 10px;margin:0;display:flex}.help-hint{vertical-align:middle;flex-shrink:0;align-items:center;margin-left:1px;display:inline-flex;position:relative}.help-hint__btn{border:1px solid var(--surface-300);background:var(--surface-200);width:1.3rem;min-width:1.3rem;height:1.3rem;color:var(--text-600);cursor:help;transition:background var(--transition), color var(--transition), border-color var(--transition);border-radius:9999px;justify-content:center;align-items:center;padding:0;font-size:.7rem;font-weight:700;line-height:1;display:inline-flex}.help-hint__btn:hover,.help-hint__btn:focus-visible{color:var(--navy-600);border-color:var(--navy-400);background:#fff;outline:none}.help-hint__popover{border-radius:var(--radius-md);background:var(--text-900);color:#f1f1f1;text-align:left;pointer-events:auto;z-index:10050;min-width:12rem;max-width:min(24rem,100vw - 1rem);padding:10px 12px;font-size:13px;font-weight:400;line-height:1.5;position:relative;box-shadow:0 8px 32px #00000052}.help-hint__popover--portal{margin:0;position:fixed;bottom:auto;left:auto}.help-hint__popover--portal:before{content:"";height:8px;position:absolute;top:-8px;left:0;right:0}.help-hint__text a{color:#b8c5ff;text-decoration:underline}.help-hint__text a:hover{color:#fff}.section-title-row{border-bottom:1px solid var(--surface-200);flex-wrap:wrap;align-items:center;gap:6px 10px;margin:0 0 14px;padding-bottom:10px;display:flex}.section-title-row .section-title{border-bottom:none;flex:1;min-width:0;margin-bottom:0;padding-bottom:0}.btn-back{cursor:pointer;color:var(--text-500);transition:color var(--transition);background:0 0;border:none;margin-bottom:6px;padding:0;font-size:13px;display:block}.btn-back:hover{color:var(--text-900)}.btn-primary{background:var(--gold-500);color:#fff;border-radius:var(--radius-md);cursor:pointer;transition:background var(--transition), transform var(--transition), box-shadow var(--transition);border:none;align-items:center;gap:6px;padding:9px 18px;font-size:14px;font-weight:600;display:inline-flex;box-shadow:0 2px 10px #ee236166}.btn-primary:hover{background:var(--gold-600);transform:translateY(-1px);box-shadow:0 4px 16px #ee236173}.btn-primary:active{transform:translateY(0)}.btn-primary:disabled{opacity:.6;cursor:not-allowed;transform:none}.btn-secondary{color:var(--text-700);border:1px solid var(--surface-300);border-radius:var(--radius-md);cursor:pointer;transition:background var(--transition), box-shadow var(--transition);background:#fff;align-items:center;gap:6px;padding:9px 18px;font-size:14px;font-weight:500;display:inline-flex}.btn-secondary:hover{background:var(--surface-200);box-shadow:var(--shadow-sm)}.btn-secondary:disabled{opacity:.5;cursor:not-allowed}.btn-icon{border-radius:var(--radius-sm);cursor:pointer;width:32px;height:32px;color:var(--text-500);transition:background var(--transition), color var(--transition);background:0 0;border:none;justify-content:center;align-items:center;display:flex}.btn-icon:hover{background:var(--surface-200);color:var(--text-900)}.btn-icon svg{width:14px;height:14px}.btn-icon-danger:hover{background:var(--danger-light);color:var(--danger)}.btn-danger-sm{cursor:pointer;color:var(--text-400);transition:background var(--transition), color var(--transition);background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;padding:4px;font-size:13px;display:flex}.btn-danger-sm:hover{background:var(--danger-light);color:var(--danger)}.filters{flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:24px;display:flex}.filters-start{flex-wrap:wrap;flex:1;align-items:center;gap:12px;min-width:0;display:flex}.filters-end{flex-shrink:0;margin-left:auto}.view-mode-toggle{border:1px solid var(--surface-300);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);background:#fff;display:inline-flex;overflow:hidden}.view-mode-toggle button{cursor:pointer;color:var(--text-500);transition:background var(--transition), color var(--transition);background:0 0;border:none;align-items:center;gap:6px;padding:8px 12px;font-size:13px;font-weight:500;display:inline-flex}.view-mode-toggle button:hover{background:var(--surface-100);color:var(--text-800)}.view-mode-toggle button.active{color:var(--navy-800);background:#2c21851a}.view-mode-toggle svg{flex-shrink:0;width:16px;height:16px}@media (width<=520px){.view-mode-toggle-label{display:none}.view-mode-toggle button{padding:8px 10px}}.data-list{flex-direction:column;gap:10px;display:flex}.data-list-row{border:1px solid var(--surface-300);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);transition:box-shadow var(--transition), border-color var(--transition);background:#fff;justify-content:space-between;align-items:flex-start;gap:16px;padding:14px 16px;display:flex}.data-list-row:hover{box-shadow:var(--shadow-md);border-color:var(--surface-400)}.data-list-row--clickable{cursor:pointer}.data-list-row--clickable:focus-visible{outline:2px solid var(--navy-600);outline-offset:2px}.contact-list-row--deceased{box-shadow:none;opacity:.95;background:#eef0f3;border-color:#d8dce2}.contact-list-row--deceased:hover{box-shadow:var(--shadow-sm);border-color:#c5cbd4}.contact-list-row--deceased .data-list-row-title{color:var(--text-600)}.contact-list-row--deceased .contact-avatar{background:linear-gradient(135deg,#9ca3af,#6b7280);border-color:#c5cbd4}.contact-list-row--deceased .group-badge{color:var(--text-500);background:#0000000f}.deceased-mark{vertical-align:middle;color:var(--text-400);align-items:center;gap:4px;display:inline-flex}.deceased-mark__icon{flex-shrink:0;width:1em;height:1em}.deceased-mark__label{text-transform:uppercase;letter-spacing:.04em;color:var(--text-500);font-size:.78rem;font-weight:600}.contact-card--deceased{box-shadow:none;opacity:.95;background:#eef0f3;border-color:#d8dce2}.contact-card--deceased:hover{box-shadow:var(--shadow-sm);border-color:#c5cbd4;transform:none}.contact-card--deceased .contact-name{color:var(--text-600)}.contact-card--deceased .contact-avatar{background:linear-gradient(135deg,#9ca3af,#6b7280);border-color:#c5cbd4}.contact-card--deceased .group-badge{color:var(--text-500);background:#0000000f}.contact-view-hero--deceased .contact-view-naam{color:var(--text-600)}.contact-view-hero--deceased .contact-avatar{background:linear-gradient(135deg,#9ca3af,#6b7280);border-color:#c5cbd4}.group-list-row{cursor:pointer;align-items:center}.data-list-row-main{flex:1;align-items:flex-start;gap:12px;min-width:0;display:flex}.data-list-row-text{flex:1;min-width:0}.data-list-row-title{color:var(--text-900);font-size:15px;font-weight:600}.data-list-row-meta{color:var(--text-600);flex-wrap:wrap;gap:8px 14px;margin-top:4px;font-size:13px;display:flex}.data-list-row-muted{color:var(--text-400)}.data-list-row-badges{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:5px;max-width:280px;display:flex}.contact-list-row .data-list-row-badges{align-self:center}.data-list-row-actions{flex-shrink:0;align-items:center;gap:4px;display:flex}.contact-avatar--sm{width:40px;height:40px;font-size:14px}.group-card-icon--sm{width:40px;height:40px}.group-card-icon--sm svg{width:18px;height:18px}.group-list-row .group-count{margin-top:4px;display:inline-block}.bezoeker-list-actions{flex-direction:column;flex-shrink:0;align-items:flex-end;gap:8px;display:flex}.btn-promote-sm{white-space:nowrap;padding:6px 12px;font-size:12px}@media (width<=720px){.contact-list-row{flex-wrap:wrap}.contact-list-row .data-list-row-badges{justify-content:flex-start;width:100%;max-width:none}.bezoeker-list-row{flex-wrap:wrap}.bezoeker-list-actions{flex-direction:row;justify-content:space-between;align-items:center;width:100%}}.search-box{border:1px solid var(--surface-300);border-radius:var(--radius-md);min-width:220px;transition:border var(--transition), box-shadow var(--transition);background:#fff;flex:1;align-items:center;gap:8px;padding:0 14px;display:flex}.search-box:focus-within{border-color:var(--navy-600);box-shadow:0 0 0 3px #2c21852e}.search-box svg{width:16px;height:16px;color:var(--text-400);flex-shrink:0}.search-input{color:var(--text-900);background:0 0;border:none;outline:none;flex:1;padding:10px 0;font-size:14px}.filter-select{border:1px solid var(--surface-300);border-radius:var(--radius-md);color:var(--text-700);cursor:pointer;transition:border var(--transition), box-shadow var(--transition);background:#fff;outline:none;padding:9px 14px;font-size:14px}.filter-select:focus{border-color:var(--navy-600);box-shadow:0 0 0 3px #2c21852e}.contacts-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px;display:grid}.contact-card{border:1px solid var(--surface-300);border-radius:var(--radius-lg);transition:box-shadow var(--transition), transform var(--transition);box-shadow:var(--shadow-sm);background:#fff;padding:20px}.contact-card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.contact-card--clickable{cursor:pointer}.contact-card--clickable:focus-visible{outline:2px solid var(--navy-600);outline-offset:2px}.contact-card-header{justify-content:space-between;align-items:flex-start;margin-bottom:16px;display:flex}.contact-avatar{background:linear-gradient(135deg, var(--navy-700), var(--navy-600));width:56px;height:56px;color:var(--gold-400);border:2px solid var(--surface-300);-webkit-user-select:none;user-select:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:18px;font-weight:700;display:flex;overflow:hidden}.contact-avatar img{object-fit:cover;width:100%;height:100%}.contact-actions{gap:4px;display:flex}.contact-info{flex-direction:column;gap:6px;display:flex}.contact-name{color:var(--text-900);font-size:16px;font-weight:600}.contact-detail{color:var(--text-500);transition:color var(--transition);align-items:center;gap:7px;font-size:13px;display:flex}.contact-detail:hover{color:var(--navy-700)}.contact-detail svg{flex-shrink:0;width:13px;height:13px}.contact-location{cursor:default}.contact-groups{flex-wrap:wrap;gap:5px;margin-top:4px;display:flex}.group-badge{color:var(--navy-700);background:#2c218517;border-radius:20px;padding:2px 9px;font-size:11px;font-weight:500}.group-badge--chair{color:#9a153d;background:#c41a4f1f}.group-badge--member{background:#2c218524}.group-badge--muted{background:var(--surface-200);color:var(--text-500);font-weight:400}.groups-grid{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:16px;display:grid}.group-card{border:1px solid var(--surface-300);border-radius:var(--radius-lg);cursor:pointer;transition:box-shadow var(--transition), transform var(--transition), border-color var(--transition);box-shadow:var(--shadow-sm);background:#fff;align-items:center;gap:16px;padding:20px;display:flex}.group-card:hover{box-shadow:var(--shadow-md);border-color:var(--navy-600);transform:translateY(-2px)}.group-card-icon{background:linear-gradient(135deg, var(--navy-800), var(--navy-600));border-radius:var(--radius-md);flex-shrink:0;justify-content:center;align-items:center;width:48px;height:48px;display:flex}.group-card-icon svg{width:22px;height:22px;stroke:var(--gold-400)}.group-card-info{flex:1;min-width:0}.group-name{color:var(--text-900);font-size:15px;font-weight:600}.group-desc{color:var(--text-500);white-space:nowrap;text-overflow:ellipsis;margin-top:2px;font-size:13px;overflow:hidden}.group-count{color:var(--text-400);margin-top:4px;font-size:12px;display:block}.group-card-actions{flex-direction:column;flex-shrink:0;gap:2px;display:flex}.detail-grid{grid-template-columns:1fr 1fr;gap:24px;display:grid}.detail-grid--group{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);align-items:start}.detail-grid__main,.detail-grid__aside{min-width:0}.detail-grid__aside{flex-direction:column;gap:24px;display:flex}.detail-section{border:1px solid var(--surface-300);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);background:#fff;padding:20px}.section-title{color:var(--text-700);border-bottom:1px solid var(--surface-200);margin-bottom:14px;padding-bottom:10px;font-size:14px;font-weight:600}.add-row{gap:8px;margin-bottom:14px;display:flex}.add-row .filter-select{flex:1}.add-row .searchable-select{flex:1;min-width:0}.searchable-select{width:100%;position:relative}.searchable-select__input{box-sizing:border-box;border:1px solid var(--surface-300);border-radius:var(--radius-md);width:100%;color:var(--text-700);transition:border var(--transition), box-shadow var(--transition);background:#fff;outline:none;padding:9px 14px;font-size:14px}.searchable-select__input:focus{border-color:var(--navy-600);box-shadow:0 0 0 3px #2c21852e}.searchable-select__input:disabled{opacity:.65;cursor:not-allowed}.searchable-select__list{z-index:30;border:1px solid var(--surface-300);border-radius:var(--radius-md);max-height:260px;box-shadow:var(--shadow-md);background:#fff;margin:0;padding:4px 0;list-style:none;position:absolute;top:calc(100% + 4px);left:0;right:0;overflow:auto}.searchable-select__list--fixed{box-sizing:border-box;-webkit-overflow-scrolling:touch;position:fixed;right:auto;overflow-y:auto}.searchable-select__group{text-transform:uppercase;letter-spacing:.4px;color:var(--text-500);pointer-events:none;padding:8px 12px 4px;font-size:11px;font-weight:600}.searchable-select__option{cursor:pointer;color:var(--text-800);transition:background var(--transition);flex-direction:column;gap:2px;padding:8px 12px;font-size:14px;display:flex}.searchable-select__option--active,.searchable-select__option:hover{background:var(--surface-100)}.searchable-select__line1{font-weight:500}.searchable-select__line2{color:var(--text-500);font-size:12px}.searchable-select__empty{color:var(--text-500);padding:12px;font-size:13px}.member-list{flex-direction:column;gap:8px;list-style:none;display:flex}.member-item{border-radius:var(--radius-md);transition:background var(--transition);align-items:center;gap:10px;padding:8px 10px;display:flex}.member-item:hover{background:var(--surface-100)}.member-avatar{background:linear-gradient(135deg, var(--navy-700), var(--navy-600));width:36px;height:36px;color:var(--gold-400);-webkit-user-select:none;user-select:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:12px;font-weight:700;display:flex;overflow:hidden}.member-avatar img{object-fit:cover;width:100%;height:100%}.admin-avatar{background:linear-gradient(135deg, var(--navy-700), var(--gold-500))}.admin-avatar span{color:#fff}.member-info{flex-direction:column;flex:1;min-width:0;display:flex}.member-name{color:var(--text-900);font-size:13px;font-weight:500}.member-email{color:var(--text-400);white-space:nowrap;text-overflow:ellipsis;font-size:12px;overflow:hidden}.badge-you{color:var(--gold-600);background:#ee23611f;border-radius:20px;padding:2px 8px;font-size:11px;font-weight:600}.users-table{border-collapse:collapse;width:100%;color:var(--text-800);border:1px solid var(--surface-300);border-radius:var(--radius-md);background:#fff;font-size:14px;line-height:1.45;overflow:hidden}.users-table th{text-align:left;letter-spacing:.01em;border-bottom:1px solid var(--surface-300);color:var(--text-600);background:var(--surface-200);vertical-align:bottom;white-space:normal;padding:10px 12px;font-size:13px;font-weight:600}.users-table td{text-align:left;border-bottom:1px solid var(--surface-200);vertical-align:middle;color:var(--text-800);padding:10px 12px;font-size:14px}.users-table tbody tr:last-child td{border-bottom:none}.users-table tbody tr:hover{background:var(--surface-100)}.users-table .member-name,.users-table .member-email,.users-table td{color:var(--text-800);font-size:14px;line-height:1.4}.users-table .member-name{font-weight:500}.users-table .data-list-row-muted{font-size:13px}.users-table .filter-select,.users-table .searchable-select__input{font-size:14px}.table-wrap--scroll{-webkit-overflow-scrolling:touch;border-radius:var(--radius-md);width:100%;min-width:0;margin-bottom:.75rem;overflow-x:auto}.users-table--compact{font-size:13px;line-height:1.35}.users-table--compact th{white-space:nowrap;padding:6px 8px;font-size:11px}.users-table--compact td{padding:6px 8px;font-size:13px}.users-table--compact .member-name,.users-table--compact .member-email,.users-table--compact td{font-size:13px}.users-table--compact .data-list-row-muted{font-size:11px}.users-table--compact .filter-select{min-width:0;max-width:10.5rem;padding:4px 6px;font-size:12px}.users-table--compact .member-avatar{width:28px;height:28px;font-size:10px}.users-table--compact .searchable-select__input{padding:4px 8px;font-size:12px}.users-table--compact .searchable-select.users-table-contact-select{width:100%;min-width:0;max-width:100%}.users-table--compact .users-table__td-contact{vertical-align:middle;min-width:0}.users-table--compact .users-table__th-actions,.users-table--compact .users-table__td-actions{text-align:center;vertical-align:middle;padding-left:4px;padding-right:4px}.users-table__action-btns{flex-flow:wrap;justify-content:center;align-items:center;gap:4px;display:flex}.users-table__action-btns--backup{flex-wrap:nowrap;justify-content:flex-start;gap:6px}.users-table__action-btns--backup .btn-secondary{white-space:nowrap;flex-shrink:0;padding:4px 10px;font-size:12px;font-weight:500;line-height:1.25}.users-table--backups.users-table--compact .users-table__th-actions,.users-table--backups.users-table--compact .users-table__td-actions{text-align:left}.users-table--compact .badge-you{padding:2px 6px;font-size:10px}.icon-btn{border:1px solid var(--surface-300);border-radius:var(--radius-md);background:var(--surface-50,#fff);width:2rem;height:2rem;color:var(--text-600);cursor:pointer;flex-shrink:0;justify-content:center;align-items:center;padding:0;transition:background .15s,color .15s,border-color .15s;display:inline-flex}.icon-btn:hover:not(:disabled){background:var(--surface-100);color:var(--text-900);border-color:var(--surface-400)}.icon-btn:disabled{opacity:.45;cursor:not-allowed}.icon-btn--danger{color:var(--danger,#b00020);border-color:#b0002059}.icon-btn--danger:hover:not(:disabled){background:#b0002014;border-color:#b000208c}.loading-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px;display:grid}.loading-list{flex-direction:column;gap:10px;display:flex}.loading-list .skeleton-card{height:76px}.import-paste-area{border:1px solid var(--surface-300);border-radius:var(--radius-md);resize:vertical;box-sizing:border-box;width:100%;min-height:200px;padding:14px 16px;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:13px;line-height:1.45}.import-paste-area:focus{border-color:var(--navy-600);outline:none;box-shadow:0 0 0 3px #2c21852e}.import-preview-list{flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.import-preview-item{border-radius:var(--radius-md);border:1px solid var(--surface-300);background:var(--surface-100);padding:12px 14px;font-size:14px}.import-preview-item--err{background:#b43c3c0f;border-color:#b43c3c59}.import-preview-item--warn{border-color:#ee236166}.pagination-bar{border-top:1px solid var(--surface-200);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-top:20px;padding-top:16px;display:flex}.pagination-summary{color:var(--text-600);margin:0;font-size:14px}.pagination-controls{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.pagination-per{color:var(--text-600);align-items:center;gap:8px;font-size:13px;display:flex}.pagination-per-label{white-space:nowrap}.pagination-nav{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.pagination-btn{padding:6px 12px;font-size:13px}.pagination-page-indicator{color:var(--text-700);white-space:nowrap;padding:0 8px;font-size:13px}.import-success-message{border-radius:var(--radius-md);color:var(--text-800);background:#2d785014;border:1px solid #2d785059;margin:0 0 12px;padding:10px 14px;font-size:14px}.skeleton-card{background:linear-gradient(90deg, var(--surface-200) 25%, var(--surface-100) 50%, var(--surface-200) 75%);border-radius:var(--radius-lg);background-size:200% 100%;height:180px;animation:1.5s infinite shimmer}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.loading-spinner{border:3px solid var(--surface-300);border-top-color:var(--navy-700);border-radius:50%;width:40px;height:40px;margin:60px auto;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.empty-state{text-align:center;flex-direction:column;align-items:center;gap:16px;padding:80px 24px;display:flex}.empty-state svg{width:56px;height:56px;color:var(--text-300)}.empty-state p{color:var(--text-500);font-size:15px}.modal-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:100;background:#00000080;justify-content:center;align-items:center;animation:.12s ease-out fadeIn;display:flex;position:fixed;inset:0}@keyframes fadeIn{0%{opacity:0}}.modal{border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);background:#fff;width:90%;max-width:640px;max-height:90vh;animation:.18s cubic-bezier(.34,1.56,.64,1) slideUp;overflow-y:auto}.modal-lg{width:96%;max-width:min(1080px,96vw)}.modal-sm{max-width:440px}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}}.modal-header{justify-content:space-between;align-items:center;padding:20px 24px 0;display:flex}.modal-header h2{color:var(--text-900);font-size:18px;font-weight:700}.modal-close{cursor:pointer;color:var(--text-400);border-radius:var(--radius-sm);transition:background var(--transition), color var(--transition);background:0 0;border:none;padding:4px 8px;font-size:18px;line-height:1}.modal-close:hover{background:var(--surface-200);color:var(--text-900)}.modal-body{flex-direction:column;gap:14px;padding:20px 24px 24px;display:flex}.contact-view-modal-body{overflow-x:auto}.contact-view-main-grid{grid-template-columns:minmax(0,1fr) minmax(340px,46%);align-items:start;gap:24px 40px;display:grid}.contact-view-col-primary{min-width:0}.contact-view-col-sidebar{flex-direction:column;align-self:start;gap:18px;min-width:0;display:flex;position:sticky;top:0}.contact-view-sidebar-card{border:1px solid var(--surface-200);border-radius:var(--radius-md,10px);background:var(--surface-100,#fafafc);padding:16px 18px}.contact-view-sidebar-card .contact-view-row{border-bottom-color:var(--surface-200);flex-direction:column;align-items:stretch;gap:10px;padding-top:6px;padding-bottom:6px;display:flex}.contact-view-sidebar-card .contact-view-lbl{padding-top:0}.contact-view-sidebar-card .contact-view-val{width:100%;min-width:0}.contact-view-sidebar-card .contact-view-row:first-of-type{padding-top:0}.contact-view-sidebar-card .contact-view-row:last-child{border-bottom:none;padding-bottom:0}.contact-view-sidebar-title{color:var(--text-600);text-transform:uppercase;letter-spacing:.35px;margin:0 0 10px;padding-top:0;font-size:12px;font-weight:600}.modal-footer{justify-content:flex-end;gap:10px;margin-top:6px;display:flex}.contact-view-hero{align-items:center;gap:16px;margin-bottom:4px;padding-bottom:4px;display:flex}.contact-view-naam{color:var(--text-900);word-break:break-word;margin:0;font-size:1.2rem;font-weight:700}.contact-view-meta{color:var(--text-500);margin:4px 0 0;font-size:13px}.contact-view-dl{flex-direction:column;gap:0;margin:0;display:flex}.contact-view-row{border-bottom:1px solid var(--surface-200);grid-template-columns:minmax(7rem,10rem) 1fr;align-items:start;gap:8px 16px;padding:8px 0;font-size:14px;display:grid}.contact-view-row:last-child{border-bottom:none}.contact-view-lbl{color:var(--text-600);text-transform:uppercase;letter-spacing:.35px;margin:0;padding-top:2px;font-size:12px;font-weight:600}.contact-view-val{word-break:break-word;min-width:0;color:var(--text-800);margin:0}.contact-view-row--block{border-bottom:1px solid var(--surface-200);padding:10px 0;display:block}.contact-view-row--block .contact-view-lbl{margin-bottom:8px}.contact-view-row--block .contact-view-pre{margin:0}.contact-view-link{color:var(--navy-700)}.contact-view-val--with-actions{flex-wrap:wrap;align-items:center;gap:6px 10px;display:flex}.contact-view-val-main{flex:auto;min-width:0}.detail-inline-actions{opacity:0;pointer-events:none;flex-shrink:0;align-items:center;gap:4px;transition:opacity .15s;display:inline-flex}:is(.contact-view-row:has(.detail-inline-actions):hover .detail-inline-actions,.contact-view-row:has(.detail-inline-actions):focus-within .detail-inline-actions),.detail-hover-block:hover .detail-inline-actions,.detail-hover-block:focus-within .detail-inline-actions,.detail-hover-row:hover .detail-inline-actions,.detail-hover-row:focus-within .detail-inline-actions{opacity:1;pointer-events:auto}.detail-hover-block{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.detail-hover-row{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.detail-hover-row--stretch{width:100%;min-height:26px}@media (hover:none){.contact-view-row:has(.detail-inline-actions) .detail-inline-actions{opacity:1;pointer-events:auto}.detail-hover-block .detail-inline-actions,.detail-hover-row .detail-inline-actions{opacity:1;pointer-events:auto}}.detail-action-btn{border:1px solid var(--surface-300);border-radius:var(--radius-sm,6px);background:var(--surface-100,#faf8fc);color:var(--text-700);cursor:pointer;justify-content:center;align-items:center;padding:4px 6px;line-height:0;transition:border .15s,background .15s,color .15s;display:inline-flex}.detail-action-btn:hover{border-color:var(--navy-500);color:var(--navy-700);background:#fff}.detail-action-btn--compact{padding:2px 5px}.detail-action-link,.detail-action-link:hover{text-decoration:none}.contact-view-relation-name-jump{color:var(--navy-700);font:inherit;font-size:inherit;cursor:pointer;text-underline-offset:2px;text-align:inherit;background:0 0;border:none;margin:0;padding:0;text-decoration:underline}.contact-view-relation-name-jump:hover{color:var(--navy-800,#1e3a5f)}.contact-view-pre{white-space:pre-wrap;word-break:break-word;color:var(--text-800);margin:0;font-family:inherit;font-size:13px;line-height:1.45}.form-row{gap:12px;display:flex}.form-row .form-group{flex:1;min-width:0}.form-group{flex-direction:column;gap:5px;display:flex}.form-group label{color:var(--text-700);text-transform:uppercase;letter-spacing:.4px;font-size:12px;font-weight:600}.form-group input,.form-group textarea,.form-group select{border:1px solid var(--surface-300);border-radius:var(--radius-md);color:var(--text-900);transition:border var(--transition), box-shadow var(--transition);resize:vertical;background:#fff;outline:none;padding:9px 12px;font-size:14px}.form-group input:focus,.form-group textarea:focus,.form-group select:focus{border-color:var(--navy-600);box-shadow:0 0 0 3px #2c21852e}.form-group small{color:var(--text-400);font-size:11px}.form-error{color:var(--danger);background:var(--danger-light);border-radius:var(--radius-sm);padding:8px 12px;font-size:13px}.iso-date-ios-wrap{border:1px solid var(--surface-300);border-radius:var(--radius-md);width:100%;max-width:100%;transition:border var(--transition), box-shadow var(--transition);background:#fff;align-items:stretch;gap:0;display:flex;position:relative}.form-group .iso-date-ios-wrap:focus-within{border-color:var(--navy-600);box-shadow:0 0 0 3px #2c21852e}.iso-date-ios-text{border-radius:var(--radius-md) 0 0 var(--radius-md);min-width:0;color:var(--text-900);background:0 0;outline:none;flex:1;padding:9px 10px 9px 12px;font-size:14px;box-shadow:none!important;border:none!important}.iso-date-ios-calendar-btn{border:none;border-left:1px solid var(--surface-300);border-radius:0 var(--radius-md) var(--radius-md) 0;background:var(--surface-200);width:42px;color:var(--text-600);cursor:pointer;transition:background var(--transition), color var(--transition);flex-shrink:0;justify-content:center;align-items:center;padding:0;display:inline-flex}.iso-date-ios-calendar-btn:hover{background:var(--surface-300);color:var(--navy-700)}.iso-date-ios-calendar-btn:focus-visible{outline:2px solid var(--navy-600);outline-offset:-2px}.iso-date-ios-picker-proxy{clip:rect(0, 0, 0, 0);white-space:nowrap;opacity:0;pointer-events:none;border:0;width:1px;height:1px;margin:0;padding:0;position:absolute;overflow:hidden}.avatar-upload-section{flex-direction:column;align-items:center;gap:8px;display:flex}.avatar-upload{background:var(--surface-200);border:2px dashed var(--surface-400);cursor:pointer;width:88px;height:88px;transition:border-color var(--transition), transform var(--transition);-webkit-user-select:none;user-select:none;border-radius:50%;justify-content:center;align-items:center;display:flex;position:relative;overflow:hidden}.avatar-upload:hover{border-color:var(--navy-600);transform:scale(1.04)}.avatar-upload img{object-fit:cover;width:100%;height:100%}.avatar-placeholder svg{width:36px;height:36px;color:var(--text-400)}.avatar-edit-overlay{opacity:0;transition:opacity var(--transition);background:#00000073;justify-content:center;align-items:center;font-size:20px;display:flex;position:absolute;inset:0}.avatar-upload:hover .avatar-edit-overlay{opacity:1}.avatar-hint{color:var(--text-400);font-size:12px}.contact-picker{border:1px solid var(--surface-300);border-radius:var(--radius-md);max-height:220px;overflow-y:auto}.contact-pick-item{cursor:pointer;transition:background var(--transition);align-items:center;gap:10px;padding:9px 14px;display:flex}.contact-pick-item:hover{background:var(--surface-100)}.pick-all{border-bottom:1px solid var(--surface-200);font-weight:600}.pick-label{color:var(--text-900);flex:1;font-size:13px}.pick-email{color:var(--text-400);font-size:12px}.share-success{flex-direction:column;align-items:center;gap:14px;padding:20px 0;display:flex}.share-success svg{width:48px;height:48px;color:var(--success)}.share-success p{color:var(--text-700);text-align:center;font-size:14px}.login-page{background:linear-gradient(145deg, var(--navy-900) 0%, var(--navy-800) 40%, #3a0d2e 100%);justify-content:center;align-items:center;min-height:100vh;display:flex}.login-card{border-radius:var(--radius-lg);background:#fff;flex-direction:column;align-items:center;gap:12px;width:90%;max-width:400px;padding:48px 40px;animation:.22s cubic-bezier(.34,1.56,.64,1) slideUp;display:flex;box-shadow:0 32px 80px #00000059}.login-logo img{object-fit:contain;object-position:center;width:min(200px,70vw);height:56px}.login-title{color:var(--navy-900);letter-spacing:-1px;font-size:28px;font-weight:800}.login-subtitle{color:var(--gold-500);font-size:14px;font-weight:600}.login-desc{color:var(--text-500);text-align:center;max-width:280px;margin-bottom:8px;font-size:14px;line-height:1.6}.btn-microsoft{color:var(--text-900);border:1.5px solid var(--surface-300);border-radius:var(--radius-md);cursor:pointer;width:100%;transition:background var(--transition), box-shadow var(--transition), transform var(--transition);box-shadow:var(--shadow-sm);background:#fff;justify-content:center;align-items:center;gap:10px;padding:12px 24px;font-size:14px;font-weight:600;display:flex}.btn-microsoft:hover{background:var(--surface-100);box-shadow:var(--shadow-md);transform:translateY(-1px)}.login-footer{color:var(--text-400);text-align:center;font-size:12px}@media (width<=768px){.layout{flex-direction:column;position:relative}.layout-mobile-header{display:flex}.sidebar{width:min(288px,88vw);max-width:100%;height:100vh;padding-top:calc(12px + env(safe-area-inset-top,0px));padding-bottom:calc(12px + env(safe-area-inset-bottom,0px));padding-left:calc(12px + env(safe-area-inset-left,0px));padding-right:calc(12px + env(safe-area-inset-right,0px));z-index:200;box-shadow:none;border-right:1px solid #2c218526;flex-direction:column;align-items:stretch;transition:transform .22s,box-shadow .22s;position:fixed;top:0;bottom:0;left:0;transform:translate(-105%)}.layout--nav-open .sidebar{transform:translate(0);box-shadow:8px 0 32px #0f0a2e2e}.sidebar-nav{-webkit-overflow-scrolling:touch;flex-direction:column;flex:1;min-height:0;overflow-y:auto}.sidebar-user{border-top:1px solid #1a12301a;border-left:none;flex-shrink:0;margin-top:8px}.main-content{-webkit-overflow-scrolling:touch;flex:1;width:100%;min-width:0;overflow:clip auto}.page{padding:16px 14px;padding-bottom:calc(16px + env(safe-area-inset-bottom,0px));max-width:none}.page-header{flex-direction:column;align-items:stretch;gap:12px}.page-title{font-size:1.35rem}.filters{flex-direction:column;align-items:stretch}.filters-end{width:100%;margin-left:0}.filters-start{width:100%}.search-box{width:100%;min-width:0}.detail-grid{grid-template-columns:1fr}.form-row{flex-direction:column}.modal-overlay{padding:0;padding-bottom:env(safe-area-inset-bottom,0px);align-items:flex-end}.modal,.modal.modal-lg{border-radius:var(--radius-lg) var(--radius-lg) 0 0;width:100%;max-width:none;max-height:min(92dvh,100%);margin:0;animation:.2s ease-out slideUpSheet}@keyframes slideUpSheet{0%{opacity:.96;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.contact-view-main-grid{grid-template-columns:1fr;gap:18px}.contact-view-col-sidebar{position:static}.contact-view-row{grid-template-columns:1fr;gap:4px}.contact-view-lbl{padding-top:0}.contacts-grid,.groups-grid,.loading-grid{grid-template-columns:1fr}}@media (width>=769px){.sidebar-backdrop{display:none!important}}.dom-calendar-container{margin:8px 0 24px}.dom-calendar.desktop{width:100%;position:relative}.dom-calendar-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;margin-bottom:15px;display:flex}.dom-calendar-title{color:var(--text-900);font-size:1.5em;font-weight:700}.dom-calendar-header-right{align-items:center;gap:10px;display:flex}.dom-calendar-title-wrap{flex-direction:column;flex:1;align-items:center;gap:6px;display:flex}.dom-cal-nav-btn,.dom-cal-today-btn{border:1px solid var(--surface-300);border-radius:var(--radius-md);color:var(--brand-700);cursor:pointer;background:#fff;padding:6px 12px;font-size:14px}.dom-cal-nav-btn:hover,.dom-cal-today-btn:hover{background:#f0eef7}.dom-calendar-view-toggle{border-radius:4px;display:flex;overflow:hidden}.dom-calendar-view-toggle button{color:#2c2185;cursor:pointer;background:#f0eef7;border:none;padding:4px 12px;font-size:13px}.dom-calendar-view-toggle button[aria-pressed=true]{color:#fff;background:#2c2185}.dom-calendar-filters{flex-wrap:wrap;align-items:center;gap:12px 20px;margin-bottom:12px;display:flex}.dom-calendar-search{border:1px solid var(--surface-300);border-radius:var(--radius-md);flex:1;min-width:180px;max-width:320px;padding:8px 12px;font-size:14px}.dom-calendar-filter-events{cursor:pointer;align-items:center;gap:8px;font-size:14px;display:flex}.dom-calendar-legend{border-bottom:1px solid #eee;flex-wrap:wrap;align-items:center;gap:12px 20px;margin-bottom:12px;padding:8px 0;display:flex}.dom-calendar-legend-item{color:#333;cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:8px;font-size:13px;display:inline-flex}.dom-calendar-legend-checkbox{cursor:pointer;appearance:none;border:2px solid var(--cal-color,#999);background:#fff;border-radius:3px;flex-shrink:0;width:18px;height:18px;margin:0;position:relative}.dom-calendar-legend-checkbox:checked{background:var(--cal-color,#2c2185)}.dom-calendar-legend-checkbox:checked:after{content:"";border:2px solid #fff;border-width:0 2px 2px 0;width:5px;height:9px;position:absolute;top:2px;left:5px;transform:rotate(45deg)}.dom-calendar-loading{color:var(--text-600);font-size:14px}.dom-calendar-weekdays{grid-template-columns:repeat(7,minmax(0,1fr));gap:3px;margin-bottom:4px;display:grid}.dom-calendar-weekdays .weekday{text-align:center;color:#333;background-color:#f8f8f8;border-radius:4px;padding:8px 0;font-size:13px;font-weight:700}.dom-calendar-days{grid-template-columns:repeat(7,minmax(0,1fr));gap:3px;display:grid}.dom-calendar-day{background-color:#fff;border:1px solid #eee;min-width:0;min-height:80px;padding:5px;position:relative;overflow:hidden}.dom-calendar-day.empty{color:#aaa;background-color:#f9f9f9}.dom-calendar-day.past{color:#999;background-color:#f5f5f5}.dom-calendar-day.today{background-color:#e74e841a;border:2px solid #e74e84}.dom-calendar-day.today .day-number{color:#e74e84;font-weight:700}.day-number{margin-bottom:5px;font-weight:700}.dom-calendar-day .day-cell-inner{flex-direction:row;gap:4px;min-height:0;display:flex}.dom-calendar-day .day-cell-external{flex-shrink:0}.dom-calendar-day .day-external-strips{flex-direction:row;align-items:flex-start;gap:2px;display:flex}.dom-calendar-day .day-external-strip{flex-direction:column;gap:2px;width:10px;min-height:20px;display:flex}.dom-calendar-day .day-external-dot{cursor:pointer;border:none;border-radius:2px;flex-shrink:0;width:10px;height:10px;padding:0}.dom-calendar-day .day-events{flex-direction:column;flex:1;gap:5px;min-width:0;display:flex}.dom-calendar-day .calendar-event{cursor:pointer;text-align:left;background-color:#f8f0dd;border:none;border-left:4px solid #e2a922;border-radius:4px;width:100%;margin:0;padding:6px 8px;font-size:11px;line-height:1.2;overflow:hidden}.dom-calendar-day .calendar-event.event-extern{background-color:#e8f4fc;border-left-color:#2196f3}.dom-calendar-day .calendar-event.event-speciale-dienst{background-color:#f3e8fc;border-left-color:#9c27b0}.dom-calendar-week-wrap{border:1px solid #ddd;border-radius:6px;flex-direction:column;margin-top:10px;display:flex;overflow:hidden}.dom-calendar-week-header{border-bottom:1px solid #ddd;flex-shrink:0;display:flex}.dom-calendar-week-header .week-time-col{width:48px;min-width:48px}.dom-calendar-week-header .week-time-header{height:44px}.dom-calendar-week-scroll{max-height:70vh;overflow-y:auto}.dom-calendar-week-grid{display:flex}.dom-calendar-week-view .week-time-col{background:#f9f9f9;border-right:1px solid #ddd;flex-shrink:0;width:48px}.dom-calendar-week-view .week-time-cell{color:#666;border-bottom:1px solid #eee;padding-left:4px;font-size:11px;line-height:48px}.dom-calendar-week-view .week-days{flex:1;min-width:0;display:flex}.dom-calendar-week-view .week-day{border-right:1px solid #eee;flex:1;min-width:0}.dom-calendar-week-view .week-day.today{background:#2c21850f}.dom-calendar-week-view .week-day-header{text-align:center;background:#f8f8f8;flex-direction:column;justify-content:center;align-items:center;height:44px;padding:8px 4px;font-weight:700;display:flex}.dom-calendar-week-view .week-day-name{color:#333;font-size:13px}.dom-calendar-week-view .week-day.today .week-day-num{color:#e74e84}.dom-calendar-week-view .week-event{cursor:pointer;box-sizing:border-box;text-align:left;color:#2c2185;background:#f0eef7;border:1px solid #2c2185;border-radius:4px;padding:2px 6px;font-size:11px;position:absolute;overflow:hidden}.dom-calendar-week-view .week-event-booking{border:1px solid #00000026}.week-now-line{pointer-events:none;z-index:5;background:#c62828;height:2px;position:absolute;left:0;right:0}.dom-calendar-list{margin:0;padding:0;list-style:none}.dom-calendar-list-day{color:var(--text-900);margin:16px 0 8px;font-size:15px;font-weight:700}.dom-calendar-list-item{text-align:left;border:1px solid var(--surface-300);border-radius:var(--radius-md);cursor:pointer;background:#fff;flex-wrap:wrap;align-items:center;gap:8px 12px;width:100%;margin-bottom:6px;padding:10px 12px;display:flex}.dom-calendar-list-item:hover{background:#f9f8fc}.dom-calendar-list-dot{border-radius:3px;flex-shrink:0;width:12px;height:12px}.dom-calendar-list-time{color:var(--text-600);min-width:120px;font-size:13px}.dom-calendar-list-title{flex:1;font-weight:600}.dom-calendar-list-meta{color:var(--text-600);font-size:12px}.dom-calendar-list-empty{color:var(--text-600);padding:24px 0}.dom-calendar-overlay{z-index:1000;background:#00000073;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.dom-calendar-popup{border-radius:var(--radius-lg);width:100%;max-width:420px;box-shadow:var(--shadow-lg);background:#fff;padding:24px;position:relative}.dom-calendar-popup .popup-close{cursor:pointer;color:var(--text-600);background:0 0;border:none;font-size:24px;line-height:1;position:absolute;top:12px;right:12px}.dom-calendar-popup .event-title{margin:0 32px 12px 0;font-size:18px}.dom-calendar-popup .event-date,.dom-calendar-popup .event-time,.dom-calendar-popup .event-location{color:var(--text-700);margin-bottom:8px;font-size:14px}.dom-calendar-popup .event-description{white-space:pre-wrap;margin-top:12px;font-size:14px}.dom-calendar-popup .event-type-hint{color:var(--text-500);margin-top:12px;font-size:12px}.dom-calendar-legend-google{border-top:1px solid var(--border,#e2e8f0);margin-top:6px;padding-top:8px}.dom-calendar-legend-label{text-transform:uppercase;letter-spacing:.05em;color:var(--text-500,#888);white-space:nowrap;align-self:center;font-size:11px;font-weight:600}.calendar-event.event-linked{opacity:1;background:#7c3aed14;border:2px solid #7c3aed;border-left-width:4px;font-style:normal}.calendar-event-title-row{flex-wrap:wrap;align-items:center;gap:4px;display:flex}.cal-link-icon{color:#7c3aed;flex-shrink:0}.cal-link-icon-week{vertical-align:-2px;margin-right:3px;display:inline-block}.cal-link-icon-list{margin-right:6px}.cal-link-icon-popup{vertical-align:middle;margin-right:6px;display:inline-block}.calendar-event.event-google{border-left:3px solid var(--cal-event-border,#ccc);opacity:.85;background:0 0;font-style:italic}.week-event.week-event-google{opacity:.8;font-style:italic}.week-event.week-event-linked{font-style:normal;box-shadow:inset 0 0 0 1px #7c3aed44;border:2px solid #7c3aed!important}.dom-calendar-list-item-linked{background:#7c3aed0d;border:2px solid #7c3aed;border-radius:6px}.event-time-google-block{color:var(--text-600,#555);margin-top:4px;font-size:13px}.event-type-hint.event-type-linked{color:#7c3aed}.event-type-hint.event-type-google{color:#1a73e8}@media (width<=768px){.dom-calendar-days{font-size:12px}.dom-calendar-day{min-height:64px}.dom-calendar-title{font-size:1.2em}}.card{border:1px solid var(--surface-300);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);background:#fff;margin-bottom:20px;padding:20px 24px}.card h2{color:var(--text-900);margin:0 0 16px;font-size:16px;font-weight:700}.agenda-form .form-row{flex-direction:column;gap:5px;margin-bottom:14px;display:flex}.agenda-form .form-row label{color:var(--text-700);text-transform:uppercase;letter-spacing:.4px;font-size:12px;font-weight:600}.agenda-form .form-row input,.agenda-form .form-row select,.agenda-form .form-row textarea{border:1px solid var(--surface-300);border-radius:var(--radius-md);color:var(--text-900);background:#fff;padding:9px 12px;font-size:14px}.agenda-form .form-row input:focus,.agenda-form .form-row select:focus,.agenda-form .form-row textarea:focus{border-color:var(--navy-600);outline:none;box-shadow:0 0 0 3px #2c21851f}.room-dot{vertical-align:middle;border-radius:50%;width:10px;height:10px;margin-right:6px;display:inline-block}.agenda-ics-list{margin:0;padding:0;list-style:none}.agenda-ics-list li{border-bottom:1px solid var(--surface-200);margin-bottom:.75rem;padding-bottom:.75rem}.agenda-ics-list li:last-child{border-bottom:none;margin-bottom:0;padding-bottom:0}.agenda-ics-list code{color:var(--text-700);word-break:break-all;font-size:12px}.agenda-page-links{margin-top:8px;font-size:14px}.agenda-page-links a{color:var(--navy-700);font-weight:600}.agenda-page-links a:hover{color:var(--gold-500)}.app-loading{color:var(--text-500);padding:32px 36px;font-size:14px}.card-link{color:inherit;text-decoration:none;transition:border-color .15s,box-shadow .15s;display:block}.card-link:hover{border-color:var(--navy-600);box-shadow:var(--shadow-md)}.card-link-hint{color:var(--navy-700);margin-top:8px;font-size:13px;font-weight:600;display:block}.back-link{color:var(--navy-700);margin-bottom:8px;font-size:14px;font-weight:600;text-decoration:none;display:inline-block}.back-link:hover{color:var(--gold-500)}.event-roster-planner h2{margin:24px 0 8px;font-size:18px}.roster-role-form{margin-bottom:20px}.roster-role-card{margin-top:12px}.roster-role-header{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:12px;display:flex}.roster-role-meta{color:var(--text-600);font-size:14px;font-weight:400}.roster-slot{border-top:1px solid var(--surface-200);padding:10px 0}.roster-slot-label{text-transform:uppercase;color:var(--text-500);margin-bottom:4px;font-size:11px;display:block}.roster-assigned{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;display:flex}.roster-empty-hint,.roster-planner-loading{color:var(--text-500);font-size:14px}.btn-text{color:var(--navy-700);cursor:pointer;background:0 0;border:none;padding:0;font-size:13px;font-weight:600}.btn-text:hover{color:var(--gold-500)}.btn-danger-text{color:var(--gold-600);margin-left:auto}.btn-secondary{border:1px solid var(--surface-300);color:var(--navy-700);border-radius:var(--radius-md);cursor:pointer;background:#fff;padding:8px 14px;font-weight:600}.btn-secondary:hover{border-color:var(--navy-600)}.btn-sm{padding:6px 12px;font-size:13px}.roster-picker-overlay{z-index:1000;background:#0f0a2e73;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.roster-picker{width:100%;max-width:480px;max-height:80vh;position:relative;overflow:auto}.roster-picker-search{gap:8px;margin-bottom:12px;display:flex}.roster-picker-search input{border:1px solid var(--surface-300);border-radius:var(--radius-md);flex:1;padding:8px 12px}.roster-candidate-list{margin:0;padding:0;list-style:none}.roster-candidate-btn{text-align:left;border:1px solid var(--surface-200);border-radius:var(--radius-md);cursor:pointer;background:#fff;width:100%;margin-bottom:8px;padding:10px 12px}.roster-candidate-btn:hover{border-color:var(--navy-600);background:#f8f7fc}.roster-candidate-name{font-weight:600;display:block}.roster-candidate-meta{color:var(--text-500);font-size:12px}.event-recurrence-badge{color:var(--navy-600);margin-right:4px;font-size:.85em;font-weight:700;display:inline-block}.event-recurrence-badge-title{vertical-align:middle;margin-left:8px;font-size:.75em}.event-room-badge{color:var(--text-500);font-size:.9em}.event-recurrence-card p{margin:.5rem 0 0}.event-room-planner{margin-top:1rem}.event-room-card{margin-bottom:1rem}.event-room-card-header{justify-content:space-between;align-items:center;margin-bottom:.75rem;display:flex}.btn-text-danger{color:#b42318;cursor:pointer;background:0 0;border:none;font-size:.9rem}.roster-templates-layout{grid-template-columns:minmax(200px,260px) 1fr;gap:1.5rem;display:grid}@media (width<=768px){.roster-templates-layout{grid-template-columns:1fr}}.roster-templates-category-list{margin:0 0 1rem;padding:0;list-style:none}.roster-templates-category-btn{text-align:left;border-radius:var(--radius-md);cursor:pointer;background:0 0;border:none;width:100%;padding:8px 10px;font-size:.95rem;display:block}.roster-templates-category-btn:hover,.roster-templates-category-btn.active{background:#f0eef8;font-weight:600}.roster-templates-add-cat{flex-direction:column;gap:8px;display:flex}.roster-templates-add-cat input{border:1px solid var(--surface-300);border-radius:var(--radius-md);padding:8px}.roster-template-role-row{grid-template-columns:1fr 1fr auto auto;align-items:center;gap:8px;display:grid}@media (width<=640px){.roster-template-role-row{grid-template-columns:1fr}}.roster-template-qty{width:4rem}.roster-templates-key{color:var(--text-500);font-size:.85em;font-weight:400}.roster-templates-actions{flex-wrap:wrap;gap:8px;margin-top:1rem;display:flex}.roster-template-hint{color:var(--text-500);margin-bottom:1rem;font-size:.9rem}.btn-link{color:var(--navy-600);cursor:pointer;font:inherit;background:0 0;border:none;padding:0;text-decoration:underline}.form-success{color:#067647;margin-top:.75rem}
