*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;line-height:1.6}body{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif;color:#1a1a1a;background-color:#f5f5f5}img{max-width:100%;height:auto}a{color:#1a3a5c}a:hover{color:#122840}ul,ol{list-style:none}address{font-style:normal}h1,h2,h3,h4{font-weight:600;line-height:1.3;color:#1a3a5c}h1{font-size:32px}h2{font-size:24px}h3{font-size:18px}.button{display:inline-block;padding:8px 16px;border:1px solid rgba(0,0,0,0);border-radius:4px;font-size:14px;font-weight:600;cursor:pointer;text-decoration:none;text-align:center;transition:background-color .15s,border-color .15s}.button--primary{background-color:#1a3a5c;color:#fff;border-color:#1a3a5c}.button--primary:hover{background-color:#122840;border-color:#122840;color:#fff}.button--secondary{background-color:rgba(0,0,0,0);color:#1a3a5c;border-color:#d0d0d0}.button--secondary:hover{background-color:#f0f4f8}.button--danger{background-color:#c0392b;color:#fff;border-color:#c0392b}.button--danger:hover{background-color:rgb(150.3319148936,44.629787234,33.6680851064)}.button--success{background-color:#27ae60;color:#fff;border-color:#27ae60}.button--success:hover{background-color:rgb(31.5295774648,140.6704225352,77.6112676056);color:#fff}.button--warning{background-color:#e67e22;color:#fff;border-color:#e67e22}.button--warning:hover{background-color:rgb(200.5170731707,106.156097561,22.6829268293);color:#fff}.button--ghost{background-color:rgba(0,0,0,0);color:#fff;border-color:hsla(0,0%,100%,.5)}.button--ghost:hover{background-color:hsla(0,0%,100%,.15);border-color:#fff;color:#fff}.button--small{padding:4px 8px;font-size:12px}.button--large{padding:16px 40px;font-size:16px}.button--full{display:block;width:100%}.flash{padding:8px 16px;border-radius:4px;margin-bottom:16px;font-weight:500}.flash--notice{background-color:#d4edda;color:#155724;border:1px solid #c3e6cb}.flash--alert{background-color:#f8d7da;color:#721c24;border:1px solid #f5c6cb}.form-fieldset{border:1px solid #d0d0d0;border-radius:4px;padding:24px;margin-bottom:24px}.form-fieldset__legend{font-weight:600;color:#1a3a5c;padding:0 8px}.form-row{display:flex;gap:16px;margin-bottom:16px}@media(max-width: 640px){.form-row{flex-direction:column}}.form-field{flex:1;display:flex;flex-direction:column}.form-field--narrow{flex:0 0 120px}.form-field--wide{flex:2}.form-field--checkbox{flex-direction:row;align-items:center;gap:8px}.form-field__label{font-size:14px;font-weight:600;color:#1a1a1a;margin-bottom:4px}.form-field__label--checkbox{margin-bottom:0}.form-field__input,.form-field__select,.form-field__textarea{padding:8px 8px;border:1px solid #d0d0d0;border-radius:4px;font-size:16px;font-family:inherit;color:#1a1a1a;background-color:#fff;width:100%}.form-field__input:focus,.form-field__select:focus,.form-field__textarea:focus{outline:2px solid #1a3a5c;outline-offset:1px;border-color:#1a3a5c}.form-field__textarea{resize:vertical}.form-field__color{height:44px;width:70px;padding:2px;border:1px solid #d0d0d0;border-radius:4px;cursor:pointer}.form-field__hint{font-size:12px;color:#666;margin-top:4px}.form-errors{background-color:#f8d7da;border:1px solid #f5c6cb;border-radius:4px;padding:16px;margin-bottom:24px}.form-errors__title{color:#721c24;margin-bottom:8px}.form-errors__list{list-style:disc;padding-left:24px;color:#721c24}.form-actions{display:flex;gap:8px;margin-top:24px}.filter-form{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.filter-form__select{padding:4px 8px}.filter-form__checkbox-label{display:flex;align-items:center;gap:4px;font-size:14px;cursor:pointer}.members-section__title{font-size:18px;font-weight:600;color:#1a1a1a;margin-top:40px;margin-bottom:24px}.members-section__title:first-of-type{margin-top:0}.data-table{width:100%;border-collapse:collapse;background-color:#fff;border-radius:4px;overflow:hidden;box-shadow:0 1px 3px rgba(0,0,0,.08)}.data-table--compact{font-size:14px}.data-table__header{background-color:#1a3a5c;color:#fff;padding:8px 16px;text-align:left;font-size:14px;font-weight:600;white-space:nowrap}.data-table__row{border-bottom:1px solid #d0d0d0}.data-table__row:hover{background-color:#f0f4f8}.data-table__row:last-child{border-bottom:none}.data-table__row--deceased{opacity:.6}.data-table__cell{padding:8px 16px;vertical-align:middle}.data-table__cell--actions{white-space:nowrap;display:flex;gap:4px}.data-table__cell--center{text-align:center}.data-table__link{font-weight:500;text-decoration:none}.data-table__link:hover{text-decoration:underline}.todo-status{display:inline-block;padding:2px 8px;border-radius:10px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.4px}.todo-status--open{background-color:#fff3cd;color:#856404}.todo-status--done{background-color:#d4edda;color:#155724}.badge{display:inline-block;padding:2px 4px;border-radius:3px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;vertical-align:middle;margin-left:4px}.badge--minor{background-color:#fff3cd;color:#856404}.badge--deceased{background-color:#e2e3e5;color:#383d41}.status-badge{display:inline-block;padding:2px 8px;border-radius:12px;font-size:12px;font-weight:600}.status-badge--active{background-color:#d4edda;color:#155724}.status-badge--passive{background-color:#e2e3e5;color:#383d41}.dashboard-stats{display:flex;gap:16px;margin-bottom:40px}.stat-card{background-color:#fff;border-radius:4px;padding:24px;box-shadow:0 1px 3px rgba(0,0,0,.08);display:flex;flex-direction:column;align-items:center;min-width:140px}.stat-card--large{padding:40px;min-width:200px}.stat-card__number{font-size:32px;font-weight:700;color:#1a3a5c;line-height:1}.stat-card__label{font-size:14px;color:#666;margin-top:4px;text-align:center}.todo-list__item{display:flex;justify-content:space-between;align-items:flex-start;padding:8px 16px;border:1px solid #d0d0d0;border-radius:4px;background-color:#fff;margin-bottom:8px}.todo-list__item--completed{opacity:.55;text-decoration:line-through}.todo-list__content{flex:1}.todo-list__title{font-weight:600;display:block}.todo-list__assignee{font-size:14px;color:#666;display:block}.todo-list__description{font-size:14px;color:#666;margin-top:4px}.todo-list__actions{display:flex;gap:4px;flex-shrink:0;margin-left:16px}.todo-list__status{flex-shrink:0;min-width:80px}.todo-list__link{text-decoration:none;font-weight:500}.todo-list__event{font-size:14px;color:#666;display:block}.privacy-consent-option{display:flex;align-items:flex-start;gap:8px;padding:16px;border:1px solid #d0d0d0;border-radius:4px;margin-bottom:8px;cursor:pointer;background-color:#fff;transition:background-color .1s}.privacy-consent-option:hover{background-color:#f0f4f8}.privacy-consent-option__checkbox{margin-top:3px;flex-shrink:0}.privacy-consent-option__label{font-size:16px;line-height:1.5}.cloud-areas{display:grid;grid-template-columns:repeat(auto-fill, minmax(280px, 1fr));gap:40px;margin-top:24px}.cloud-area-card{background-color:#fff;border-radius:4px;padding:24px;box-shadow:0 1px 3px rgba(0,0,0,.08);border-top:4px solid #1a3a5c}.cloud-area-card__icon{font-size:2rem;margin-bottom:8px}.cloud-area-card__title{font-size:18px;margin-bottom:16px}.cloud-area-card__folders{margin-bottom:16px;min-height:48px}.cloud-area-card__folder{padding:4px 0;border-bottom:1px solid #d0d0d0}.cloud-area-card__folder:last-child{border-bottom:none}.cloud-area-card__folder-link{text-decoration:none;font-weight:500;color:#1a3a5c}.cloud-area-card__folder-link:hover{text-decoration:underline}.cloud-breadcrumb{font-size:14px;color:#666;margin-bottom:16px}.cloud-breadcrumb a{color:#1a3a5c;text-decoration:none}.cloud-breadcrumb a:hover{text-decoration:underline}.cloud-toolbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:24px;padding:8px 16px;background-color:#fff;border-radius:4px;border:1px solid #d0d0d0}.cloud-toolbar__upload-link{font-size:14px;color:#666;margin-left:auto}.cloud-toolbar__link{color:#1a3a5c;word-break:break-all}.cloud-section{margin-bottom:40px}.cloud-section__title{margin-bottom:16px}.cloud-section__hint{font-size:14px;color:#666;margin-bottom:8px}.cloud-section--naming{background-color:#fff;border:1px solid #d0d0d0;border-radius:4px;padding:24px}.cloud-folder-list{display:flex;flex-direction:column;gap:4px}.cloud-folder-item{display:flex;align-items:center;gap:8px;padding:8px 16px;background-color:#fff;border:1px solid #d0d0d0;border-radius:4px}.cloud-folder-item__icon{font-size:1.2rem;flex-shrink:0}.cloud-folder-item__name{font-weight:600;flex:1;text-decoration:none;color:#1a1a1a}.cloud-folder-item__name:hover{color:#1a3a5c}.cloud-folder-item__count{font-size:14px;color:#666;flex-shrink:0}.cloud-folder-item__actions{display:flex;gap:4px;margin-left:auto;flex-shrink:0;flex-wrap:wrap}.cloud-file-list{display:flex;flex-direction:column;gap:4px}.cloud-file-item{display:flex;align-items:center;gap:8px;padding:8px 16px;background-color:#fff;border:1px solid #d0d0d0;border-radius:4px}.cloud-file-item__icon{font-size:1.2rem;flex-shrink:0}.cloud-file-item__info{flex:1;min-width:0}.cloud-file-item__name{font-weight:500;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cloud-file-item__meta{font-size:14px;color:#666;display:block}.cloud-file-item__actions{display:flex;gap:4px;margin-left:auto;flex-shrink:0;flex-wrap:wrap}.cloud-naming-form{display:flex;gap:8px;align-items:center}.cloud-naming-form .form-field__input{flex:1}.cloud-share-url{font-size:14px;color:#1a3a5c;word-break:break-all}.cloud-no-expiry{color:#666}.cloud-share-success{color:#27ae60;font-weight:500;margin-bottom:16px}.cloud-share-url-box{display:flex;gap:8px;margin-bottom:16px}.cloud-share-url-input{flex:1;font-family:monospace;font-size:14px}.cloud-filename{font-family:monospace;font-size:14px;color:#666}.form-field__input--inline{padding:4px 8px;font-size:14px;width:100%}.public-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px;background-color:#f5f5f5}.upload-card{background-color:#fff;border-radius:4px;width:100%;max-width:480px;overflow:hidden;box-shadow:0 4px 20px rgba(0,0,0,.12)}.upload-card__header{background-color:#1a3a5c;color:#fff;padding:40px 40px 24px;text-align:center}.upload-card__title{font-size:24px;margin-bottom:4px;color:#fff}.upload-card__subtitle{opacity:.85;font-size:14px}.upload-card__folder{margin-top:8px;font-size:14px;opacity:.9}.upload-card__checkmark{font-size:3rem;margin-bottom:8px;color:#fff}.upload-card__actions{padding:24px}.upload-card--success .upload-card__header{background-color:#27ae60}.upload-form{padding:24px}.upload-form__drop-area{border:2px dashed #d0d0d0;border-radius:4px;padding:40px;text-align:center;margin-bottom:24px;cursor:pointer;transition:border-color .15s}.upload-form__drop-area:hover{border-color:#1a3a5c}.upload-form__input{display:none}.upload-form__label{display:flex;flex-direction:column;align-items:center;gap:8px;cursor:pointer}.upload-form__icon{font-size:2.5rem}.upload-form__text{font-weight:600;font-size:16px}.upload-form__hint{font-size:14px;color:#666}.upload-form__preview{background-color:#f5f5f5;border-radius:4px;padding:8px 16px;margin-bottom:16px;font-size:14px;color:#27ae60;font-weight:500}.upload-form__submit{margin-top:0}.share-card{background-color:#fff;border-radius:4px;width:100%;max-width:440px;overflow:hidden;box-shadow:0 4px 20px rgba(0,0,0,.12)}.share-card__header{background-color:#1a3a5c;color:#fff;padding:40px;text-align:center}.share-card__club{font-size:14px;opacity:.8;margin-bottom:8px}.share-card__title{font-size:24px;margin-bottom:4px;color:#fff}.share-card__subtitle{opacity:.9;font-size:14px}.share-card__meta{opacity:.75;font-size:14px;margin-top:4px}.share-card__expiry{padding:8px 24px;font-size:14px;color:#666;text-align:center}.share-card__actions{padding:24px}.share-card .auth-form{padding:24px}.share-card--error .share-card__header{background-color:#c0392b}.layout-admin{min-height:100vh;background-color:#f5f5f5}.admin-header{background-color:#1a3a5c;color:#fff;padding:0 40px;display:flex;align-items:center;gap:24px;height:60px;box-shadow:0 2px 4px rgba(0,0,0,.15)}.admin-header__logo{font-weight:700;font-size:18px;white-space:nowrap}.admin-header__logo a{color:#fff;text-decoration:none}.admin-header__user{margin-left:auto;display:flex;align-items:center;gap:8px}.admin-header__username{font-size:14px;opacity:.85;color:#fff;text-decoration:none}.admin-header__username:hover{opacity:1;text-decoration:underline;color:#fff}.admin-nav{display:flex;gap:4px;flex:1}.admin-nav__link{color:hsla(0,0%,100%,.8);text-decoration:none;padding:4px 8px;border-radius:4px;font-size:14px;font-weight:500;transition:background-color .1s}.admin-nav__link:hover,.admin-nav__link--active{background-color:hsla(0,0%,100%,.15);color:#fff}.admin-main{max-width:1200px;margin:0 auto;padding:40px}.page-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:40px}.page-header__title{margin-bottom:0}.page-header__actions{display:flex;gap:8px}.page-header__back{color:#666;text-decoration:none;font-size:14px}.filter-bar{display:flex;align-items:center;gap:16px;margin-bottom:24px;flex-wrap:wrap}.member-count{font-size:14px;color:#666}.dashboard-grid{display:grid;grid-template-columns:1fr 1fr;gap:40px;margin-top:40px}@media(max-width: 800px){.dashboard-grid{grid-template-columns:1fr}}.dashboard-section{background-color:#fff;border-radius:4px;padding:24px;box-shadow:0 1px 3px rgba(0,0,0,.08)}.dashboard-section__title{font-size:18px;margin-bottom:16px;padding-bottom:8px;border-bottom:1px solid #d0d0d0}.detail-section{background-color:#fff;border-radius:4px;padding:24px;box-shadow:0 1px 3px rgba(0,0,0,.08);margin-bottom:16px}.detail-section__title{font-size:18px;margin-bottom:16px;padding-bottom:8px;border-bottom:1px solid #d0d0d0}.detail-list{display:grid;grid-template-columns:200px 1fr;gap:4px 16px}.detail-list__term{font-weight:600;font-size:14px;color:#666;padding:4px 0}.detail-list__desc{padding:4px 0}.member-address{line-height:1.8}.member-detail{display:grid;grid-template-columns:1fr 1fr;gap:16px}@media(max-width: 800px){.member-detail{grid-template-columns:1fr}}.events-section,.stats-section,.todos-section,.jubilee-group{margin-bottom:40px}.events-section__title,.stats-section__title,.todos-section__title,.jubilee-group__title{margin-bottom:16px}.events-section__header,.stats-section__header,.todos-section__header,.jubilee-group__header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.jubilee-list{display:flex;flex-wrap:wrap;gap:8px}.jubilee-list__item{background-color:#fff;border:1px solid #d0d0d0;border-radius:4px;padding:4px 16px;font-weight:500}.year-selector{display:flex;gap:8px;align-items:center}.year-selector__input{padding:4px 8px;border:1px solid #d0d0d0;border-radius:4px;width:90px}.warning-banner{background-color:#fff3cd;border:1px solid #ffc107;border-radius:4px;padding:16px;margin-bottom:24px;font-weight:500}.event-list__item{display:flex;gap:8px;padding:4px 0;border-bottom:1px solid #d0d0d0}.event-list__item:last-child{border-bottom:none}.event-list__date{font-size:14px;color:#666;min-width:80px}.event-list__link{text-decoration:none;font-weight:500}.event-date{font-size:18px;color:#666;margin-bottom:16px}.event-description{margin-bottom:40px}.empty-state{color:#666;font-style:italic}.hint-box{background-color:#fff;border:1px solid #d0d0d0;border-left:4px solid #1a3a5c;border-radius:4px;padding:16px 24px;margin-bottom:24px;font-size:14px;color:#666}.hint-box a{color:#1a3a5c}.link{color:#1a3a5c}.config-preview-image{max-width:400px;margin-bottom:16px;border:1px solid #d0d0d0;border-radius:4px}.color-picker-row{display:flex;align-items:center;gap:8px;margin-bottom:4px}.color-picker-row__value{font-family:monospace;font-size:14px;color:#666}.color-preview{display:inline-block;width:20px;height:20px;border-radius:3px;border:1px solid #d0d0d0;vertical-align:middle;margin-right:4px}.stats-grid{margin-bottom:40px}.two-factor-status{display:flex;align-items:center;gap:16px;padding:16px 24px;border-radius:4px;margin-bottom:40px}.two-factor-status--active{background-color:#d4edda;border:1px solid #c3e6cb}.two-factor-status--inactive{background-color:#fff3cd;border:1px solid #ffc107}.two-factor-status__icon{font-size:24px;font-weight:700;flex-shrink:0}.two-factor-status p{margin-top:4px;color:#666;font-size:14px}.two-factor-steps{list-style:decimal;padding-left:40px;margin-bottom:24px}.two-factor-steps__step{margin-bottom:24px;line-height:1.7}.two-factor-qr{margin:16px 0;display:inline-block;padding:8px;background:#fff;border:1px solid #d0d0d0;border-radius:4px}.two-factor-qr svg{display:block}.two-factor-manual{margin-top:8px;font-size:14px}.two-factor-manual summary{cursor:pointer;color:#1a3a5c}.two-factor-manual__code{display:inline-block;margin-top:4px;padding:4px 8px;background-color:#f5f5f5;border:1px solid #d0d0d0;border-radius:4px;font-size:16px;letter-spacing:2px;word-break:break-all}.two-factor-form{display:flex;align-items:flex-end;gap:16px}.two-factor-form .form-field{margin-bottom:0}.two-factor-hint{color:#666;margin-bottom:16px;font-size:14px}.two-factor-teaser{display:flex;align-items:center;gap:16px;background-color:#fff;border:1px solid #d0d0d0;border-radius:4px;padding:16px 24px;margin-bottom:40px}.two-factor-teaser__status{font-weight:600;font-size:14px}.two-factor-teaser__status--active{color:#27ae60}.two-factor-teaser__status--inactive{color:#e67e22}.auth-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background-color:#1a3a5c}.auth-card{background-color:#fff;border-radius:4px;padding:40px;width:100%;max-width:420px;box-shadow:0 4px 20px rgba(0,0,0,.2)}.auth-card__logo{text-align:center;font-size:14px;font-weight:700;color:#1a3a5c;text-transform:uppercase;letter-spacing:1px;line-height:1.4;margin-bottom:24px;padding-bottom:24px;border-bottom:2px solid #c8a000}.auth-card__title{text-align:center;margin-bottom:24px;font-size:18px;color:#666;font-weight:400}.auth-card__intro{text-align:center;color:#666;margin-bottom:40px;font-size:14px}.auth-card__link{text-align:center;margin-top:16px;font-size:14px;color:#666}.auth-card__link a{color:#1a3a5c;text-decoration:none}.auth-card__link a:hover{text-decoration:underline}.auth-form .form-field{margin-bottom:16px}.auth-form__remember{display:flex;align-items:center;gap:4px;font-size:14px;color:#666;margin-bottom:16px;cursor:pointer}.auth-form .button{margin-top:4px}.form-field__input--otp{text-align:center;font-size:24px;letter-spacing:8px;font-family:monospace}.layout-public{min-height:100vh;background-color:#f5f5f5}.privacy-page{max-width:600px;margin:40px auto;padding:40px;background-color:#fff;border-radius:4px;box-shadow:0 1px 3px rgba(0,0,0,.08)}.privacy-page__title{margin-bottom:16px}.privacy-page__intro{color:#666;margin-bottom:40px;line-height:1.7}.privacy-lookup-form .form-field{margin-bottom:16px}.privacy-form .form-fieldset{margin-bottom:24px}
