@import url(https://fonts.googleapis.com/css2?family=Poppins:wght@300;400;500;600;700&display=swap);:root{--primary-color:#3b6064;--secondary-color:#7a9e9f;--warning-color:#e4b363;--accent-color:var(--warning-color);--light-color:#f4f1eb;--dark-color:#29353d;--success-color:#6b9080;--danger-color:#a44a3f;--gray-color:#6c757d;--gray-light-color:#f0ece2;--white-color:#fff;--text-color:#29353d;--text-muted:#6c757d;--bs-primary:var(--primary-color);--bs-primary-rgb:59,96,100;--bs-secondary:var(--secondary-color);--bs-success:var(--success-color);--bs-warning:var(--warning-color);--bs-danger:var(--danger-color);--section-padding:80px;--card-padding:25px;--container-padding:20px;--grid-gap:20px;--shadow-sm:0 2px 8px rgba(0,0,0,.08);--shadow-md:0 4px 20px rgba(0,0,0,.05);--shadow-lg:0 8px 30px rgba(0,0,0,.12);--radius-sm:6px;--radius-md:12px;--radius-lg:25px;--radius-xl:30px;--font-family:"Poppins",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;--font-weight-light:300;--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--line-height:1.7;--letter-spacing:0.2px;--transition-fast:0.2s ease;--transition-normal:0.3s ease;--transition-slow:0.5s ease}*{box-sizing:border-box}body{background-color:var(--light-color);color:var(--text-color);font-family:var(--font-family);font-weight:var(--font-weight-light);letter-spacing:var(--letter-spacing);line-height:var(--line-height);margin:0;padding:0}h1,h2,h3,h4,h5,h6{color:var(--dark-color);font-weight:var(--font-weight-semibold);letter-spacing:.3px;margin-bottom:1rem}h1{font-size:2.5rem;font-weight:var(--font-weight-bold)}h2{font-size:2rem}h3{font-size:1.5rem}h4{font-size:1.25rem}h5{font-size:1.1rem}h6{font-size:1rem;font-weight:var(--font-weight-medium)}p{color:var(--text-color);margin-bottom:1rem}.small,small{color:var(--text-muted);font-size:.875rem}a{color:var(--primary-color);text-decoration:none;transition:var(--transition-normal)}a:hover{color:var(--accent-color)}.container{margin:0 auto;max-width:1200px;padding:0 var(--container-padding)}@media (max-width:576px){.d-flex.flex-wrap.gap-2{row-gap:.5rem}.d-flex.flex-wrap.gap-2 .btn{flex:1 1 auto;min-width:150px}}.section{padding:var(--section-padding) 0}.navbar{background-color:var(--white-color);border-bottom:1px solid rgba(0,0,0,.05);box-shadow:var(--shadow-sm);padding:1rem 0}.navbar-brand{color:var(--primary-color);font-size:1.5rem;font-weight:var(--font-weight-bold);letter-spacing:.5px;text-decoration:none}.navbar-nav .nav-link{align-items:center;border-radius:var(--radius-sm);color:var(--text-color);display:flex;font-weight:var(--font-weight-normal);margin:0 .25rem;padding:.5rem 1rem;position:relative;transition:var(--transition-normal)}.navbar-nav .nav-link i{font-size:1rem;margin-right:.5rem}.navbar-nav .nav-link:hover{background-color:rgba(59,96,100,.05);color:var(--primary-color)}.navbar-nav .nav-link:after{background-color:var(--accent-color);bottom:-2px;content:"";height:2px;left:50%;position:absolute;transform:translateX(-50%);transition:var(--transition-normal);width:0}.navbar-nav .nav-link:hover:after{width:80%}.nav-link.dropdown-toggle{position:relative}.navbar-nav .nav-link.dropdown-toggle:after,.navbar-nav .nav-link.dropdown-toggle:before{border:none;content:none;display:none;margin-left:0;vertical-align:initial}.navbar-nav .nav-link.dropdown-toggle{align-items:center;border-radius:var(--radius-sm);color:var(--text-color);display:flex;font-weight:var(--font-weight-normal);margin:0 .25rem;padding:.5rem 1rem;position:relative;transition:var(--transition-normal)}.navbar-nav .nav-link.dropdown-toggle:hover{background-color:rgba(59,96,100,.05);color:var(--primary-color)}.navbar-nav .nav-link.dropdown-toggle:after{background-color:var(--accent-color);border:none;bottom:-2px;content:"";display:block;height:2px;left:50%;margin-left:0;position:absolute;transform:translateX(-50%);transition:var(--transition-normal);vertical-align:initial;width:0}.navbar-nav .nav-link.dropdown-toggle:hover:after{width:80%}.navbar-nav .nav-link.dropdown-toggle:focus{background-color:rgba(59,96,100,.05);color:var(--primary-color);outline:none}.navbar-nav .nav-link.dropdown-toggle:active{background-color:rgba(59,96,100,.08);color:var(--primary-color)}.navbar-toggler{border:2px solid var(--primary-color);border-radius:var(--radius-sm);padding:.25rem .5rem}.navbar-toggler:focus{box-shadow:0 0 0 .2rem rgba(59,96,100,.25)}.navbar-toggler-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3E%3Cpath stroke='%233b6064' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E")}.dropdown-menu{border:none;border-radius:var(--radius-sm);box-shadow:var(--shadow-md);margin-top:.5rem;padding:.5rem 0}.dropdown-menu-wide{max-width:90vw;width:420px}.dropdown-item{align-items:center;color:var(--text-color);display:flex;font-weight:var(--font-weight-normal);padding:.5rem 1rem;transition:var(--transition-normal)}.dropdown-item i{font-size:1rem;margin-right:.75rem;text-align:center;width:1rem}.dropdown-item:hover{background-color:var(--gray-light-color);color:var(--primary-color)}.btn{border:2px solid transparent;border-radius:var(--radius-xl);cursor:pointer;display:inline-block;font-family:var(--font-family);font-weight:var(--font-weight-medium);letter-spacing:.3px;padding:.75rem 1.5rem;text-decoration:none;transition:var(--transition-normal)}.btn-primary{background-color:var(--primary-color);border-color:var(--primary-color);box-shadow:0 2px 8px rgba(59,96,100,.3);color:var(--white-color)}.btn-primary:hover{background-color:var(--dark-color);border-color:var(--dark-color);box-shadow:0 4px 12px rgba(59,96,100,.4);color:var(--white-color);transform:translateY(-1px)}.btn-secondary{background-color:var(--secondary-color);border-color:var(--secondary-color);color:var(--white-color)}.btn-secondary:hover{background-color:var(--primary-color);border-color:var(--primary-color);color:var(--white-color);transform:translateY(-1px)}.btn-outline-primary{background-color:transparent;border:2px solid var(--primary-color);color:var(--primary-color)}.btn-outline-primary:hover{background-color:var(--primary-color);border-color:var(--primary-color);box-shadow:0 4px 12px rgba(59,96,100,.3);color:var(--white-color);transform:translateY(-1px)}.btn-outline-secondary{background-color:transparent;border:2px solid var(--secondary-color);color:var(--secondary-color)}.btn-outline-secondary:hover{background-color:var(--secondary-color);border-color:var(--secondary-color);box-shadow:0 4px 12px rgba(122,158,159,.3);color:var(--white-color);transform:translateY(-1px)}.btn-outline-success{background-color:transparent;border:2px solid var(--success-color);color:var(--success-color)}.btn-outline-success:hover{background-color:var(--success-color);border-color:var(--success-color);box-shadow:0 4px 12px rgba(107,144,128,.3);color:var(--white-color);transform:translateY(-1px)}.btn-outline-warning{background-color:transparent;border:2px solid var(--warning-color);color:var(--warning-color)}.btn-outline-warning:hover{background-color:var(--warning-color);border-color:var(--warning-color);box-shadow:0 4px 12px rgba(228,179,99,.3);color:var(--white-color);transform:translateY(-1px)}.btn-outline-danger{background-color:transparent;border:2px solid var(--danger-color);color:var(--danger-color)}.btn-outline-danger:hover{background-color:var(--danger-color);border-color:var(--danger-color);box-shadow:0 4px 12px rgba(164,74,63,.3);color:var(--white-color);transform:translateY(-1px)}.btn-outline-info{background-color:transparent;border:2px solid var(--secondary-color);color:var(--secondary-color)}.btn-outline-info:hover{background-color:var(--secondary-color);border-color:var(--secondary-color);box-shadow:0 4px 12px rgba(122,158,159,.3);color:var(--white-color);transform:translateY(-1px)}.btn-sm{font-size:.875rem;padding:.5rem 1rem}.btn-lg{font-size:1.1rem;padding:1rem 2rem}.btn i{margin-right:.5rem}.btn-group{border-radius:var(--radius-xl);box-shadow:var(--shadow-sm);overflow:hidden}.btn-group .btn{border-radius:0;border-right-width:1px;position:relative}.btn-group .btn:first-child{border-bottom-left-radius:var(--radius-xl);border-top-left-radius:var(--radius-xl)}.btn-group .btn:last-child{border-bottom-right-radius:var(--radius-xl);border-right-width:2px;border-top-right-radius:var(--radius-xl)}.btn-group .btn:not(:last-child){border-right-color:hsla(0,0%,100%,.5)}.btn-group .btn:hover{transform:translateY(-1px);z-index:2}.card .btn-group{display:flex}.card .btn-group.w-100{width:100%}.card .btn-group .btn{align-items:center;display:flex;font-size:1rem;justify-content:center;min-width:0;padding:.625rem .5rem;text-align:center;white-space:nowrap}.card .btn-group.w-100 .btn{flex:1}.card .btn-group .btn i{font-size:1rem;line-height:1;margin-right:0}.card .btn-group .btn:hover i{transform:scale(1.1);transition:var(--transition-fast)}.family-nav,.network-controls,.timeline-actions,.timeline-nav{border-radius:var(--radius-xl);box-shadow:var(--shadow-sm);overflow:hidden}.family-nav .btn,.network-controls .btn,.timeline-actions .btn,.timeline-nav .btn{align-items:center;display:flex;font-size:1rem;justify-content:center;min-width:auto;padding:.625rem 1rem}.family-nav .btn i,.network-controls .btn i,.timeline-actions .btn i,.timeline-nav .btn i{font-size:1.1rem;margin-right:0}.card{background-color:var(--white-color);border:1px solid rgba(0,0,0,.02);border-radius:var(--radius-sm);box-shadow:var(--shadow-md);margin-bottom:2rem;transition:var(--transition-normal)}.card:hover{box-shadow:var(--shadow-lg)}.card-header{background-color:var(--white-color);border-bottom:1px solid var(--gray-light-color);border-radius:var(--radius-sm) var(--radius-sm) 0 0;padding:1.5rem var(--card-padding) 1rem}.card-body{padding:var(--card-padding)}.card-footer{background-color:var(--gray-light-color);border-top:1px solid rgba(0,0,0,.05);padding:1rem var(--card-padding)}.profile-card{border-left:4px solid var(--accent-color)}.profile-inactive{border-left-color:var(--danger-color)!important;filter:grayscale(50%);opacity:.7;position:relative}.profile-inactive:after{background:hsla(0,0%,100%,.2);border-radius:inherit;bottom:0;content:"";left:0;pointer-events:none;position:absolute;right:0;top:0}.profile-deactivation-info{background-color:#f8d7da;border:1px solid #f5c6cb;border-radius:var(--radius-md);padding:1.5rem}.profile-deactivation-info .alert-heading{color:var(--danger-color);margin-bottom:.5rem}.z-index-1{z-index:1}.meeting-card{border-left:4px solid var(--primary-color)}.photo-card{border-left:4px solid var(--secondary-color)}.admin-card{border-left:4px solid var(--warning-color)}.form-control{background-color:var(--light-color);border:2px solid transparent;border-radius:var(--radius-lg);color:var(--text-color);font-family:var(--font-family);font-weight:var(--font-weight-normal);padding:.75rem 1.25rem;transition:var(--transition-normal)}.form-control:focus{background-color:var(--white-color);border-color:var(--accent-color);box-shadow:0 0 0 .2rem rgba(228,179,99,.25);outline:none}.form-select{border:2px solid transparent;border-radius:var(--radius-lg);font-family:var(--font-family);padding:.75rem 1.75rem .75rem 1.25rem}.form-label{color:var(--dark-color);font-weight:var(--font-weight-medium);margin-bottom:.5rem}.form-photo-preview{border:2px solid var(--gray-light-color);border-radius:var(--radius-sm);max-height:300px;max-width:300px;object-fit:cover}.form-section{margin-bottom:1.5rem;padding:1.25rem 0}.form-section:not(:last-child){border-bottom:1px solid var(--gray-light-color)}.form-section fieldset{border:none;margin:0;padding:0}.form-section legend{border-bottom:2px solid var(--accent-color);color:var(--dark-color);display:inline-block;font-size:1.1rem;font-weight:var(--font-weight-semibold);margin-bottom:1rem;padding-bottom:.5rem}.form-inline-delete{display:inline}.modal-content{border:none;border-radius:var(--radius-md);box-shadow:var(--shadow-lg)}.modal-header{border-bottom:1px solid rgba(0,0,0,.1);border-radius:var(--radius-md) var(--radius-md) 0 0}.modal-footer,.modal-header{background-color:var(--gray-light-color)}.modal-footer{border-radius:0 0 var(--radius-md) var(--radius-md);border-top:1px solid rgba(0,0,0,.1)}.badge{border:2px solid transparent;border-radius:20px;font-size:.875rem;font-weight:var(--font-weight-semibold);letter-spacing:.5px;padding:.5rem .75rem;text-transform:uppercase}.badge.bg-primary{background-color:var(--primary-color);border-color:var(--primary-color);color:var(--white-color)}.badge.bg-secondary{background-color:var(--gray-color);border-color:var(--gray-color);color:var(--white-color)}.badge.bg-success{background-color:var(--success-color);border-color:var(--success-color);color:var(--white-color)}.badge.bg-warning{background-color:var(--warning-color);border-color:var(--warning-color);color:var(--dark-color);font-weight:var(--font-weight-bold)}.badge.bg-danger{background-color:var(--danger-color);border-color:var(--danger-color);color:var(--white-color)}.alert{border:none;border-left:4px solid;border-radius:var(--radius-sm);font-weight:var(--font-weight-normal);margin-bottom:1.5rem;padding:1rem 1.5rem}.alert-success{background-color:rgba(107,144,128,.1);border-left-color:var(--success-color);color:var(--success-color)}.alert-info{background-color:rgba(122,158,159,.1);border-left-color:var(--secondary-color);color:var(--secondary-color)}.alert-warning{background-color:rgba(228,179,99,.1);border-left-color:var(--warning-color);color:var(--warning-color)}.alert-danger{background-color:rgba(164,74,63,.1);border-left-color:var(--danger-color);color:var(--danger-color)}.table{color:var(--text-color);font-family:var(--font-family)}.table thead th{background-color:var(--gray-light-color);border-bottom:2px solid var(--primary-color);color:var(--dark-color);font-weight:var(--font-weight-semibold);padding:1rem .75rem}.table tbody tr:hover{background-color:rgba(122,158,159,.05)}.tooltip{font-family:var(--font-family);font-size:.875rem}.tooltip .tooltip-inner{background-color:var(--dark-color);border-radius:var(--radius-sm);color:var(--white-color);padding:.5rem .75rem}.text-primary{color:var(--primary-color)}.text-secondary{color:var(--secondary-color)}.text-success{color:var(--success-color)}.text-warning{color:var(--warning-color)}.text-danger{color:var(--danger-color)}.text-muted{color:var(--text-muted)}.text-dark{color:var(--dark-color)}.bg-primary{background-color:var(--primary-color)}.bg-secondary{background-color:var(--secondary-color)}.bg-success{background-color:var(--success-color)}.bg-warning{background-color:var(--warning-color)}.bg-danger{background-color:var(--danger-color)}.bg-light{background-color:var(--light-color)}.bg-dark{background-color:var(--dark-color)}.feature-icon{display:block;font-size:3rem;margin-bottom:1rem}.feature-icon.primary{color:var(--primary-color)}.feature-icon.accent{color:var(--accent-color)}.feature-icon.secondary{color:var(--secondary-color)}.profile-photo{object-fit:cover}.profile-photo,.profile-photo-placeholder{height:200px;width:200px}.profile-photo-icon{font-size:6rem}.person-icon{font-size:1.5rem;margin-right:.5rem}.timeline-photo{height:50px;object-fit:cover;width:50px}.meeting-photo-grid{height:150px;object-fit:cover}.photo-main,.photo-thumbnail{border-radius:var(--radius-sm)}.photo-main{max-height:70vh;object-fit:contain}.map-container{height:500px;overflow:hidden}.map-container,.map-timeline{border-radius:var(--radius-sm);width:100%}.map-timeline{height:400px}.family-tree-container{border:1px solid var(--gray-light-color);border-radius:var(--radius-sm);height:700px;width:100%}.legend-marker{border-radius:2px;display:inline-block;height:12px;margin-right:.5rem;width:20px}.legend-marker.male{background:#2196f3}.legend-marker.female{background:#e91e63}.legend-marker.deceased{background:#9e9e9e}.legend-marker.spouse{background:#f44336;height:5px}.legend-marker.friend{background:#9e9e9e;height:2px}.legend-marker.parent-child{background:#4caf50;height:4px;position:relative}.legend-marker.parent-child:after{border-bottom:2px solid transparent;border-left:4px solid #4caf50;border-top:2px solid transparent;content:"";height:0;position:absolute;right:-3px;top:-1px;width:0}.legend-marker.sibling{background:#2196f3;height:3px;position:relative}.legend-marker.sibling:after{border-bottom:2px solid transparent;border-left:4px solid #2196f3;border-top:2px solid transparent;content:"";height:0;position:absolute;right:-3px;top:-1px;width:0}.legend-marker.half-sibling{background:#00bcd4;height:3px;position:relative}.legend-marker.half-sibling:after{border-bottom:2px solid transparent;border-left:4px solid #00bcd4;border-top:2px solid transparent;content:"";height:0;position:absolute;right:-3px;top:-1px;width:0}.stat-card{background:linear-gradient(135deg,var(--primary-color),var(--secondary-color));border-radius:var(--radius-md);color:var(--white-color);margin-bottom:1.5rem;padding:2rem 1rem;text-align:center}.stat-number{display:block;font-size:2.5rem;font-weight:var(--font-weight-bold);margin-bottom:.5rem}.stat-label{font-size:.9rem;letter-spacing:.5px;opacity:.9;text-transform:uppercase}.quick-action{background-color:var(--white-color);border:2px solid var(--gray-light-color);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);color:var(--text-color);display:block;padding:1.5rem;text-align:center;text-decoration:none;transition:var(--transition-normal)}.quick-action:hover{border-color:var(--accent-color);box-shadow:var(--shadow-lg);color:var(--primary-color);text-decoration:none;transform:translateY(-3px)}.quick-action i{color:var(--primary-color);display:block;font-size:2.5rem;margin-bottom:1rem;margin-right:0}.quick-action h6{color:var(--text-color);font-size:.9rem;font-weight:var(--font-weight-semibold);margin:0}.timeline{padding:0;position:relative}.timeline-year{margin:3rem 0 2rem;position:relative}.year-marker{background:var(--light-color);border:2px solid var(--primary-color);border-radius:25px;color:var(--primary-color);display:inline-block;font-weight:var(--font-weight-bold);padding:.5rem 1rem;position:sticky;top:20px;z-index:10}.year-line{background:var(--gray-light-color);height:calc(100% + 2rem);left:50px;position:absolute;top:25px;width:2px;z-index:1}.timeline-meetings{margin-left:3rem;position:relative}.timeline-item{margin-bottom:2rem;padding-left:3rem;position:relative}.timeline-marker{left:-1.5rem;position:absolute;top:1rem;z-index:2}.marker-dot{align-items:center;border:3px solid var(--white-color);border-radius:50%;box-shadow:var(--shadow-sm);color:var(--white-color);display:flex;font-size:1.2rem;height:3rem;justify-content:center;width:3rem}.marker-dot.past{background-color:var(--primary-color)}.marker-dot.upcoming{background-color:var(--success-color)}.marker-dot.active{background-color:var(--warning-color)}.timeline-content{position:relative}.timeline-content:before{background:var(--gray-light-color);content:"";height:2px;left:-2rem;position:absolute;top:2rem;width:1rem}.email-container{font-family:var(--font-family);margin:0 auto;max-width:600px}.email-header{background-color:var(--primary-color);color:var(--white-color);padding:2rem;text-align:center}footer{background-color:var(--white-color);border-top:1px solid var(--gray-light-color);margin-top:4rem;padding:2rem 0}footer p,footer small{color:var(--text-muted);margin-bottom:0}footer strong{color:var(--primary-color);font-weight:var(--font-weight-semibold)}footer a[href*=paypal]{transition:var(--transition-normal)}footer a[href*=paypal]:hover{color:var(--accent-color)}footer a[href*=paypal] .bi-heart-fill{font-size:.875rem;transition:var(--transition-normal)}footer a[href*=paypal]:hover .bi-heart-fill{transform:scale(1.2)}@media (max-width:768px){:root{--section-padding:40px;--card-padding:20px;--container-padding:15px}h1{font-size:2rem}h2{font-size:1.75rem}h3{font-size:1.4rem}.navbar-nav .nav-link{margin:0;padding:.75rem 1rem}.btn{margin-bottom:.5rem;padding:.625rem 1.25rem;width:100%}.btn-sm{display:inline-block;width:auto}.profile-photo,.profile-photo-placeholder{height:150px;width:150px}.profile-photo-icon{font-size:4rem}.feature-icon{font-size:2rem}.family-tree-container,.map-container{height:400px}.timeline-meetings{margin-left:1rem}.timeline-item{padding-left:2rem}.timeline-marker{left:-1rem}.marker-dot{font-size:1rem;height:2rem;width:2rem}.timeline-content:before{left:-1.5rem}}.fade-in{animation:fadeIn var(--transition-slow) ease-in-out forwards;opacity:0}@keyframes fadeIn{to{opacity:1}}.spinner{animation:spin 1s linear infinite;border-top:4px solid var(--gray-light-color);border:4px solid var(--gray-light-color);border-radius:50%;border-top-color:var(--primary-color);height:40px;width:40px}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.page-header{align-items:flex-start;display:flex;flex-wrap:wrap;gap:1rem;justify-content:space-between;margin-bottom:2rem}.page-header .page-title{flex:1;min-width:200px}.page-header .page-actions{align-items:center;display:flex;flex-wrap:wrap;gap:.75rem}.page-header .btn-primary{font-size:1rem;font-weight:var(--font-weight-medium);padding:.75rem 1.5rem;white-space:nowrap}.page-header .btn-outline-secondary,.page-header .btn-secondary{font-size:.9rem;font-weight:var(--font-weight-normal);padding:.625rem 1.25rem;white-space:nowrap}.pagination{display:flex;gap:.25rem;list-style:none;margin-bottom:0;margin-top:2rem;padding-left:0}.page-item{margin:0}.page-link{background-color:var(--white-color);border:2px solid var(--gray-light-color);border-radius:var(--radius-xl);color:var(--primary-color);display:block;font-weight:var(--font-weight-medium);min-width:2.5rem;padding:.5rem .75rem;position:relative;text-align:center;text-decoration:none;transition:var(--transition-normal)}.page-link:hover{transform:translateY(-1px)}.page-item.active .page-link,.page-link:hover{background-color:var(--primary-color);border-color:var(--primary-color);box-shadow:0 2px 8px rgba(59,96,100,.2);color:var(--white-color)}.page-item.disabled .page-link{background-color:var(--gray-light-color);border-color:var(--gray-light-color);color:var(--text-muted);cursor:not-allowed;opacity:.6}.page-item.disabled .page-link:hover{box-shadow:none;transform:none}.page-link i{font-size:.875rem;vertical-align:middle}@media (max-width:576px){.pagination{font-size:.875rem}.page-link{min-width:2rem;padding:.375rem .5rem}}.page-actions .btn{align-items:center;border-radius:var(--radius-xl);display:inline-flex;font-size:.9375rem;font-weight:var(--font-weight-medium);gap:.5rem;padding:.625rem 1.25rem;text-decoration:none;transition:var(--transition-normal);white-space:nowrap}.page-actions .btn i{font-size:1.1rem;margin-right:0}.page-actions .btn-primary{background-color:var(--primary-color);border-color:var(--primary-color);box-shadow:0 2px 8px rgba(59,96,100,.2);color:var(--white-color)}.page-actions .btn-primary:hover{background-color:var(--dark-color);border-color:var(--dark-color);box-shadow:0 4px 12px rgba(59,96,100,.3);transform:translateY(-1px)}.page-actions .btn-outline-primary,.page-actions .btn-outline-secondary{background-color:var(--white-color);border-width:2px}.page-actions .btn-outline-primary{border-color:var(--primary-color);color:var(--primary-color)}.page-actions .btn-outline-primary:hover{background-color:var(--primary-color);border-color:var(--primary-color);box-shadow:0 4px 12px rgba(59,96,100,.2);color:var(--white-color);transform:translateY(-1px)}.page-actions .btn-outline-secondary{border-color:var(--secondary-color);color:var(--secondary-color)}.page-actions .btn-outline-secondary:hover{background-color:var(--secondary-color);border-color:var(--secondary-color);box-shadow:0 4px 12px rgba(122,158,159,.2);color:var(--white-color);transform:translateY(-1px)}.page-actions .btn-icon-only{min-width:2.75rem;padding:.625rem}.page-actions .btn-icon-only i{margin:0}.page-actions form.d-inline{align-items:center;display:inline-flex}@media (max-width:576px){.page-actions{width:100%}.page-actions .btn{flex:1;font-size:.875rem;justify-content:center;min-width:0;padding:.5rem 1rem}.page-actions .btn span.mobile-hide{display:none}.page-actions .btn i{margin-right:0}}.card-actions{align-items:center;display:flex;gap:.5rem;justify-content:flex-start;margin-top:1rem}.card-actions .btn{border-radius:var(--radius-lg);flex-shrink:0;font-size:.875rem;font-weight:var(--font-weight-normal);padding:.5rem 1rem}.card-actions .btn-primary{background-color:var(--primary-color);border-color:var(--primary-color)}.card-actions .btn-outline-primary{border-color:var(--primary-color);color:var(--primary-color)}.quick-access-grid{display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));margin:2rem 0}.quick-access-btn{align-items:center;background-color:var(--white-color);border:2px solid var(--gray-light-color);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);color:var(--text-color);display:flex;justify-content:flex-start;min-height:60px;padding:1rem 1.25rem;text-decoration:none;transition:var(--transition-normal)}.quick-access-btn:hover{background-color:rgba(59,96,100,.02);border-color:var(--primary-color);box-shadow:var(--shadow-md);color:var(--primary-color);text-decoration:none;transform:translateY(-2px)}.quick-access-btn i{color:var(--primary-color);flex-shrink:0;font-size:1.5rem;margin-right:.75rem;text-align:center;width:1.5rem}.quick-access-btn h6{font-size:.9rem;font-weight:var(--font-weight-medium);line-height:1.3;margin:0}.toolbar{flex-wrap:wrap;gap:.5rem;margin-bottom:1.5rem}.toolbar,.toolbar .btn{align-items:center;display:flex}.toolbar .btn{font-size:.875rem;gap:.375rem;padding:.5rem 1rem;white-space:nowrap}.toolbar .btn i{font-size:1rem;margin-right:0}.toolbar .btn-icon{justify-content:center;min-width:2.5rem;padding:.5rem}.toolbar .btn-icon i{font-size:1.1rem;margin-right:0}.sidebar-controls{background-color:var(--white-color);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);margin-bottom:1.5rem;padding:1.5rem}.sidebar-controls .btn{align-items:center;display:flex;font-size:.875rem;justify-content:flex-start;margin-bottom:.5rem;padding:.625rem 1rem;text-align:left;width:100%}.sidebar-controls .btn i{font-size:1rem;margin-right:.5rem;text-align:center;width:1rem}.sidebar-controls .btn:last-child{margin-bottom:0}.btn-group-standardized{border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);display:inline-flex;overflow:hidden}.btn-group-standardized .btn{border-radius:0;border-right:1px solid hsla(0,0%,100%,.3);font-size:.875rem;font-weight:var(--font-weight-normal);padding:.625rem 1rem;position:relative}.btn-group-standardized .btn:first-child{border-bottom-left-radius:var(--radius-lg);border-top-left-radius:var(--radius-lg)}.btn-group-standardized .btn:last-child{border-bottom-right-radius:var(--radius-lg);border-right:none;border-top-right-radius:var(--radius-lg)}.btn-group-standardized .btn:hover{transform:none;z-index:2}.notification-dropdown{max-height:400px;overflow-y:auto}.notification-dropdown .list-unstyled{margin:0;padding:0}.notification-badge{display:none}.notification-item{border-left:3px solid transparent;padding:.75rem 1rem;transition:all .2s ease;white-space:normal}.notification-item:hover{background-color:#f8f9fa;border-left-color:var(--primary-color)}.notification-item a{color:inherit}.notification-item .d-flex{align-items:flex-start}.notification-icon{flex-shrink:0;text-align:center;width:24px}.notification-item .flex-grow-1{min-width:0;word-wrap:break-word;overflow-wrap:break-word}.notification-item .small{line-height:1.3;margin-bottom:.25rem}.x-small{font-size:.75rem}.dashboard-stats .stat-card{border-radius:var(--radius-md);overflow:hidden}.meetings-header .btn{font-size:1rem;padding:.75rem 1.5rem}.photo-actions .btn{font-size:.9rem;padding:.625rem 1.25rem}.profile-card .card-footer .btn{align-items:center;display:inline-flex;font-size:.875rem;padding:.5rem 1rem;width:auto}.map-controls .btn-group{border-radius:var(--radius-lg)}.map-sidebar .btn{margin-bottom:.5rem;padding:.625rem 1rem;text-align:left;width:100%}.network-toolbar{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1rem}.network-toolbar .btn{border-radius:var(--radius-lg);font-size:.875rem;padding:.5rem 1rem}.network-toolbar .btn i{font-size:1rem;margin-right:.375rem}.admin-quickaccess .btn{border-radius:var(--radius-md);margin-bottom:.75rem;padding:1rem 1.25rem;text-align:left;width:100%}.btn i.bi,.btn i.fa,.btn i[class*=bi-],.btn i[class*=fa-]{font-size:1rem;line-height:1;vertical-align:middle}.btn i+span,.btn i+text,.btn span+i{margin-left:.375rem}.btn-icon-only{align-items:center;display:inline-flex;justify-content:center;min-width:2.5rem;padding:.625rem}.btn-icon-only i{font-size:1.1rem;margin-right:0}@media (max-width:768px){.page-header{align-items:stretch;flex-direction:column}.page-header .page-actions{justify-content:stretch;width:100%}.page-header .btn{flex:1;min-width:0;text-align:center}.quick-access-grid{grid-template-columns:1fr}.toolbar{align-items:stretch;flex-direction:column}.toolbar .btn{justify-content:center;width:100%}.btn-group-standardized{flex-direction:column;width:100%}.btn-group-standardized .btn{border-bottom:1px solid hsla(0,0%,100%,.3);border-radius:0;border-right:none}.btn-group-standardized .btn:first-child{border-radius:var(--radius-lg) var(--radius-lg) 0 0}.btn-group-standardized .btn:last-child{border-bottom:none;border-radius:0 0 var(--radius-lg) var(--radius-lg)}}a.btn-link{background:none;border:none;border-radius:0;color:var(--primary-color);font-weight:var(--font-weight-normal);padding:.5rem 0;text-decoration:none;transition:var(--transition-normal)}a.btn-link:hover{box-shadow:none;color:var(--accent-color);text-decoration:underline;transform:none}a.btn-link i{font-size:.9rem;margin-right:.375rem}.card-title a:hover{color:var(--primary-color);text-decoration:none}.card:hover{box-shadow:0 4px 12px rgba(0,0,0,.1);transform:translateY(-2px);transition:all .3s ease}.badge{font-size:.7em}.card-footer{border-top:1px solid rgba(0,0,0,.125)}@media (max-width:768px){.btn-group-sm .btn{font-size:.75rem;padding:.25rem .5rem}}.photo-card{aspect-ratio:1;border-radius:var(--radius-sm);position:relative;transition:var(--transition-fast);@supports not (aspect-ratio:1){height:0;padding-bottom:100%}}.photo-card:hover{box-shadow:var(--shadow-md)}.photo-thumbnail{-webkit-backface-visibility:hidden;backface-visibility:hidden;border-radius:.1px;contain-intrinsic-size:200px 200px;cursor:pointer;display:block;height:200px;image-rendering:-webkit-optimize-contrast;object-fit:cover;transform:translateZ(0);transition:transform var(--transition-fast);width:100%;will-change:transform}.photo-card:hover .photo-thumbnail{transform:scale(1.05)}.photo-actions{transition:opacity var(--transition-fast)}.btn-photo-action{background-color:rgba(0,0,0,.6);border:1px solid hsla(0,0%,100%,.3);border-radius:var(--radius-sm);transition:var(--transition-fast)}.btn-photo-action:hover{background-color:rgba(0,0,0,.8)}.photo-info{background:linear-gradient(0deg,rgba(0,0,0,.8),transparent);bottom:0;color:#fff;display:flex;flex-direction:column;left:0;padding:1rem .75rem .5rem;position:absolute;right:0}.photo-title{display:block;font-weight:var(--font-weight-medium);margin-bottom:.125rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.photo-date{font-size:.75rem;opacity:.8}#photoModal .modal-body{background-color:#000}#photoModal .modal-body img{max-height:80vh;object-fit:contain}@media (max-width:576px){.photo-thumbnail{contain-intrinsic-size:150px 150px;height:150px}.photo-actions{opacity:1}}@media (min-width:768px){.photo-thumbnail{contain-intrinsic-size:180px 180px;height:180px}}@media (min-width:992px){.photo-thumbnail{contain-intrinsic-size:200px 200px;height:200px}}@media (min-width:1400px){.col-lg-2{flex:0 0 auto;width:16.666667%}}.btn-cta-primary,.login-form .btn-primary,.registration-form .btn-primary,form button[type=submit].btn-primary{background-color:var(--primary-color);border-color:var(--primary-color);box-shadow:0 3px 10px rgba(59,96,100,.3);color:var(--white-color);font-size:1.1rem;font-weight:var(--font-weight-semibold);min-width:150px;padding:.875rem 2rem}.btn-cta-primary:hover,form button[type=submit].btn-primary:hover{background-color:var(--dark-color);border-color:var(--dark-color);box-shadow:0 5px 15px rgba(59,96,100,.4);transform:translateY(-2px)}a[href*="/create"].btn:not(.btn-outline-primary):not(.btn-outline-secondary):not(.btn-outline-warning),a[href*="/new"].btn:not(.btn-outline-primary):not(.btn-outline-secondary):not(.btn-outline-warning){background-color:var(--success-color);border-color:var(--success-color);box-shadow:0 2px 8px rgba(107,144,128,.3);color:var(--white-color);font-size:1rem;font-weight:var(--font-weight-medium);padding:.75rem 1.5rem}.btn-export,.btn-search{background-color:transparent;border:2px solid var(--secondary-color);color:var(--secondary-color);font-size:.875rem;font-weight:var(--font-weight-normal);padding:.625rem 1.25rem}.btn-export:hover,.btn-search:hover{background-color:var(--secondary-color);border-color:var(--secondary-color);color:var(--white-color)}.admin-section .btn{align-items:center;background-color:var(--white-color);border:2px solid var(--warning-color);border-radius:var(--radius-xl);color:var(--warning-color);display:flex;font-size:.9rem;font-weight:var(--font-weight-medium);gap:.5rem;padding:.75rem 1.5rem}.admin-section .btn:hover{background-color:var(--warning-color);border-color:var(--warning-color);box-shadow:0 4px 12px rgba(228,179,99,.3);color:var(--white-color);transform:translateY(-1px)}.quick-action-card{align-items:center;background-color:var(--white-color);border:2px solid var(--gray-light-color);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);color:var(--text-color);display:block;display:flex;flex-direction:column;justify-content:center;min-height:140px;padding:1.5rem;text-align:center;text-decoration:none;transition:var(--transition-normal)}.quick-action-card:hover{border-color:var(--accent-color);box-shadow:var(--shadow-lg);color:var(--primary-color);text-decoration:none;transform:translateY(-3px)}.quick-action-card i{color:var(--primary-color);display:block;font-size:2.5rem;margin-bottom:1rem}.quick-action-card h6{color:inherit;font-size:.95rem;font-weight:var(--font-weight-semibold);margin:0}.form-actions{border-top:1px solid var(--gray-light-color);display:flex;gap:.75rem;margin-top:2rem;padding-top:1.5rem}.btn-back,.btn-cancel,.form-actions .btn-outline-secondary{background-color:transparent;border:2px solid var(--secondary-color);color:var(--secondary-color);font-size:1rem;font-weight:var(--font-weight-medium);padding:.75rem 1.5rem}.btn-back:hover,.btn-cancel:hover,.form-actions .btn-outline-secondary:hover{background-color:var(--secondary-color);border-color:var(--secondary-color);color:var(--white-color)}.d-grid .btn,.form-actions .btn{align-items:center;display:flex;gap:.5rem;justify-content:center}.d-grid .btn,.form-actions .btn,.form-actions .btn-primary.btn-cta-primary{font-size:1rem;font-weight:var(--font-weight-medium);padding:.75rem 1.5rem}.form-actions .btn-primary{flex:0 0 auto;min-width:120px}.form-actions .btn-outline-secondary,.form-actions .btn-secondary{flex:0 0 auto;min-width:100px}.list-actions{display:flex;flex-wrap:wrap;gap:.5rem;justify-content:flex-end}.list-actions .btn{font-size:.875rem;padding:.5rem 1rem}@media (max-width:768px){.form-actions{flex-direction:column-reverse}.form-actions .btn{justify-content:center;width:100%}.list-actions{justify-content:stretch}.list-actions .btn{flex:1;min-width:0}.btn-cta-primary{text-align:center;width:100%}}.btn-group-sm .btn-icon{min-width:auto;padding:.375rem .5rem}.profile-card{position:relative}.profile-card .main-profile-indicator{background:#28a745;border-radius:50%;box-shadow:0 2px 4px rgba(0,0,0,.2);height:8px;position:absolute;right:10px;top:10px;width:8px;z-index:10}.profile-image{display:block;height:150px;margin:0 auto;object-fit:cover;width:150px}.profile-image-container{background-position:50%;background-repeat:no-repeat;background-size:cover;height:150px}.profile-placeholder-container{align-items:center;background-color:var(--light-color);display:flex;height:150px;justify-content:center}.profile-placeholder-icon{font-size:3rem}#familyTree{position:relative;z-index:1}.dropdown-menu{z-index:1050!important}.admin-table-wrapper{border-radius:var(--radius-md);box-shadow:var(--shadow-sm);overflow-x:auto}.table-admin{margin-bottom:0}.table-admin thead th{background-color:#f8f9fa;border-bottom:2px solid #dee2e6;color:#6c757d;font-size:.75rem;font-weight:600;letter-spacing:.05em;padding:1rem;text-transform:uppercase;white-space:nowrap}.table-admin tbody td{padding:.875rem 1rem;vertical-align:middle}.table-admin .user-info{min-width:200px}.table-admin .user-info strong{color:var(--dark-color);font-weight:500}.table-admin .user-info small{align-items:center;display:flex;font-size:.875rem;gap:.25rem;margin-top:.125rem}.table-admin .badge{align-items:center;display:inline-flex;font-weight:500;gap:.25rem;padding:.375rem .75rem}.table-admin .btn-group{gap:.25rem}.table-admin .btn-group .btn{font-size:.875rem;padding:.25rem .5rem}@media (max-width:768px){.table-admin{font-size:.875rem}.table-admin thead{display:none}.table-admin tbody tr{border:1px solid #dee2e6;border-radius:var(--radius-sm);display:block;margin-bottom:1rem;padding:.75rem}.table-admin tbody td{border:none;display:block;padding:.5rem 0;text-align:left}.table-admin tbody td:before{color:#6c757d;content:attr(data-label);display:inline-block;font-weight:600;margin-right:.5rem;width:100px}.table-admin .btn-group{display:flex;flex-wrap:wrap;gap:.25rem;margin-top:.5rem}.table-admin .btn-group .btn{flex:1;min-width:0}}.table-admin tbody tr.table-danger{background-color:rgba(164,74,63,.1)}.table-admin tbody tr.table-danger:hover{background-color:rgba(164,74,63,.15)}.impersonation-banner{border-bottom:2px solid rgba(0,0,0,.1);box-shadow:0 2px 4px rgba(0,0,0,.1);position:sticky;top:0;z-index:1040}.impersonation-banner .container{font-size:.875rem}.impersonation-banner .btn{font-size:.875rem;padding:.25rem .75rem}@media (max-width:576px){.impersonation-banner .d-flex{flex-direction:column;gap:.5rem;text-align:center}.impersonation-banner .btn{width:100%}}.toolbar .dropdown-menu{max-height:400px;overflow-y:auto}.toolbar .dropdown-item{align-items:center;display:flex;justify-content:space-between;padding:.5rem 1rem}.toolbar .dropdown-item.active .badge{background-color:var(--bs-primary)!important;color:var(--white-color)}.toolbar .dropdown-toggle{align-items:center;display:inline-flex;gap:.5rem}.toolbar .dropdown-toggle .badge{margin-left:.25rem}.photo-info-card .dl.row dt{color:var(--dark-color);font-weight:var(--font-weight-medium);margin-bottom:.5rem}.photo-info-card .dl.row dd{color:var(--text-color);margin-bottom:.5rem;word-break:break-word}.photo-detail-actions .btn{margin-bottom:.5rem;min-height:44px}#photoContainer{border-radius:var(--radius-sm);box-shadow:var(--shadow-md);overflow:hidden}#photoImage{transition:transform var(--transition-normal)}.tag-marker{min-height:44px;min-width:44px;touch-action:manipulation}@media (max-width:768px){.photo-detail-actions .card{margin-bottom:1rem}#enableTaggingBtn{font-size:1rem;min-height:44px;padding:.75rem 1rem}.photo-detail-actions .btn{font-size:.9375rem;padding:.75rem 1rem}}@media (max-width:576px){.photo-detail-actions .col-lg-3,.photo-detail-actions .col-lg-6{margin-bottom:1rem}.tag-marker{min-height:48px;min-width:48px}.photo-info-card .dl.row dd,.photo-info-card .dl.row dt{margin-bottom:.75rem}}.generation-card{position:relative;transition:all .3s ease}.generation-card[data-generation="0"]{border:2px solid var(--bs-primary);box-shadow:0 4px 12px rgba(59,96,100,.15)}.generation-card[data-generation="0"] .card-header{background-color:rgba(59,96,100,.05)}.generation-card .card-header h4 i{font-size:1.2em;margin-right:.5rem}@media (max-width:768px){.generation-card .card-header h4{font-size:1.1rem}.generation-card .badge{font-size:.7rem;padding:.25rem .5rem}}.tooltip-inner{max-width:300px;text-align:left}.profile-age-clustered{position:relative}.profile-age-clustered:after{color:var(--bs-warning);content:"⚡";filter:drop-shadow(0 1px 2px rgba(0,0,0,.2));font-size:.8rem;position:absolute;right:-5px;top:-5px}.vis-network{font-family:var(--font-primary)}.generation-indicator{display:block;font-size:.8em;margin-top:2px;opacity:.8}.generation-toggle{background-color:#fff;border-radius:var(--radius-lg);bottom:20px;box-shadow:var(--shadow-md);padding:.5rem;position:fixed;right:20px;z-index:1000}.generation-toggle .form-switch{align-items:center;display:flex;gap:.5rem;margin:0}.generation-toggle .form-switch .form-check-label{color:var(--text-color);font-size:.875rem;font-weight:500}.generation-transition{animation:fadeInUp .3s ease-out}@keyframes fadeInUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.alert-info{background-color:rgba(59,96,100,.05);border-left:4px solid var(--bs-primary)}.generation-legend{background-color:#fff;border-radius:var(--radius-md);bottom:80px;box-shadow:var(--shadow-md);font-size:.875rem;max-width:200px;padding:1rem;position:fixed;right:20px}.generation-legend-item{align-items:center;display:flex;gap:.5rem;margin-bottom:.25rem}.generation-legend-item i{font-size:1.2em}.profile-card{border-left-style:solid;border-left-width:4px;transition:all .3s ease}.profile-card.profile-female-older{border-left-color:#c2185b}.profile-card.profile-female-same{border-left-color:#e91e63}.profile-card.profile-female-younger{border-left-color:#f8bbd0}.profile-card.profile-male-older{border-left-color:#1565c0}.profile-card.profile-male-same{border-left-color:#1976d2}.profile-card.profile-male-younger{border-left-color:#bbdefb}.profile-card.profile-deceased-female{border-left-color:#9e9e9e}.profile-card.profile-deceased-male{border-left-color:#757575}.profile-card.profile-unknown{border-left-color:#bdbdbd}.profile-card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.profile-card.border-primary{border-left-color:var(--bs-primary)!important}.photo-thumbnail-link{background-color:var(--gray-light-color);border-radius:var(--radius-sm);overflow:hidden;transition:var(--transition-fast)}.photo-thumbnail-link:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.photo-overlay{background:linear-gradient(0deg,rgba(0,0,0,.7),transparent);bottom:0;left:0;opacity:0;padding:.5rem;position:absolute;right:0;transition:opacity var(--transition-fast)}.photo-thumbnail-link:hover .photo-overlay{opacity:1}@media (max-width:768px){.photo-overlay{opacity:1}}.object-fit-cover{object-fit:cover}.btn-group form,.btn-group-vertical form{background:none;border:0;display:flex;flex:1 1 auto;margin:0;padding:0}.btn-group form{align-items:stretch;flex-direction:row}.btn-group-vertical form{flex-direction:column;width:100%}.btn-group form .btn,.btn-group-vertical form .btn{align-items:center;border-radius:0;-webkit-border-radius:0;-moz-border-radius:0;-ms-border-radius:0;-o-border-radius:0;display:flex;flex:1 1 auto;justify-content:center;margin:0}.btn-group form:first-child .btn{border-bottom-left-radius:var(--radius-xl);border-top-left-radius:var(--radius-xl)}.btn-group form:last-child .btn{border-bottom-right-radius:var(--radius-xl);border-right-width:2px;border-top-right-radius:var(--radius-xl)}.btn-group form:not(:last-child) .btn{border-right-color:hsla(0,0%,100%,.5);border-right-width:1px}.btn-group-vertical form:first-child .btn{border-top-left-radius:var(--radius-xl);border-top-right-radius:var(--radius-xl)}.btn-group-vertical form:last-child .btn{border-bottom-left-radius:var(--radius-xl);border-bottom-right-radius:var(--radius-xl);border-bottom-width:2px}.btn-group-vertical form:not(:last-child) .btn{border-bottom-color:hsla(0,0%,100%,.5);border-bottom-width:1px}.btn-group form .btn:hover,.btn-group-vertical form .btn:hover{transform:translateY(-1px);z-index:2}.btn-group>.btn+form,.btn-group>form+.btn,.btn-group>form+form{margin-left:-1px}.btn-group-vertical>.btn+form,.btn-group-vertical>form+.btn,.btn-group-vertical>form+form{margin-left:0;margin-top:-1px}.btn-group-sm form .btn{font-size:.875rem;padding:.5rem 1rem}.btn-group form .btn i,.btn-group-vertical form .btn i{margin-right:.5rem}.btn-group form[style*="display: inline"],.btn-group-vertical form[style*="display: inline"]{display:flex!important}@media (max-width:576px){.btn-group-responsive{flex-direction:column;width:100%}.btn-group-responsive .btn,.btn-group-responsive form{margin-left:0;margin-top:-1px;width:100%}.btn-group-responsive form:first-child .btn,.btn-group-responsive>.btn:first-child{border-radius:var(--radius-xl) var(--radius-xl) 0 0;margin-top:0}.btn-group-responsive form:last-child .btn,.btn-group-responsive>.btn:last-child{border-radius:0 0 var(--radius-xl) var(--radius-xl)}.btn-group-responsive form:not(:first-child):not(:last-child) .btn,.btn-group-responsive>.btn:not(:first-child):not(:last-child){border-radius:0}}.notification-actions .btn-group-vertical,.notification-actions .btn-group-vertical form{width:100%}.notification-actions .btn-group-vertical .btn{justify-content:flex-start;overflow:hidden;text-align:left;text-overflow:ellipsis;white-space:nowrap}.page-actions .btn-group form{align-items:center;display:flex}.page-actions .btn-group form .btn{height:100%}.card-footer .btn-group form,.card-footer .btn-group-vertical form{display:flex}.btn-group-flex{align-items:stretch;display:flex;flex-wrap:nowrap}.btn-group-flex form{display:flex;flex:0 0 auto}.btn-group-clean form[style],.btn-group-vertical-clean form[style]{all:unset;display:flex;margin:0}.btn-group-vertical>:not(.btn):not(form),.btn-group>:not(.btn):not(form){display:flex;flex:0 0 auto}.admin-table-wrapper table td .btn-group,.table td .btn-group,.table-admin td .btn-group{gap:0!important}.admin-table-wrapper table td,.table td,.table-admin td{overflow:visible}.admin-table-wrapper,.table-responsive{overflow-x:auto;overflow-y:visible}.table .btn-group,.table-admin .btn-group{display:inline-flex;gap:0;vertical-align:middle}.table .btn-group>.btn,.table .btn-group>form>.btn,.table-admin .btn-group>.btn,.table-admin .btn-group>form>.btn{margin-left:-1px;position:relative}.table .btn-group>.btn:first-child,.table .btn-group>form:first-child>.btn,.table-admin .btn-group>.btn:first-child,.table-admin .btn-group>form:first-child>.btn{margin-left:0}.table .btn-group>.btn:not(:first-child):not(:last-child),.table .btn-group>form:not(:first-child):not(:last-child)>.btn,.table-admin .btn-group>.btn:not(:first-child):not(:last-child),.table-admin .btn-group>form:not(:first-child):not(:last-child)>.btn{border-radius:0}.table .btn-group>.btn:first-child,.table .btn-group>form:first-child>.btn,.table-admin .btn-group>.btn:first-child,.table-admin .btn-group>form:first-child>.btn{border-bottom-right-radius:0;border-top-right-radius:0}.table .btn-group>.btn:last-child,.table .btn-group>form:last-child>.btn,.table-admin .btn-group>.btn:last-child,.table-admin .btn-group>form:last-child>.btn{border-bottom-left-radius:0;border-top-left-radius:0}.table .btn-group>.btn:only-child,.table .btn-group>form:only-child>.btn,.table-admin .btn-group>.btn:only-child,.table-admin .btn-group>form:only-child>.btn{border-radius:var(--radius-xl);-webkit-border-radius:var(--radius-xl);-moz-border-radius:var(--radius-xl);-ms-border-radius:var(--radius-xl);-o-border-radius:var(--radius-xl);margin-left:0}.table .btn-group>.btn:focus,.table .btn-group>.btn:hover,.table .btn-group>form>.btn:focus,.table .btn-group>form>.btn:hover,.table-admin .btn-group>.btn:focus,.table-admin .btn-group>.btn:hover,.table-admin .btn-group>form>.btn:focus,.table-admin .btn-group>form>.btn:hover{z-index:1}.table .btn-group>form,.table-admin .btn-group>form{display:inline-flex;margin:0;padding:0}.btn-group,.btn-group-vertical{gap:0!important}.btn-group-sm>.btn,.btn-group-sm>form>.btn{font-size:.875rem;padding:.25rem .5rem}.btn-group form,.btn-group-vertical form{margin-bottom:0}@media (max-width:768px){.table-admin .btn-group{flex-wrap:nowrap;max-width:100%;overflow-x:auto}}.relationship-actions .btn-group{display:inline-flex;gap:0!important;vertical-align:middle}.relationship-actions .btn-group .btn{font-size:.875rem;margin-left:-1px;padding:.25rem .5rem;position:relative}.relationship-actions .btn-group>.btn:first-child,.relationship-actions .btn-group>form:first-child>.btn{border-bottom-right-radius:0;border-top-right-radius:0;margin-left:0}.relationship-actions .btn-group>.btn:not(:first-child):not(:last-child),.relationship-actions .btn-group>form:not(:first-child):not(:last-child)>.btn{border-radius:0}.relationship-actions .btn-group>.btn:last-child,.relationship-actions .btn-group>form:last-child>.btn{border-bottom-left-radius:0;border-top-left-radius:0}.relationship-actions .btn-group>.btn:only-child,.relationship-actions .btn-group>form:only-child>.btn{border-radius:var(--radius-xl);margin-left:0}.relationship-actions .btn-group>.btn:hover,.relationship-actions .btn-group>form>.btn:hover{z-index:1}.btn>.bi:only-child,.btn>.fab:only-child,.btn>.far:only-child,.btn>.fas:only-child,.btn>i:only-child{margin-right:0}.btn>.bi:not(:only-child),.btn>.fab:not(:only-child),.btn>.far:not(:only-child),.btn>.fas:not(:only-child),.btn>i:not(:only-child){margin-right:.25rem}.min-w-0{min-width:0}#fileList .card{margin-bottom:0;transition:all .2s ease}#fileList .card:hover{box-shadow:var(--shadow-md)}#fileList .text-truncate{display:block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}#fileList .card-body{min-height:80px}#fileList .img-thumbnail{background-color:#fff;border:1px solid #dee2e6;border-radius:var(--radius-sm);padding:2px}.filter-bar{background-color:#f8f9fa;border-radius:.5rem;margin-top:1rem;padding:1rem}.filter-group{align-items:center;display:flex;gap:.5rem}.filter-label{color:#6c757d;font-size:.875rem;font-weight:500;margin-bottom:0;white-space:nowrap}.filter-group .form-select{min-width:150px}.filter-pill{align-items:center;background-color:#0d6efd;border-radius:2rem;color:#fff;display:inline-flex;font-size:.875rem;font-weight:500;gap:.25rem;padding:.25rem .75rem}.filter-pill .btn-close{height:.75rem;opacity:.8;padding:0;width:.75rem}.filter-pill .btn-close:hover{opacity:1}.filter-mobile-scroll{-webkit-overflow-scrolling:touch;scrollbar-width:thin}.filter-mobile-scroll .form-select{min-width:120px}.active-filters{border-top:1px solid #dee2e6;padding-top:.5rem}#clearAllFilters{font-size:.875rem;text-decoration:none}#clearAllFilters:hover{text-decoration:underline}.form-select.loading{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16'%3E%3Cg fill='none' stroke='%236c757d' stroke-width='2'%3E%3Ccircle cx='8' cy='8' r='7' stroke-opacity='.25'/%3E%3Cpath stroke-linecap='round' d='M15 8a7 7 0 0 1-7 7'%3E%3CanimateTransform attributeName='transform' dur='1s' from='0 8 8' repeatCount='indefinite' to='360 8 8' type='rotate'/%3E%3C/path%3E%3C/g%3E%3C/svg%3E"),var(--bs-form-select-bg-img);background-position:right 2rem center,right .75rem center}.form-select option:disabled{background-color:#f8f9fa;color:#6c757d}@media (max-width:767px){.filter-bar{padding:.75rem}.filter-mobile-scroll::-webkit-scrollbar{height:4px}.filter-mobile-scroll::-webkit-scrollbar-thumb{background-color:#dee2e6;border-radius:2px}}.photo-gallery{--grid-gap:0.5rem}.photo-card{background:#fff;border-radius:.5rem;box-shadow:0 1px 3px rgba(0,0,0,.1);cursor:pointer;overflow:hidden;transition:transform .2s,box-shadow .2s}.photo-card:hover{box-shadow:0 4px 6px rgba(0,0,0,.15);transform:translateY(-2px)}.photo-thumbnail-container{background:#f8f9fa;overflow:hidden;padding-bottom:100%;position:relative;width:100%}.photo-thumbnail-container .photo-wrapper{bottom:0;height:100%;left:0;position:absolute;right:0;top:0;width:100%}.photo-thumbnail-container .photo-link{display:block;height:100%;position:relative;width:100%}.photo-thumbnail-img{backface-visibility:hidden;border-radius:.1px;contain-intrinsic-size:200px 200px;image-rendering:-webkit-optimize-contrast;object-position:center;transform:translateZ(0);-webkit-transform:translateZ(0);will-change:transform}.photo-thumbnail-img,.photo-thumbnail-placeholder{-webkit-backface-visibility:hidden;height:100%;left:0;object-fit:cover;opacity:1;position:absolute;top:0;width:100%}.photo-thumbnail-placeholder{backface-visibility:hidden;background:#f8f9fa;transform:translateZ(0)}.photo-actions{opacity:0;position:absolute;right:.5rem;top:.5rem;transition:opacity .2s}.photo-card:hover .photo-actions,.photo-item:hover .photo-actions{opacity:1}.btn-photo-action{background:rgba(0,0,0,.7);border:none;border-radius:.25rem;color:#fff;font-size:.875rem;padding:.25rem .5rem}.btn-photo-action:hover{background:rgba(0,0,0,.9);color:#fff}.photo-tag-indicator{bottom:.5rem;left:.5rem;pointer-events:none;position:absolute}.photo-tag-indicator .badge{pointer-events:auto}.photo-info{background:#fff}.photo-title{font-size:.875rem;font-weight:500;margin:0}@media (max-width:576px){.row{--bs-gutter-x:0.5rem}}img.photo-thumbnail-img.loading{opacity:1}#photo-gallery .photo-item .photo-card .photo-thumbnail-container .photo-link .photo-thumbnail-img{height:100%;max-height:none;max-width:none;width:100%}.search-highlight,mark.search-highlight{background-color:#ffeb3b;border-radius:.2em;color:inherit;font-weight:500;padding:.1em .2em}.search-result-count{color:#6c757d;font-size:.875rem;font-weight:400;margin-left:.5rem}.search-empty-state{margin:0 auto;max-width:600px;padding:3rem 1rem;text-align:center}.search-empty-state>.bi{display:block;font-size:4rem;margin-bottom:1rem;opacity:.3}.search-empty-state h3{color:#495057;margin-bottom:.5rem}.search-empty-state p{font-size:1.1rem;margin-bottom:2rem}.search-suggestions{background-color:#f8f9fa;border-radius:.5rem;margin-top:2rem;padding:2rem;text-align:left}.search-suggestions h5{color:#495057;font-size:1.1rem;margin-bottom:1rem}.search-suggestions h6{color:#6c757d;font-size:1rem}.search-suggestions ul{list-style-type:disc;margin-bottom:1.5rem;padding-left:1.5rem}.search-suggestions ul li{color:#6c757d;margin-bottom:.5rem}.search-pagination{margin-bottom:2rem;margin-top:2rem}.search-pagination .pagination{margin-bottom:0}@media (max-width:576px){.search-empty-state{padding:2rem 1rem}.search-empty-state>.bi{font-size:3rem}.search-suggestions{margin-top:1.5rem;padding:1.5rem}.search-pagination .page-link{font-size:.875rem;padding:.375rem .5rem}}