*{box-sizing:border-box;scrollbar-gutter:stable;margin:0;padding:0}body{color:#333;background:#f5f5f5;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,sans-serif;line-height:1.6}.app{flex-direction:column;min-height:100vh;display:flex}.header{color:#fff;background-color:#003594;justify-content:space-between;align-items:center;padding:2rem;display:flex;box-shadow:0 2px 8px #0000001a}.header h1{margin:0;font-size:2rem;font-weight:600}.tabs{align-items:center;gap:1rem;display:flex}.tabs .tab{color:#fff;cursor:pointer;border-bottom:3px solid #0000;padding:.5rem 1rem;font-weight:500;text-decoration:none;transition:all .3s}.tabs .tab:hover{opacity:.8;border-bottom-color:#ffffff80}.tabs .tab.active{color:#ffb81c;border-bottom-color:#ffb81c}.header-right{align-items:center;gap:1.5rem;display:flex}.user-menu{position:relative}.user-avatar{color:#003594;cursor:pointer;background:#ffb81c;border:none;border-radius:50%;justify-content:center;align-items:center;width:2.5rem;height:2.5rem;font-size:.95rem;font-weight:700;display:flex}.user-popover{z-index:10;padding-top:.5rem;position:absolute;top:100%;right:0}.user-popover-content{color:#333;background:#fff;border-radius:8px;flex-direction:column;gap:.5rem;min-width:220px;padding:1rem;display:flex;box-shadow:0 4px 16px #0003}.user-popover-name{font-weight:600}.user-popover-email{color:#666;word-break:break-all;font-size:.875rem}.main-content{flex:1;width:100%;max-width:1200px;margin:0 auto;padding:2rem}button,.btn{cursor:pointer;border:none;border-radius:4px;justify-content:center;align-items:center;padding:.75rem 1.5rem;font-size:1rem;font-weight:500;text-decoration:none;transition:all .3s;display:inline-flex}.btn-primary{color:#fff;background:#667eea}.btn-primary:hover{background:#5568d3;transform:translateY(-2px);box-shadow:0 4px 12px #667eea66}.btn-secondary{color:#667eea;background:#e0e7ff}.btn-secondary:hover{background:#c7d2fd}.btn-danger{color:#fff;background:#ef4444}.btn-danger:hover{background:#dc2626}.btn-small{padding:.5rem 1rem;font-size:.875rem}.card{background:#fff;border-radius:8px;margin-bottom:1.5rem;padding:1.5rem;box-shadow:0 2px 8px #0000001a}.card-header{border-bottom:2px solid #f0f0f0;justify-content:space-between;align-items:center;margin-bottom:1rem;padding-bottom:1rem;display:flex}.card-header h2{color:#333;margin:0;font-size:1.5rem}.page-header{border-bottom:2px solid #e0e0e0;justify-content:space-between;align-items:center;margin-bottom:1.5rem;padding:.5rem 2rem 1rem;display:flex}.page-header h1{color:#333;margin:0;font-size:1.75rem}.page-header .page-actions{align-items:center;gap:.75rem;display:flex}.page-header .checkbox-label{cursor:pointer;color:#667eea;background:#e0e7ff;border-radius:4px;align-items:center;gap:.4rem;padding:.75rem 1.5rem;font-weight:500;transition:all .3s;display:flex}.page-header .checkbox-label:hover{background:#c7d2fd}.page-header .checkbox-label:has(input:checked){color:#fff;background:#667eea}.list-description{color:#666;margin:0;font-size:.9rem}.list-description-row{justify-content:space-between;align-items:center;gap:1rem;margin:-.75rem 2rem 1.5rem;display:flex}.list-description a{color:#667eea;cursor:pointer;text-decoration:underline}.list-description a:hover{color:#5568d3}article{background:#fff;border-radius:8px;padding:1.5rem;box-shadow:0 2px 8px #0000001a}article>section{border-bottom:1px solid #f0f0f0;margin-bottom:2rem;padding-bottom:1.5rem}article>section:last-child{border-bottom:none;margin-bottom:0;padding-bottom:0}article>section>h2{color:#333;border-bottom:1px solid #ddd;margin:0 0 1rem;padding-bottom:.5rem;font-size:1.1rem}.page-footer{border-top:1px solid #e0e0e0;gap:1rem;margin-top:2rem;padding-top:1.5rem;display:flex}.form-group{margin-bottom:1.5rem}.form-group label{color:#333;margin-bottom:.5rem;font-weight:600;display:block}.form-group input,.form-group textarea,.form-group select{border:1px solid #ddd;border-radius:4px;width:100%;padding:.75rem;font-family:inherit;font-size:1rem;transition:border-color .3s}.form-group input:focus,.form-group textarea:focus,.form-group select:focus{border-color:#667eea;outline:none;box-shadow:0 0 0 3px #667eea1a}.form-section{background:#fff;border:1px solid #e0e0e0;border-radius:8px;margin-bottom:1.5rem;padding:1.5rem}.form-section h3{color:#333;margin:0 0 1rem;font-size:1.1rem}.form-actions{background:#f9f9f9;border-top:1px solid #e0e0e0;border-radius:8px;justify-content:flex-start;gap:1rem;padding:1.5rem;display:flex}.form-page{max-width:900px;margin:0 auto}.form-row{grid-template-columns:1fr 1fr;gap:1rem;display:grid}.form-row-3{grid-template-columns:1fr 1fr 1fr}.table-container{overflow-x:auto}.view-toggle{border-bottom:2px solid #e0e0e0;gap:.5rem;margin-bottom:1.5rem;padding-bottom:1rem;display:flex}.view-toggle-btn{color:#666;cursor:pointer;background:0 0;border:none;border-bottom:3px solid #0000;padding:.75rem 1.5rem;font-weight:500;transition:all .3s}.view-toggle-btn:hover{color:#667eea}.view-toggle-btn.active{color:#667eea;border-bottom-color:#667eea}table{border-collapse:collapse;background:#fff;border-radius:8px;width:100%;overflow:hidden;box-shadow:0 2px 8px #0000001a}thead{background:#f8f8f8;border-bottom:2px solid #e0e0e0}th{text-align:left;color:#333;padding:1rem;font-weight:600}td{border-bottom:1px solid #f0f0f0;padding:1rem}tbody tr:hover{cursor:pointer;background:#f9f9f9}tbody tr:last-child td{border-bottom:none}.pagination{justify-content:space-between;align-items:center;gap:1rem;margin-top:2rem;display:flex}.pagination-controls{align-items:center;gap:.5rem;display:flex}.pagination button{min-width:40px;padding:.5rem .75rem}.pagination button:disabled{opacity:.5;cursor:not-allowed}.pagination-controls span{margin:0 1rem;font-weight:500}.pagination-jump{align-items:center;gap:.5rem;font-weight:400;display:flex}.pagination-jump input{text-align:center;border:1px solid #dfe6e9;border-radius:4px;width:4rem;padding:.4rem .5rem}.pagination-page-size{align-items:center;gap:.5rem;font-weight:500;display:flex}.pagination-page-size select{border:1px solid #dfe6e9;border-radius:4px;padding:.4rem .5rem}.nav-tabs{border-bottom:2px solid #e0e0e0;gap:1rem;margin-bottom:1.5rem;display:flex}.nav-tab{cursor:pointer;color:#666;background:0 0;border:none;border-bottom:3px solid #0000;padding:.75rem 1.5rem;font-weight:500;transition:all .3s}.nav-tab.active{color:#667eea;border-bottom-color:#667eea}.nav-tab:hover{color:#667eea}.breadcrumbs{gap:.5rem;margin-bottom:1.5rem;padding:0 2rem;font-size:.95rem;display:flex}.breadcrumbs a{color:#667eea;cursor:pointer;text-decoration:none}.breadcrumbs a,.breadcrumbs [aria-current=page]{font-weight:700}.breadcrumbs a:hover{text-decoration:underline}.breadcrumbs span{color:#999}.breadcrumbs .breadcrumb-separator{color:#000}.loading{text-align:center;color:#666;padding:2rem}.spinner{border:4px solid #f3f3f3;border-top-color:#667eea;border-radius:50%;width:40px;height:40px;margin:0 auto 1rem;animation:1s linear infinite spin}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.error{color:#c33;background:#fee;border-left:4px solid #c33;border-radius:4px;margin-bottom:1rem;padding:1rem}.success{color:#333;background:#efe;border-left:4px solid #3c3;border-radius:4px;margin-bottom:1rem;padding:1rem}.modal-backdrop{z-index:1000;background-color:#00000080;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal-dialog{background-color:#fff;border-radius:8px;width:90%;max-width:500px;max-height:90vh;padding:30px;overflow-y:auto;box-shadow:0 4px 20px #0000004d}.modal-title{margin-top:0;margin-bottom:20px}.filter-fields{flex-direction:column;gap:16px;margin-bottom:20px;display:flex}.filter-field label{margin-bottom:4px;font-weight:700;display:block}.filter-field input,.filter-field select{box-sizing:border-box;border:thin solid #eee;border-radius:5px;padding:5px .75rem}.filter-range{grid-template-columns:minmax(0,1fr) max-content minmax(0,1fr);align-items:center;gap:.5rem;display:grid}.filter-range .filter-range-sep{color:#666;white-space:nowrap}.filter-checkbox{align-items:center;gap:8px;font-weight:700;display:flex}.checkbox-list{border:thin solid #eee;border-radius:5px;grid-template-columns:max-content minmax(0,1fr);gap:.35rem .5rem;max-height:8rem;padding:2px .75rem;display:grid;overflow-y:auto}.checkbox-list .checkbox-list-item{display:contents}.checkbox-list input{align-self:center;margin:0}.checkbox-list span{min-width:0;font-weight:400}.checkbox-list input:checked+span{color:#4169e1}.modal-actions{justify-content:flex-end;gap:10px;display:flex}.donor-list{background:#fff;border-radius:8px;overflow:hidden;box-shadow:0 2px 8px #0000001a}.donor-row{cursor:pointer;border-bottom:1px solid #f0f0f0;grid-template-columns:2fr 2fr 2fr 1fr;align-items:center;gap:1rem;padding:1rem;transition:background .2s;display:grid}.donor-row:hover{background:#f9f9f9}.donor-row:last-child{border-bottom:none}.donor-hgr{color:#667eea;font-family:Courier New,monospace;font-weight:600}.donor-name{color:#333}.donor-date{color:#666;font-size:.95rem}.donor-reclaim{color:#92400e;background:#fef3c7;border-radius:20px;padding:.25rem .75rem;font-size:.85rem;font-weight:500;display:inline-block}.specimen-list{background:#fff;border-radius:8px;overflow:hidden;box-shadow:0 2px 8px #0000001a}.specimen-row{cursor:pointer;border-bottom:1px solid #f0f0f0;grid-template-columns:2fr 2fr 2fr 1fr;align-items:center;gap:1rem;padding:1rem;transition:background .2s;display:grid}.specimen-row:hover{background:#f9f9f9}.specimen-row:last-child{border-bottom:none}.specimen-num{color:#764ba2;font-family:Courier New,monospace;font-weight:600}.specimen-donor{color:#667eea;font-weight:500}.specimen-date{color:#666;font-size:.95rem}.specimen-reclaim{color:#be185d;background:#fce7f3;border-radius:20px;padding:.25rem .75rem;font-size:.85rem;font-weight:500;display:inline-block}.overview-grid{grid-template-columns:1fr 1fr;gap:1.5rem;margin-bottom:2rem;display:grid}.overview-field{background:#f9f9f9;border-left:4px solid #667eea;border-radius:4px;padding:1rem}.overview-field-label{color:#999;text-transform:uppercase;margin-bottom:.25rem;font-size:.85rem;font-weight:600}.overview-field-value{color:#333;font-size:1.1rem;font-weight:500}.overview-empty{color:#999;font-style:italic}.edit-modes{grid-template-columns:repeat(4,1fr);gap:1rem;margin-top:2rem;display:grid}.edit-mode-btn{text-align:center;cursor:pointer;background:#fff;border:2px solid #e0e0e0;border-radius:8px;padding:1rem;transition:all .3s}.edit-mode-btn:hover{background:#f0f4ff;border-color:#667eea;transform:translateY(-2px)}.edit-mode-btn strong{color:#333;margin-bottom:.5rem;display:block}.danger-zone{background:#fff5f5;border:2px solid #ef4444;border-radius:8px;margin-top:3rem;padding:1.5rem}.danger-zone-title{color:#dc2626;margin:0 0 .5rem;font-size:1.1rem;font-weight:600}.danger-zone-description{color:#666;margin:0 0 1rem;font-size:.95rem}.danger-zone .btn-danger{background:#ef4444}.danger-zone .btn-danger:hover{background:#dc2626;box-shadow:0 4px 12px #ef444466}@media (width<=768px){.main-content{padding:1rem}.form-row,.form-row-3,.donor-row,.overview-grid{grid-template-columns:1fr}.edit-modes{grid-template-columns:1fr 1fr}}.contact-control{align-items:center;gap:.55rem;max-width:100%;display:inline-flex}.contact-current-name{overflow-wrap:anywhere;min-width:0}.contact-unspecified{color:#929b99;font-size:.95rem;font-style:italic;font-weight:400}.contact-icon-button{color:#285c63;cursor:pointer;background:#fff;border:1px solid #cbd7d4;border-radius:4px;flex:0 0 2rem;place-items:center;width:2rem;height:2rem;padding:0;display:inline-grid}.contact-icon-button:hover{background:#f1f6f4;border-color:#285c63}.contact-icon-button svg{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.8px;width:1.1rem;height:1.1rem}.contact-add-icon{color:#536b68}.contact-backdrop{padding:1rem}.contact-dialog{border-radius:6px;width:min(100%,760px);max-width:760px;max-height:min(90vh,900px);padding:1.5rem}.contact-dialog-header{border-bottom:1px solid #d8e0df;justify-content:space-between;align-items:flex-start;gap:1rem;padding-bottom:1rem;display:flex}.contact-dialog-header .modal-title{color:#263d41;margin:0;font-size:1.4rem}.contact-eyebrow{color:#687a78;text-transform:uppercase;margin:0 0 .35rem;font-size:.75rem;font-weight:700}.contact-close{color:#3d5355;cursor:pointer;background:0 0;border:0;flex:0 0 2rem;width:2rem;height:2rem;padding:0;font-size:1.65rem;line-height:1}.contact-details{grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem 2rem;padding:1.25rem 0;display:grid}.contact-detail-group h3,.contact-form-group legend{color:#3c5554;margin:0 0 .65rem;font-size:.9rem;font-weight:700}.contact-detail-group dl{margin:0}.contact-detail-row{border-bottom:1px solid #edf0ef;grid-template-columns:minmax(90px,.8fr) minmax(0,1.2fr);gap:.7rem;padding:.35rem 0;display:grid}.contact-detail-row dt{color:#697674;font-size:.85rem}.contact-detail-row dd{overflow-wrap:anywhere;color:#263d41;min-width:0;margin:0}.contact-dialog-actions{border-top:1px solid #d8e0df;flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:.65rem;padding-top:1rem;display:flex}.contact-dialog-actions>span{flex:auto}.contact-mode-switch{border-bottom:1px solid #ccd7d5;gap:0;margin:1.25rem 0;display:flex}.contact-mode-switch button{color:#586b69;font:inherit;cursor:pointer;background:0 0;border:0;border-bottom:3px solid #0000;padding:.65rem 1rem;font-weight:600}.contact-mode-switch button.active{color:#793923;border-bottom-color:#a44c32}.contact-search-form{margin:1rem 0}.contact-search-form label,.contact-form-field span{color:#3b5050;margin-bottom:.35rem;font-size:.86rem;font-weight:600;display:block}.contact-search-form>div{grid-template-columns:minmax(0,1fr) auto;gap:.6rem;display:grid}.contact-search-form input,.contact-form-field input{color:#243a3d;width:100%;min-width:0;min-height:2.6rem;font:inherit;background:#fff;border:1px solid #cbd5d3;border-radius:4px;padding:.55rem .7rem}.contact-results{border-top:1px solid #e0e7e5;max-height:18rem;display:grid;overflow-y:auto}.contact-result{color:#344d4d;text-align:left;cursor:pointer;background:#fff;border:0;border-bottom:1px solid #e0e7e5;justify-content:space-between;align-items:center;gap:1rem;padding:.8rem .25rem;display:flex}.contact-result:hover{background:#f2f6f4}.contact-result>span:first-child{gap:.2rem;min-width:0;display:grid}.contact-result small{overflow-wrap:anywhere;color:#6c7977}.contact-result>span:last-child{color:#8b482f;flex:none;font-size:.86rem;font-weight:600}.contact-empty,.contact-loading{color:#677573;padding:.8rem 0}.contact-form{gap:1rem;padding-top:1rem;display:grid}.contact-form-group{border:1px solid #dce4e2;border-radius:4px;min-width:0;margin:0;padding:1rem}.contact-form-group legend{padding:0 .35rem}.contact-form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.85rem 1rem;display:grid}.contact-field-address1,.contact-field-address2{grid-column:span 2}.contact-error{margin-top:1rem}@media (width<=600px){.contact-dialog{max-height:94vh;padding:1rem}.contact-details,.contact-form-grid{grid-template-columns:minmax(0,1fr)}.contact-field-address1,.contact-field-address2{grid-column:auto}.contact-dialog-actions>span{display:none}.contact-dialog-actions .btn-danger{margin-right:auto}}
