:root{--ink-900: #1a1815;--ink-700: #3a3630;--ink-500: #6b665e;--ink-400: #8a857b;--ink-300: #b8b4ab;--ink-200: #d9d6cf;--ink-100: #ecebe6;--ink-50: #f5f4ef;--paper: #fbfaf6;--card: #ffffff;--accent-700: #061a3f;--accent-600: #004a70;--accent-500: #005a87;--accent-100: #dbe8f0;--accent-50: #eaf1f6;--success: #2f7d3f;--success-bg: #e6f2e8;--warning: #a06600;--warning-bg: #faf0d9;--danger: #a83232;--danger-bg: #f6e2e0;--tag-donor-bg: #eef4de;--tag-donor-fg: #4a6014;--tag-recur-bg: #dbeadb;--tag-recur-fg: #2a5a34;--tag-alum-bg: #e6ecef;--tag-alum-fg: #385660;--tag-board-bg: #f0e5f0;--tag-board-fg: #5c2f5c;--tag-prospect-bg: #fbeadb;--tag-prospect-fg: #7a4416;--tag-staff-bg: #e8ecdf;--tag-staff-fg: #4a5638;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 24px;--space-6: 32px;--space-7: 48px;--space-8: 64px;--radius-sm: 6px;--radius-md: 10px;--radius-lg: 14px;--font-body: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-mono: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, "Liberation Mono", monospace;--text-xs: 13px;--text-sm: 14px;--text-base: 16px;--text-lg: 18px;--text-xl: 22px;--text-2xl: 28px;--text-3xl: 34px;--shadow-sm: 0 1px 2px rgba(26, 24, 21, .05);--shadow-md: 0 4px 12px rgba(26, 24, 21, .08);--shadow-lg: 0 12px 32px rgba(26, 24, 21, .15);--sidebar-w: 240px;--slideover-w: 640px}*,*:before,*:after{box-sizing:border-box}html,body,#root{margin:0;padding:0;height:100%}body{font-family:var(--font-body);font-size:var(--text-base);line-height:1.5;color:var(--ink-900);background:var(--paper);-webkit-font-smoothing:antialiased}h1,h2,h3,h4,h5,h6{margin:0;font-weight:600;letter-spacing:-.01em}p{margin:0}a{color:var(--accent-600);text-decoration:none}a:hover{text-decoration:underline}button{font-family:inherit;cursor:pointer}input,select,textarea{font-family:inherit;font-size:var(--text-base)}ul{list-style:none;margin:0;padding:0}.app{display:grid;grid-template-columns:var(--sidebar-w) 1fr;min-height:100vh}.hamburger{display:none;flex-direction:column;justify-content:center;gap:5px;width:44px;height:44px;background:none;border:none;cursor:pointer;padding:var(--space-2);flex-shrink:0}.hamburger span{display:block;width:22px;height:2px;background:var(--ink-700);border-radius:2px;transition:opacity .15s}.sidebar-scrim{display:none}.sidebar{background:var(--card);border-right:1px solid var(--ink-100);padding:var(--space-5) var(--space-3);display:flex;flex-direction:column;gap:var(--space-5);position:sticky;top:0;height:100vh;overflow-y:auto}@media (max-width: 768px){.app{grid-template-columns:1fr}.sidebar{position:fixed;top:0;left:0;height:100vh;width:var(--sidebar-w);z-index:200;transform:translate(-100%);transition:transform .22s ease;box-shadow:2px 0 16px #0000001f}.sidebar-is-open .sidebar{transform:translate(0)}.sidebar-scrim{display:block;position:fixed;top:0;right:0;bottom:0;left:0;background:#1a181559;z-index:199}.hamburger{display:flex;position:fixed;top:var(--space-3);left:var(--space-3);z-index:100;background:var(--card);border:1px solid var(--ink-200);border-radius:var(--radius-sm);box-shadow:0 1px 4px #00000014}.main{padding-top:56px}.page-body{padding:var(--space-4) var(--space-4)}}.brand{padding:var(--space-2) var(--space-3);display:flex;align-items:center;gap:var(--space-3);text-decoration:none;color:inherit}.brand:hover{text-decoration:none}.brand-mark{width:36px;height:36px;border-radius:8px;background:var(--accent-500);color:#fff;display:grid;place-items:center;font-weight:700;font-size:18px;letter-spacing:-.02em;flex-shrink:0}.brand-text{display:flex;flex-direction:column;line-height:1.15}.brand-text strong{font-weight:600;font-size:var(--text-base);color:var(--ink-900)}.brand-text span{font-size:var(--text-xs);color:var(--ink-500)}.nav{display:flex;flex-direction:column;gap:2px}.nav-item{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-3);border-radius:var(--radius-md);color:var(--ink-700);font-size:var(--text-base);font-weight:500;text-decoration:none;min-height:44px}.nav-item:hover{background:var(--ink-50);text-decoration:none;color:var(--ink-900)}.nav-item.is-active{background:var(--accent-100);color:var(--accent-700);font-weight:600}.nav-icon{width:22px;height:22px;display:grid;place-items:center;color:currentColor;flex-shrink:0}.sidebar-footer{margin-top:auto;padding:var(--space-3);border-top:1px solid var(--ink-100);font-size:var(--text-sm);color:var(--ink-500)}.main{min-height:100vh;overflow-y:auto}.page-body{padding:var(--space-6) var(--space-7);max-width:1400px;width:100%}.page-header{display:flex;align-items:flex-end;justify-content:space-between;gap:var(--space-5);margin-bottom:var(--space-6);padding-bottom:var(--space-5);border-bottom:1px solid var(--ink-100)}.page-title{font-size:var(--text-3xl);font-weight:600;color:var(--ink-900);letter-spacing:-.02em}.page-sub{color:var(--ink-500);font-size:var(--text-base);margin-top:var(--space-2)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);padding:0 var(--space-4);min-height:44px;border-radius:var(--radius-md);font-size:var(--text-base);font-weight:600;border:1px solid transparent;background:transparent;color:var(--ink-700);transition:background .12s ease,border-color .12s ease,color .12s ease;white-space:nowrap;cursor:pointer;font-family:inherit;line-height:1}.btn:disabled{opacity:.5;cursor:not-allowed}.btn:focus-visible{outline:3px solid var(--accent-100);outline-offset:2px}.btn-primary{background:var(--accent-500);color:#fff;border-color:var(--accent-500)}.btn-primary:hover:not(:disabled){background:var(--accent-600);border-color:var(--accent-600)}.btn-secondary{background:var(--card);color:var(--ink-700);border:1px solid var(--ink-200)}.btn-secondary:hover:not(:disabled){border-color:var(--ink-300);background:var(--ink-50)}.btn-ghost{color:var(--ink-700);border-color:transparent}.btn-ghost:hover:not(:disabled){background:var(--ink-50)}.btn-danger{background:transparent;color:var(--danger);border-color:var(--ink-200)}.btn-danger:hover:not(:disabled){background:var(--danger-bg);border-color:var(--danger)}.btn-lg{min-height:52px;padding:0 var(--space-5);font-size:var(--text-lg)}.btn-sm{min-height:36px;padding:0 var(--space-3);font-size:var(--text-sm)}.btn-icon{padding:0;width:44px;min-height:44px}.form-field{display:flex;flex-direction:column;gap:var(--space-2)}.form-label{font-size:var(--text-sm);color:var(--ink-500);font-weight:500}.form-label .req{color:var(--danger);margin-left:2px}.form-hint{font-size:var(--text-xs);color:var(--ink-400)}.input,.select,.textarea{width:100%;padding:var(--space-3) var(--space-4);min-height:48px;background:var(--card);border:1px solid var(--ink-200);border-radius:var(--radius-md);color:var(--ink-900);font-size:var(--text-base);font-family:inherit;transition:border-color .12s ease,box-shadow .12s ease}.input:focus,.select:focus,.textarea:focus{outline:none;border-color:var(--accent-500);box-shadow:0 0 0 3px var(--accent-100)}.input::placeholder{color:var(--ink-400)}.textarea{min-height:96px;resize:vertical;line-height:1.5}.select{cursor:pointer;-webkit-appearance:auto;-moz-appearance:auto;appearance:auto}.search-wrap{position:relative}.search-icon{position:absolute;left:14px;top:50%;transform:translateY(-50%);color:var(--ink-500);pointer-events:none}.search-input{width:100%;padding:var(--space-3) var(--space-4) var(--space-3) 44px;min-height:48px;background:var(--card);border:1px solid var(--ink-200);border-radius:var(--radius-md);color:var(--ink-900);font-size:var(--text-base);font-family:inherit;transition:border-color .12s ease,box-shadow .12s ease}.search-input:focus{outline:none;border-color:var(--accent-500);box-shadow:0 0 0 3px var(--accent-100)}.search-input::placeholder{color:var(--ink-400)}.checkbox{display:inline-flex;align-items:center;gap:var(--space-3);cursor:pointer;min-height:44px;padding:0 var(--space-2)}.checkbox input[type=checkbox]{width:22px;height:22px;accent-color:var(--accent-500);cursor:pointer;flex-shrink:0}.multiselect-group{display:flex;flex-wrap:wrap;gap:var(--space-2) var(--space-4);padding:var(--space-2) 0}.multiselect-option{display:flex;align-items:center;gap:var(--space-2);cursor:pointer;min-height:36px}.multiselect-option input[type=checkbox]{width:20px;height:20px;accent-color:var(--accent-500)}.currency-wrap{position:relative}.currency-prefix{position:absolute;left:14px;top:50%;transform:translateY(-50%);color:var(--ink-500);font-weight:600;pointer-events:none}.currency-input{padding-left:30px}.card{background:var(--card);border:1px solid var(--ink-100);border-radius:var(--radius-lg);overflow:hidden}.list-toolbar{display:flex;align-items:center;gap:var(--space-3);margin-bottom:var(--space-5)}.list-toolbar .search{flex:1;max-width:480px}.list-toolbar .spacer{flex:1}.list-count{font-size:var(--text-sm);color:var(--ink-500);white-space:nowrap}.table{width:100%;border-collapse:separate;border-spacing:0;background:var(--card);border-radius:var(--radius-lg);overflow:hidden;border:1px solid var(--ink-100)}.table thead th{text-align:left;padding:var(--space-4) var(--space-5);font-size:var(--text-sm);font-weight:600;color:var(--ink-500);background:var(--ink-50);border-bottom:1px solid var(--ink-100);white-space:nowrap}.table tbody tr{cursor:pointer;border-bottom:1px solid var(--ink-100);transition:background .12s ease}.table tbody tr:last-child{border-bottom:none}.table tbody tr:hover{background:var(--ink-50)}.table tbody tr.is-selected{background:var(--accent-100)}.table tbody td{padding:var(--space-5);font-size:var(--text-base);color:var(--ink-900);vertical-align:middle}.table tbody td.muted{color:var(--ink-500)}.cell-name{font-weight:600;color:var(--ink-900);display:flex;align-items:center;gap:var(--space-3)}.cell-deceased .cell-name{text-decoration:line-through;opacity:.7}.cell-tags{display:flex;flex-wrap:wrap;gap:var(--space-2)}.junction-table{width:100%;border-collapse:separate;border-spacing:0}.junction-table thead th{text-align:left;padding:var(--space-3) var(--space-4);font-size:var(--text-sm);font-weight:600;color:var(--ink-500);border-bottom:1px solid var(--ink-100)}.junction-table tbody tr{cursor:pointer;transition:background .12s ease}.junction-table tbody tr:hover{background:var(--ink-50)}.junction-table tbody td{padding:var(--space-3) var(--space-4);font-size:var(--text-base);color:var(--ink-900);border-bottom:1px solid var(--ink-100);vertical-align:middle}.junction-table tbody tr:last-child td{border-bottom:none}.pagination{display:flex;align-items:center;justify-content:space-between;padding:var(--space-4) var(--space-2);color:var(--ink-500);font-size:var(--text-sm)}.pagination .pager{display:flex;gap:var(--space-2)}.empty{text-align:center;padding:var(--space-8) var(--space-5);color:var(--ink-500)}.empty h3{font-size:var(--text-xl);color:var(--ink-700);margin-bottom:var(--space-2);font-weight:600}.empty p{margin-bottom:var(--space-5)}.empty-sm{text-align:center;padding:var(--space-5);color:var(--ink-500);font-size:var(--text-sm)}.loading{padding:var(--space-7);text-align:center;color:var(--ink-500);font-size:var(--text-lg)}.error-banner{background:var(--danger-bg);border:1px solid var(--danger);color:var(--danger);padding:var(--space-4) var(--space-5);border-radius:var(--radius-md);margin-bottom:var(--space-5);font-size:var(--text-base);display:flex;align-items:center;justify-content:space-between;gap:var(--space-3)}.tag{display:inline-flex;align-items:center;gap:var(--space-1);padding:4px 10px;border-radius:999px;font-size:var(--text-sm);font-weight:600;letter-spacing:-.005em;line-height:1.4;white-space:nowrap}.tag-donor{background:var(--tag-donor-bg);color:var(--tag-donor-fg)}.tag-recur{background:var(--tag-recur-bg);color:var(--tag-recur-fg)}.tag-alum{background:var(--tag-alum-bg);color:var(--tag-alum-fg)}.tag-board{background:var(--tag-board-bg);color:var(--tag-board-fg)}.tag-prospect{background:var(--tag-prospect-bg);color:var(--tag-prospect-fg)}.tag-staff{background:var(--tag-staff-bg);color:var(--tag-staff-fg)}.tag-neutral{background:var(--ink-100);color:var(--ink-700)}.tag-count{font-variant-numeric:tabular-nums;background:#0000000f;padding:1px 6px;border-radius:999px;font-size:12px}.pill{display:inline-flex;align-items:center;padding:2px 10px;border-radius:999px;font-size:var(--text-sm);font-weight:500;border:1px solid transparent}.pill-success{background:var(--success-bg);color:var(--success)}.pill-warning{background:var(--warning-bg);color:var(--warning)}.pill-neutral{background:var(--ink-50);color:var(--ink-700);border-color:var(--ink-200)}.pill-danger{background:var(--danger-bg);color:var(--danger)}.avatar{width:40px;height:40px;border-radius:50%;background:var(--accent-100);color:var(--accent-700);display:grid;place-items:center;font-weight:700;font-size:var(--text-base);flex-shrink:0;-webkit-user-select:none;user-select:none}.avatar-sm{width:32px;height:32px;font-size:var(--text-sm)}.avatar-lg{width:48px;height:48px;font-size:var(--text-lg)}.avatar-muted{background:var(--ink-100);color:var(--ink-500);opacity:.6}.avatar-photo{width:48px;height:48px;object-fit:cover;border-radius:50%;display:block;cursor:pointer;transition:opacity .15s}.avatar-photo:hover{opacity:.82}.scrim{position:fixed;top:0;right:0;bottom:0;left:0;background:#1a181559;z-index:40}.slideover{position:fixed;top:0;right:0;height:100vh;width:clamp(800px,75vw,1280px);max-width:100vw;background:var(--card);z-index:50;box-shadow:var(--shadow-lg);display:flex;flex-direction:column;overflow:hidden}.slideover-narrow{width:480px;z-index:60}@media (max-width: 768px){.slideover{width:100vw}}.slideover-header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-4);padding:var(--space-5) var(--space-6);border-bottom:1px solid var(--ink-100);flex-shrink:0}.slideover-title-row{flex:1;min-width:0}.slideover-title{font-size:var(--text-2xl);font-weight:600;color:var(--ink-900);letter-spacing:-.015em;display:flex;align-items:center;gap:var(--space-3);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.slideover-subtitle{color:var(--ink-500);font-size:var(--text-base);margin-top:var(--space-1)}.slideover-actions{display:flex;gap:var(--space-2);align-items:center;flex-shrink:0}.slideover-close{width:44px;height:44px;border-radius:var(--radius-md);border:1px solid var(--ink-200);background:var(--card);color:var(--ink-700);display:grid;place-items:center;font-size:20px;cursor:pointer;font-family:inherit}.slideover-close:hover{background:var(--ink-50)}.slideover-body{padding:var(--space-6);overflow-y:auto;flex:1;display:flex;flex-direction:column;gap:var(--space-6)}.slideover-footer{padding:var(--space-4) var(--space-6);border-top:1px solid var(--ink-100);display:flex;justify-content:space-between;gap:var(--space-3);background:var(--card);flex-shrink:0}.tag-row{display:flex;flex-wrap:wrap;gap:var(--space-2)}.section{display:flex;flex-direction:column;gap:var(--space-3)}.section-head{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3)}.section-title{font-size:var(--text-lg);font-weight:600;color:var(--ink-900)}.section-card{background:var(--card);border:1px solid var(--ink-100);border-radius:var(--radius-lg);overflow:hidden}.field-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:0;padding:var(--space-4) var(--space-5)}.field-row{display:flex;flex-direction:column;gap:var(--space-1);padding:var(--space-3) var(--space-3)}.field-row.field-full{grid-column:1 / -1}.field-row-label{color:var(--ink-500);font-size:var(--text-xs);font-weight:600;text-transform:uppercase;letter-spacing:.04em}.field-row-value{color:var(--ink-900);font-size:var(--text-base);word-break:break-word;min-height:24px}.field-row-value.is-empty{color:var(--ink-400);font-style:italic}.field-row-value .input,.field-row-value .select,.field-row-value .textarea{padding:var(--space-2) var(--space-3);min-height:40px;border-radius:var(--radius-sm)}.inline-edit-cell{width:100%;border-radius:var(--radius-sm);transition:background .2s ease}.inline-edit-cell.is-flash{background:var(--success-bg);transition:background 0ms;animation:inline-flash 1s ease forwards}@keyframes inline-flash{0%{background:var(--success-bg)}80%{background:var(--success-bg)}to{background:transparent}}@keyframes spin{to{transform:rotate(360deg)}}.inline-edit-read{display:flex;align-items:center;gap:var(--space-2);min-height:32px}.inline-edit-empty-value{color:var(--ink-400);font-style:italic}.inline-edit-pencil{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:var(--radius-sm);border:none;background:transparent;color:var(--ink-300);cursor:pointer;padding:0;opacity:0;transition:opacity .12s ease,color .12s ease,background .12s ease;margin-left:auto;font-family:inherit}.field-row:hover .inline-edit-pencil{opacity:1}.inline-edit-cell:focus-within .inline-edit-pencil{opacity:1}.inline-edit-pencil:hover{color:var(--ink-500);background:var(--ink-100)}.inline-edit-pencil:focus-visible{outline:3px solid var(--accent-100);outline-offset:2px;opacity:1}.inline-edit-active{display:flex;flex-direction:column;gap:var(--space-2)}.inline-edit-input-row{display:flex;align-items:flex-start;gap:var(--space-2)}.inline-edit-input-wrap{flex:1;min-width:0}.inline-edit-input-wrap .input,.inline-edit-input-wrap .select{padding:var(--space-2) var(--space-3);min-height:36px;border-radius:var(--radius-sm);font-size:var(--text-sm)}.inline-edit-input-wrap .textarea{padding:var(--space-2) var(--space-3);min-height:72px;border-radius:var(--radius-sm);font-size:var(--text-sm)}.inline-edit-input-wrap .checkbox{min-height:36px}.inline-edit-actions{display:flex;gap:4px;flex-shrink:0;padding-top:4px}.inline-edit-btn{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:var(--radius-sm);border:1px solid transparent;background:transparent;cursor:pointer;padding:0;font-family:inherit;transition:background .12s ease,color .12s ease,border-color .12s ease}.inline-edit-btn:disabled{opacity:.5;cursor:not-allowed}.inline-edit-btn:focus-visible{outline:3px solid var(--accent-100);outline-offset:2px}.inline-edit-btn-save{color:var(--success);border-color:var(--success);background:var(--success-bg)}.inline-edit-btn-save:hover:not(:disabled){background:var(--success);color:#fff}.inline-edit-btn-cancel{color:var(--ink-500);border-color:var(--ink-200);background:var(--card)}.inline-edit-btn-cancel:hover:not(:disabled){background:var(--ink-50);color:var(--ink-700)}.inline-edit-error{font-size:var(--text-xs);color:var(--danger);padding:2px var(--space-1)}.report-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:var(--space-5)}.report-card{background:var(--card);border:1px solid var(--ink-100);border-radius:var(--radius-lg);padding:var(--space-6);display:flex;flex-direction:column;gap:var(--space-3);min-height:200px;transition:border-color .12s ease,box-shadow .12s ease;cursor:pointer}.report-card:hover{border-color:var(--accent-500);box-shadow:var(--shadow-md)}.report-card .rc-icon{width:44px;height:44px;border-radius:var(--radius-md);background:var(--accent-50);color:var(--accent-600);display:grid;place-items:center;margin-bottom:var(--space-2)}.report-card h3{font-size:var(--text-xl);font-weight:600;color:var(--ink-900)}.report-card p{color:var(--ink-500);font-size:var(--text-base);line-height:1.5;flex:1}.report-card .rc-meta{font-size:var(--text-sm);color:var(--ink-500);padding-top:var(--space-3);border-top:1px solid var(--ink-100)}.filter-strip{background:var(--card);border:1px solid var(--ink-100);border-radius:var(--radius-lg);padding:var(--space-4) var(--space-5);display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-3);margin-bottom:var(--space-5)}.filter-label{font-size:var(--text-sm);color:var(--ink-500);font-weight:500}.filter-block{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);background:var(--ink-50);border-radius:var(--radius-md)}.filter-block .select,.filter-block .input{border:none;background:transparent;padding:0;min-height:32px;font-size:var(--text-sm);color:var(--ink-900);font-weight:500;box-shadow:none}.filter-block .select:focus,.filter-block .input:focus{outline:none;box-shadow:none;border:none}@media (max-width: 600px){.filter-strip{flex-direction:column;align-items:flex-start}.filter-block,.filter-block .select{width:100%}}.settings-callout{background:var(--accent-50);border:1px solid var(--accent-100);color:var(--ink-700);padding:var(--space-4) var(--space-5);border-radius:var(--radius-md);display:flex;align-items:flex-start;gap:var(--space-3);margin-bottom:var(--space-6);font-size:var(--text-base)}.settings-callout .sc-icon{color:var(--accent-600);flex-shrink:0;margin-top:2px}.settings-callout a{font-weight:600}.entity-block{margin-bottom:var(--space-7)}.entity-block h2{font-size:var(--text-2xl);margin-bottom:var(--space-3)}.entity-sub{color:var(--ink-500);margin-bottom:var(--space-4);font-size:var(--text-sm)}.schema-table th,.schema-table td{padding:var(--space-3) var(--space-5)!important;font-size:var(--text-sm)!important}.type-badge{display:inline-block;padding:2px 8px;background:var(--ink-50);color:var(--ink-700);border-radius:var(--radius-sm);font-size:var(--text-xs);font-family:var(--font-mono);font-weight:500}.badge-req{color:var(--danger);font-weight:700;font-size:var(--text-sm)}.badge-yes{color:var(--success);font-weight:700;font-size:var(--text-sm)}.badge-no{color:var(--ink-400);font-size:var(--text-sm)}.entity-tabs{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-bottom:var(--space-6)}.entity-tab{padding:var(--space-2) var(--space-4);border:1px solid var(--ink-200);border-radius:var(--radius-md);background:var(--card);color:var(--ink-700);font-size:var(--text-sm);font-weight:500;cursor:pointer;font-family:inherit;min-height:36px}.entity-tab:hover{border-color:var(--accent-500);color:var(--accent-600)}.entity-tab.is-active{background:var(--accent-100);border-color:var(--accent-500);color:var(--accent-700);font-weight:600}.rsd{position:relative}.rsd-list{position:absolute;top:calc(100% + 4px);left:0;right:0;background:var(--card);border:1px solid var(--ink-200);border-radius:var(--radius-md);box-shadow:var(--shadow-md);max-height:220px;overflow-y:auto;z-index:200}.rsd-item{padding:var(--space-3) var(--space-4);cursor:pointer;font-size:var(--text-base);color:var(--ink-900)}.rsd-item:hover,.rsd-item.is-selected{background:var(--accent-100);color:var(--accent-700)}.rsd-empty{padding:var(--space-4);color:var(--ink-500);font-size:var(--text-sm);text-align:center}.rsd-selected{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);background:var(--accent-100);border:1px solid var(--accent-500);border-radius:var(--radius-md);font-size:var(--text-base);color:var(--accent-700);font-weight:500}.rsd-clear{margin-left:auto;background:none;border:none;color:var(--ink-500);cursor:pointer;padding:2px 4px;font-size:18px;line-height:1}.dialog-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#1a181573;z-index:100;display:grid;place-items:center;padding:var(--space-6)}.dialog{background:var(--card);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);width:100%;max-width:440px;padding:var(--space-6)}.dialog h3{font-size:var(--text-xl);margin-bottom:var(--space-4)}.dialog p{color:var(--ink-700);margin-bottom:var(--space-6);line-height:1.6}.dialog-actions{display:flex;gap:var(--space-3);justify-content:flex-end}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:var(--space-5);margin-bottom:var(--space-6)}.stat-card{background:var(--card);border:1px solid var(--ink-100);border-radius:var(--radius-lg);padding:var(--space-6);text-align:center;cursor:pointer;text-decoration:none;color:inherit;display:block;transition:border-color .12s,box-shadow .12s}.stat-card:hover{border-color:var(--accent-500);box-shadow:var(--shadow-md);text-decoration:none}.stat-number{font-size:40px;font-weight:700;color:var(--accent-600);line-height:1;margin-bottom:var(--space-2);letter-spacing:-.02em}.stat-label{font-size:var(--text-sm);color:var(--ink-500);font-weight:500}.hstack{display:flex;align-items:center;gap:var(--space-3)}.vstack{display:flex;flex-direction:column;gap:var(--space-3)}.grow{flex:1}.muted{color:var(--ink-500)}.text-sm{font-size:var(--text-sm)}.text-danger{color:var(--danger)}.icon-sm{width:16px;height:16px}.icon-md{width:20px;height:20px}.icon-lg{width:24px;height:24px}.login-screen{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--paper, #fbfaf6);padding:var(--space-6, 32px)}.login-loading{min-height:100vh;display:flex;align-items:center;justify-content:center;color:var(--ink-500, #7b7268);font-size:15px}.login-card{max-width:400px;width:100%;background:var(--card, #fff);border:1px solid var(--ink-200, #d9d6cf);border-radius:var(--radius-lg, 12px);padding:var(--space-7, 40px);box-shadow:0 6px 24px #061a3f14}.login-wordmark{font-size:24px;font-weight:700;color:var(--accent-900, #061a3f);letter-spacing:-.01em;margin-bottom:8px}.login-subtitle{color:var(--ink-600, #5a5148);font-size:15px;margin:0 0 24px}.login-card .input{width:100%;margin-bottom:12px}.login-error{color:var(--danger, #b32d2e);font-size:14px;margin:8px 0}.login-submit{width:100%;margin-top:8px}.login-field{margin-bottom:var(--space-3)}.login-field:last-of-type{margin-bottom:var(--space-4)}.login-label{display:block;font-size:var(--text-sm);font-weight:500;color:var(--ink-700);margin-bottom:var(--space-1)}.login-field .input{width:100%;margin-bottom:0}.user-pill{background:var(--accent-50);border:1px solid var(--accent-100);border-radius:var(--radius-sm);padding:var(--space-2) var(--space-3);font-size:var(--text-sm)}.user-pill-name{font-weight:600;color:var(--ink-900);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-pill-meta{display:flex;align-items:center;gap:var(--space-2);margin-top:2px}.user-pill-role{font-size:var(--text-xs);color:var(--ink-500);text-transform:capitalize}.user-pill-logout{margin-left:auto;background:none;border:none;font-size:var(--text-xs);color:var(--accent-600);cursor:pointer;padding:0;text-decoration:underline}.user-pill-logout:hover{color:var(--accent-700)}.users-admin{margin-top:var(--space-5)}.users-admin-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-4)}.btn-sm{font-size:var(--text-sm);padding:5px var(--space-3)}.btn-danger{background:var(--danger-bg);color:var(--danger);border-color:var(--danger)}.btn-danger:hover{background:var(--danger);color:#fff}.success-banner{background:var(--success-bg);color:var(--success);border:1px solid #b5d9bc;border-radius:var(--radius-md);padding:var(--space-3) var(--space-4);font-size:var(--text-sm);margin-bottom:var(--space-4)}.invite-url-box{background:var(--warning-bg);border:1px solid #e2c97a;border-radius:var(--radius-md);padding:var(--space-4);margin-bottom:var(--space-4);font-size:var(--text-sm);display:flex;flex-direction:column;gap:var(--space-2)}.invite-url-text{font-family:var(--font-mono);font-size:var(--text-xs);background:#fff9;border:1px solid #d9c47a;border-radius:var(--radius-sm);padding:var(--space-2) var(--space-3);word-break:break-all;color:var(--ink-700)}.role-badge{display:inline-block;font-size:var(--text-xs);font-weight:600;padding:2px 8px;border-radius:100px;text-transform:capitalize}.role-admin{background:var(--accent-100);color:var(--accent-700)}.role-staff{background:var(--ink-100);color:var(--ink-700)}.role-viewer{background:var(--ink-50);color:var(--ink-500)}.field-label{display:block;font-size:var(--text-sm);font-weight:500;color:var(--ink-700);margin-bottom:var(--space-1)}
