.auth-container{min-height:100vh;background:linear-gradient(135deg, rgba(108, 92, 231, 0.06) 0%, var(--bs-body-bg) 60%);padding:20px}.auth-container .form-container{background:var(--bs-surface);color:var(--bs-body-color);padding:2rem;border-radius:15px;box-shadow:var(--shadow-md);width:100%;max-width:400px}.auth-container .form-container .check-icon{animation:scaleIn .3s ease-in-out}.auth-container .social-buttons .btn{width:48px;height:48px;margin:0 10px;border-radius:50%;display:flex;align-items:center;justify-content:center}.auth-container .social-buttons .btn:hover{background-color:var(--bs-gray-100);transition:background-color .2s ease,border-color .2s ease}.auth-container .social-buttons .btn.btn-outline-dark{color:var(--bs-body-color);border-color:var(--bs-gray-300);background-color:rgba(0,0,0,0)}.auth-container .social-buttons .btn.btn-outline-dark:hover:not(:disabled),.auth-container .social-buttons .btn.btn-outline-dark:focus:not(:disabled){color:var(--bs-body-color);background-color:var(--bs-gray-100);border-color:var(--bs-gray-300)}.auth-container .social-buttons .btn.btn-outline-dark svg{color:currentColor}.auth-container .social-buttons .btn.btn-primary svg{color:#fff}.auth-container .form-control{height:48px;font-size:16px;border-radius:8px;border:2px solid var(--bs-gray-200);background-color:var(--bs-gray-100);color:var(--bs-body-color);transition:all .2s}.auth-container .form-control::placeholder{color:var(--bs-muted)}.auth-container .form-control:focus{background-color:var(--bs-gray-100);border-color:var(--bs-primary);color:var(--bs-body-color);box-shadow:0 0 0 .2rem rgba(var(--bs-primary-rgb), 0.15)}.auth-container .form-label{color:var(--bs-body-color)}.auth-container .btn-primary{height:48px;font-size:16px;font-weight:500;border-radius:8px;background:var(--bs-primary);border:none;transition:all .2s;display:inline-flex;align-items:center;justify-content:center;line-height:1;padding-top:0;padding-bottom:0;text-decoration:none}.auth-container .btn-primary:hover:not(:disabled){background:var(--bs-primary-600)}.auth-container .btn-primary:active:not(:disabled){background:var(--bs-primary-700)}.auth-container .btn-link{color:var(--bs-primary);font-weight:500;min-height:44px;display:inline-flex;align-items:center;justify-content:center;padding:.375rem .5rem}.auth-container .btn-link:hover{color:var(--bs-primary-600);text-decoration:none}.auth-container .alert{border-radius:8px;font-size:14px}.auth-container .form-check{display:flex;align-items:flex-start;gap:.625rem;min-height:44px;padding:.25rem 0;margin-bottom:0}.auth-container .form-check-input{width:1.125rem;height:1.125rem;margin-top:.2rem;cursor:pointer;flex-shrink:0}.auth-container .form-check-label{cursor:pointer;line-height:1.45;padding:.125rem 0;color:var(--bs-body-color)}.auth-container .auth-footer-link{min-height:44px;display:inline-flex;align-items:center;justify-content:center;padding:.375rem .5rem !important;min-width:44px;font-weight:500;text-decoration:none}.auth-container.auth-container--register .form-container{max-width:440px}.auth-container .auth-divider{display:flex;align-items:center;text-align:center;color:var(--bs-muted);font-size:14px}.auth-container .auth-divider::before,.auth-container .auth-divider::after{content:"";flex:1 1;border-bottom:1px solid var(--bs-gray-200)}.auth-container .auth-divider span{padding:0 12px}.auth-container .auth-modal-backdrop{background-color:rgba(0,0,0,.5)}.auth-container .auth-modal-close{min-width:44px;min-height:44px;padding:.75rem;margin:-0.75rem -0.75rem -0.75rem auto}.auth-container .modal-footer .btn{min-height:44px}.social-button{width:48px;height:48px;border-radius:50%;border:1px solid var(--bs-gray-200);background:var(--bs-surface);display:flex;align-items:center;justify-content:center;transition:all .2s ease}.social-button:hover{background:var(--bs-gray-100);transition:background-color .2s ease,border-color .2s ease}.social-button svg{width:20px;height:20px;color:var(--bs-body-color)}.auth-input{background:var(--bs-gray-100);border:1px solid var(--bs-gray-200);color:var(--bs-body-color);border-radius:12px;padding:12px 16px;font-size:16px;transition:all .2s ease}.auth-input::placeholder{color:var(--bs-muted)}.auth-input:focus{border-color:var(--bs-primary);box-shadow:0 0 0 2px rgba(var(--bs-primary-rgb), 0.1)}.auth-checkbox{accent-color:#6c5ce7;width:18px;height:18px;margin-right:8px}@keyframes scaleIn{0%{transform:scale(0);opacity:0}100%{transform:scale(1);opacity:1}}.auth-info{max-width:440px}.auth-info__icon{display:flex;align-items:center;justify-content:center;width:72px;height:72px;margin:0 auto 1.25rem;border-radius:var(--radius-lg);background:var(--surface-brand-subtle);color:var(--bs-primary)}.auth-info__title{margin:0 0 .75rem;font-size:1.375rem;font-weight:var(--weight-semibold);text-align:center;color:var(--heading-color);line-height:1.3}.auth-info__lead{margin:0 0 1.25rem;font-size:var(--text-body);color:var(--bs-muted);text-align:center;line-height:1.5}.auth-info__steps{margin:0 0 1.25rem;padding:0;list-style:none;display:flex;flex-direction:column;gap:.75rem}.auth-info__step{display:flex;align-items:flex-start;gap:.75rem;padding:.75rem .875rem;background:var(--bs-gray-100);border:1px solid var(--bs-gray-200);border-radius:var(--radius-md);font-size:var(--text-meta);line-height:1.45;color:var(--bs-body-color)}.auth-info__step-icon{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:10px;background:var(--bs-surface);color:var(--text-brand)}.auth-info__note{margin:0 0 1rem;font-size:var(--text-meta);color:var(--bs-muted);text-align:center;line-height:1.45}.auth-info__cta{margin-bottom:1rem;text-align:center}.auth-info__footer{text-align:center;font-size:var(--text-meta);color:var(--bs-muted)}
/* Dashboard — Vibrant & Block-based / bento hierarchy */

.dashboard {
  background:
    radial-gradient(120% 60% at 100% -10%, rgba(91, 79, 224, 0.12), transparent 55%),
    radial-gradient(90% 50% at 0% 0%, rgba(255, 107, 74, 0.08), transparent 45%),
    var(--bs-body-bg);
  max-width: 100%;
  overflow-x: clip;
}

.dashboard__container {
  max-width: 960px;
}

.dashboard__search {
  margin-bottom: 1rem;
}

.dashboard__calendar {
  margin-bottom: 0.25rem;
}

.dashboard__section {
  margin-bottom: 0.5rem;
}

.dashboard__section + .dashboard__section {
  margin-top: 0.5rem;
}

.dashboard-card {
  border-radius: var(--radius-lg);
  transition: box-shadow 240ms ease;
  transition: box-shadow var(--motion-base, 240ms) ease;
}

.dashboard-card:hover {
  box-shadow: var(--shadow-md);
}

.upcoming-workouts .workout-item {
  transition: background-color 180ms ease, box-shadow 180ms ease;
  transition: background-color var(--motion-fast, 180ms) ease, box-shadow var(--motion-fast, 180ms) ease;
  border-color: var(--bs-gray-200);
}

.upcoming-workouts .workout-item:hover {
  background-color: var(--bs-gray-100);
  box-shadow: var(--shadow-sm);
}

.bg-primary-subtle {
  background-color: rgba(var(--bs-primary-rgb), 0.1);
}

.dashboard .horizontal-calendar-wrapper {
  width: 100%;
  margin-bottom: 1.75rem;
  display: flex;
  justify-content: center;
}

.dashboard .horizontal-calendar-wrapper > div {
  width: 100%;
  max-width: 640px;
}

@media (max-width: 576px) {
  .dashboard-card {
    padding: 15px !important;
  }

  .upcoming-workouts .workout-item {
    padding: 10px !important;
    margin-bottom: 10px !important;
  }
}

@media (prefers-reduced-motion: reduce) {
  .dashboard-card,
  .upcoming-workouts .workout-item {
    transition: none;
  }
}

.profile-page{max-width:480px;margin-inline:auto}@keyframes profile-spin{from{transform:rotate(0deg)}to{transform:rotate(360deg)}}.spinner{animation:profile-spin 1s linear infinite}.profile-form{display:flex;flex-direction:column;gap:1.25rem}.profile-form__avatar{display:flex;justify-content:center;padding:.5rem 0}.profile-form__card{display:flex;flex-direction:column;gap:1rem;padding:1rem;background:var(--bs-surface);border:1px solid var(--bs-gray-200);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}.profile-form__group{display:flex;flex-direction:column;gap:.375rem}.profile-form__label{margin:0;font-size:.8125rem;font-weight:500;color:var(--bs-muted)}.profile-form__input,.profile-form__select{width:100%;padding:.75rem .875rem;font-size:.9375rem;color:var(--bs-body-color);background:var(--bs-gray-100);border:1px solid var(--bs-gray-200);border-radius:var(--radius-sm);transition:border-color .2s ease,box-shadow .2s ease}.profile-form__input::placeholder,.profile-form__select::placeholder{color:var(--bs-muted);opacity:.7}.profile-form__input:focus,.profile-form__select:focus{outline:none;border-color:var(--bs-primary);box-shadow:0 0 0 3px rgba(var(--bs-primary-rgb), 0.15)}.profile-form__select{cursor:pointer;-webkit-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 width=%2712%27 height=%2712%27 viewBox=%270 0 12 12%27%3E%3Cpath fill=%27%23475569%27 d=%27M6 8L1 3h10z%27/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .875rem center;padding-right:2.25rem}.profile-form__submit{display:flex;align-items:center;justify-content:center;gap:.5rem;width:100%;min-height:48px;padding:.875rem 1rem;font-size:.9375rem;font-weight:600;color:#fff;background:var(--gradient-primary);border:none;border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);cursor:pointer;touch-action:manipulation;transition:box-shadow .2s ease,opacity .2s ease}.profile-form__submit:hover:not(:disabled){box-shadow:var(--shadow-md)}.profile-form__submit:disabled{opacity:.65;cursor:not-allowed}.profile-form__submit:focus-visible{outline:2px solid var(--bs-primary);outline-offset:2px}.profile-setting-row{display:flex;align-items:center;justify-content:space-between;gap:1rem;min-height:52px;padding:.75rem 1rem}.profile-setting-row__left{display:flex;align-items:center;gap:.875rem;min-width:0}.profile-setting-row__icon{display:flex;align-items:center;justify-content:center;flex-shrink:0;width:36px;height:36px;border-radius:10px;background:var(--surface-brand-subtle);color:var(--text-brand);font-size:.9375rem}.profile-setting-row__label{margin:0;font-size:.9375rem;font-weight:500;color:var(--bs-body-color);cursor:pointer}.profile-setting-row__switch{flex-shrink:0;margin:0}.profile-setting-row__switch .form-check-input{width:2.75rem;height:1.5rem;cursor:pointer}.profile-setting-row__switch .form-check-input:checked{background-color:var(--bs-primary);border-color:var(--bs-primary)}.profile-setting-row__switch .form-check-input:focus{box-shadow:0 0 0 3px rgba(var(--bs-primary-rgb), 0.2)}.profile-setting-action{display:block;width:100%;padding:.625rem 1rem;font-size:.8125rem;font-weight:500;color:var(--bs-muted);text-align:center;text-decoration:none;background:rgba(0,0,0,0);border:none;border-top:1px solid var(--bs-gray-200);cursor:pointer;touch-action:manipulation;transition:color .2s ease,background-color .2s ease}.profile-setting-action:hover{color:var(--text-brand);background:rgba(var(--bs-primary-rgb), 0.04)}.profile-setting-action:focus-visible{outline:2px solid var(--bs-primary);outline-offset:-2px}.profile-menu-item--button{width:100%;border:none;background:rgba(0,0,0,0);text-align:left;font:inherit}.profile-menu-item--danger{color:var(--text-danger-strong)}.profile-menu-item--danger .profile-menu-item__icon{background:rgba(220,38,38,.08);color:var(--text-danger-strong)}.profile-menu-item--danger .profile-menu-item__chevron{color:var(--text-danger-strong);opacity:.5}.profile-menu-item--danger:hover{background:rgba(220,38,38,.04)}.profile-toggle-row{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;padding:.875rem 1rem}.profile-toggle-row:not(:last-child){border-bottom:1px solid var(--bs-gray-200)}.profile-toggle-row__left{display:flex;align-items:flex-start;gap:.875rem;flex:1 1;min-width:0}.profile-toggle-row__icon{display:flex;align-items:center;justify-content:center;flex-shrink:0;width:36px;height:36px;margin-top:.125rem;border-radius:10px;background:var(--surface-brand-subtle);color:var(--text-brand);font-size:.9375rem}.profile-toggle-row__info{flex:1 1;min-width:0}.profile-toggle-row__title{margin:0;font-size:.9375rem;font-weight:500;color:var(--bs-body-color);line-height:1.3}.profile-toggle-row__description{margin:.25rem 0 0;font-size:.8125rem;color:var(--bs-muted);line-height:1.4}.profile-toggle-row__controls{display:flex;flex-direction:column;align-items:flex-end;gap:.5rem;flex-shrink:0;padding-top:.125rem}.profile-toggle-row__switch{margin:0}.profile-toggle-row__switch .form-check-input{width:2.75rem;height:1.5rem;cursor:pointer}.profile-toggle-row__switch .form-check-input:checked{background-color:var(--bs-primary);border-color:var(--bs-primary)}.profile-toggle-row__switch .form-check-input:focus{box-shadow:0 0 0 3px rgba(var(--bs-primary-rgb), 0.2)}.profile-toggle-row__action{padding:.375rem .75rem;font-size:.75rem;font-weight:500;color:var(--text-danger-strong);background:rgba(220,38,38,.06);border:1px solid rgba(220,38,38,.18);border-radius:var(--radius-sm);cursor:pointer;touch-action:manipulation;transition:background-color .2s ease,border-color .2s ease}.profile-toggle-row__action:hover:not(:disabled){background:rgba(220,38,38,.1);border-color:rgba(220,38,38,.28)}.profile-toggle-row__action:disabled{opacity:.6;cursor:not-allowed}.profile-form__password{position:relative}.profile-form__password .profile-form__input{padding-right:2.75rem}.profile-form__toggle-password{position:absolute;right:.375rem;top:50%;transform:translateY(-50%);display:flex;align-items:center;justify-content:center;width:2rem;height:2rem;padding:0;color:var(--bs-muted);background:rgba(0,0,0,0);border:none;border-radius:var(--radius-sm);cursor:pointer}.profile-form__toggle-password:hover{color:var(--bs-body-color)}.profile-form__toggle-password:focus-visible{outline:2px solid var(--bs-primary);outline-offset:2px}.profile-form__alert{padding:.75rem 1rem;font-size:.875rem;line-height:1.45;border-radius:var(--radius-sm)}.profile-form__alert--info{color:var(--text-info-strong);background:rgba(3,105,161,.08);border:1px solid rgba(3,105,161,.15)}.profile-form__alert--error{color:var(--text-danger-strong);background:rgba(220,38,38,.06);border:1px solid rgba(220,38,38,.15)}.profile-form__link-wrap{text-align:right}.profile-form__link{font-size:.875rem;font-weight:500;color:var(--text-brand);text-decoration:none}.profile-form__link:hover{text-decoration:underline}@media(prefers-reduced-motion: reduce){.profile-form__input,.profile-form__select,.profile-form__submit,.profile-setting-action,.profile-toggle-row__action{transition:none}}
.invoice-list{display:flex;flex-direction:column;gap:1rem;max-width:640px;margin-inline:auto}.invoice-card{display:flex;flex-direction:column;gap:0;background:var(--bs-surface);border:1px solid var(--bs-gray-200);border-radius:var(--radius-xl);box-shadow:var(--shadow-md);overflow:hidden;transition:box-shadow var(--motion-fast) ease,border-color var(--motion-fast) ease}.invoice-card:hover{box-shadow:var(--shadow-lg);border-color:rgba(var(--bs-primary-rgb), 0.25)}.invoice-card__header{display:flex;align-items:flex-start;gap:.875rem;padding:1.125rem 1.25rem 1rem;background:linear-gradient(135deg, var(--surface-brand-subtle) 0%, var(--bs-surface) 72%);border-bottom:1px solid var(--bs-gray-200)}.invoice-card__icon{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:var(--radius-md);background:rgba(var(--bs-primary-rgb), 0.12);color:var(--bs-primary)}.invoice-card__title-block{flex:1 1;min-width:0}.invoice-card__title{margin:0;font-family:var(--font-heading);font-size:var(--text-title-md);font-weight:var(--weight-semibold);letter-spacing:var(--tracking-tight);color:var(--heading-color);line-height:1.3}.invoice-card__subtitle{margin:.25rem 0 0;font-size:var(--text-meta);color:var(--bs-muted);line-height:1.4;display:flex;align-items:center;gap:.375rem;flex-wrap:wrap}.invoice-card__badges{display:flex;flex-direction:column;align-items:flex-end;gap:.375rem;flex-shrink:0}.invoice-card__status{display:inline-flex;align-items:center;gap:.3rem;padding:.3rem .625rem;border-radius:999px;font-size:.75rem;font-weight:var(--weight-medium);line-height:1.2;white-space:nowrap}.invoice-card__status--success{color:var(--text-success-strong);background:rgba(21,128,61,.12);border:1px solid rgba(21,128,61,.2)}.invoice-card__status--warning{color:var(--text-warning-strong);background:var(--badge-warning-bg);border:1px solid rgba(180,83,9,.2)}.invoice-card__status--danger{color:var(--text-danger-strong);background:rgba(185,28,28,.1);border:1px solid rgba(185,28,28,.2)}.invoice-card__status--secondary{color:var(--bs-muted);background:var(--bs-gray-100);border:1px solid var(--bs-gray-200)}.invoice-card__permanent{display:inline-block;padding:.2rem .5rem;border-radius:999px;font-size:.6875rem;font-weight:var(--weight-medium);color:var(--text-brand);background:rgba(var(--bs-primary-rgb), 0.1);border:1px solid rgba(var(--bs-primary-rgb), 0.2);white-space:nowrap}.invoice-card__amount-section{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem 1.25rem;border-bottom:1px solid var(--bs-gray-200)}.invoice-card__amount-block{min-width:0}.invoice-card__amount{margin:0;font-family:var(--font-display);font-size:clamp(1.5rem,4vw,1.75rem);font-weight:var(--weight-bold);letter-spacing:var(--tracking-tight);color:var(--heading-color);line-height:1.1}.invoice-card__amount--paid{color:var(--text-success-strong)}.invoice-card__amount--partial{color:var(--text-warning-strong)}.invoice-card__amount-breakdown{margin:.375rem 0 0;font-size:var(--text-meta);color:var(--bs-muted);line-height:1.4}.invoice-card__expiry{display:flex;align-items:flex-start;gap:.375rem;margin:0;font-size:var(--text-meta);color:var(--bs-muted);text-align:right;line-height:1.4;max-width:55%}.invoice-card__details{display:grid;grid-template-columns:1fr;grid-gap:0;gap:0;padding:.25rem 0}@media(min-width: 480px){.invoice-card__details{grid-template-columns:repeat(2, 1fr)}}.invoice-card__detail{display:flex;align-items:flex-start;gap:.75rem;padding:.75rem 1.25rem}@media(min-width: 480px){.invoice-card__detail:nth-child(odd){border-right:1px solid var(--bs-gray-200)}.invoice-card__detail:nth-child(-n+2){border-bottom:1px solid var(--bs-gray-200)}}@media(max-width: 479px){.invoice-card__detail:not(:last-child){border-bottom:1px solid var(--bs-gray-200)}}.invoice-card__detail-icon{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:10px;background:var(--surface-brand-subtle);color:var(--text-brand)}.invoice-card__detail-content{flex:1 1;min-width:0}.invoice-card__detail-label{display:block;margin:0;font-size:.75rem;font-weight:var(--weight-medium);color:var(--bs-muted);line-height:1.3}.invoice-card__detail-value{display:block;margin:.125rem 0 0;font-size:var(--text-body);font-weight:var(--weight-medium);color:var(--bs-body-color);line-height:1.35;word-break:break-word}.invoice-card__detail-value--capitalize{text-transform:capitalize}.invoice-card__footer{padding:1rem 1.25rem 1.125rem;background:var(--bs-gray-100);border-top:1px solid var(--bs-gray-200)}.invoice-card__pay-btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;width:100%;min-height:48px;padding:.75rem 1.25rem;font-size:var(--text-body);font-weight:var(--weight-semibold);color:#fff;text-decoration:none;background:var(--gradient-primary);border:none;border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);cursor:pointer;touch-action:manipulation;transition:box-shadow var(--motion-fast) ease,transform var(--motion-fast) ease}.invoice-card__pay-btn svg{flex-shrink:0}.invoice-card__pay-btn:hover{color:#fff;text-decoration:none;box-shadow:var(--shadow-md);transform:translateY(-1px)}.invoice-card__pay-btn:active{transform:translateY(0)}.invoice-card__pay-btn:focus-visible{outline:2px solid var(--bs-primary);outline-offset:2px}.invoice-card__paid-btn{display:inline-flex;align-items:center;justify-content:center;gap:.25rem;width:100%;min-height:48px;padding:.75rem 1.25rem;font-size:var(--text-body);font-weight:var(--weight-semibold);color:var(--text-success-strong);background:rgba(21,128,61,.08);border:1px solid rgba(21,128,61,.2);border-radius:var(--radius-lg);cursor:default}.invoice-card__paid-btn svg{flex-shrink:0}@media(prefers-reduced-motion: reduce){.invoice-card,.invoice-card__pay-btn{transition:none}.invoice-card:hover,.invoice-card__pay-btn:hover{transform:none}}
@keyframes spin{from{transform:rotate(0deg)}to{transform:rotate(360deg)}}.spinner{animation:spin 1s linear infinite}.profile-image-container{position:relative;display:inline-block}.profile-image-container .avatar-overlay{position:absolute;top:0;left:0;width:100%;height:100%;display:flex;align-items:center;justify-content:center;background-color:rgba(0,0,0,.3);border-radius:50%;opacity:0;transition:opacity .3s ease}.profile-image-container .avatar-overlay:hover{opacity:1}.profile-image-container .avatar-overlay .upload-text{color:#fff;font-size:14px;font-weight:500}.form-control,.form-select{transition:background-color .3s ease,border-color .3s ease}.form-control:focus,.form-select:focus{background-color:var(--bs-gray-100);border-color:var(--bs-primary);box-shadow:0 0 0 .25rem rgba(var(--bs-primary-rgb), 0.25)}.btn-primary{transition:all .3s ease}.btn-primary:hover:not(:disabled){box-shadow:0 4px 8px rgba(0,0,0,.1)}.btn-primary:disabled{cursor:not-allowed}.toast{animation:slideIn .3s forwards}@keyframes slideIn{from{transform:translateX(100%);opacity:0}to{transform:translateX(0);opacity:1}}.profile-page{max-width:480px;margin-inline:auto}@keyframes profile-spin{from{transform:rotate(0deg)}to{transform:rotate(360deg)}}.spinner{animation:profile-spin 1s linear infinite}.profile-form{display:flex;flex-direction:column;gap:1.25rem}.profile-form__avatar{display:flex;justify-content:center;padding:.5rem 0}.profile-form__card{display:flex;flex-direction:column;gap:1rem;padding:1rem;background:var(--bs-surface);border:1px solid var(--bs-gray-200);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}.profile-form__group{display:flex;flex-direction:column;gap:.375rem}.profile-form__label{margin:0;font-size:.8125rem;font-weight:500;color:var(--bs-muted)}.profile-form__input,.profile-form__select{width:100%;padding:.75rem .875rem;font-size:.9375rem;color:var(--bs-body-color);background:var(--bs-gray-100);border:1px solid var(--bs-gray-200);border-radius:var(--radius-sm);transition:border-color .2s ease,box-shadow .2s ease}.profile-form__input::placeholder,.profile-form__select::placeholder{color:var(--bs-muted);opacity:.7}.profile-form__input:focus,.profile-form__select:focus{outline:none;border-color:var(--bs-primary);box-shadow:0 0 0 3px rgba(var(--bs-primary-rgb), 0.15)}.profile-form__select{cursor:pointer;-webkit-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 width=%2712%27 height=%2712%27 viewBox=%270 0 12 12%27%3E%3Cpath fill=%27%23475569%27 d=%27M6 8L1 3h10z%27/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .875rem center;padding-right:2.25rem}.profile-form__submit{display:flex;align-items:center;justify-content:center;gap:.5rem;width:100%;min-height:48px;padding:.875rem 1rem;font-size:.9375rem;font-weight:600;color:#fff;background:var(--gradient-primary);border:none;border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);cursor:pointer;touch-action:manipulation;transition:box-shadow .2s ease,opacity .2s ease}.profile-form__submit:hover:not(:disabled){box-shadow:var(--shadow-md)}.profile-form__submit:disabled{opacity:.65;cursor:not-allowed}.profile-form__submit:focus-visible{outline:2px solid var(--bs-primary);outline-offset:2px}.profile-setting-row{display:flex;align-items:center;justify-content:space-between;gap:1rem;min-height:52px;padding:.75rem 1rem}.profile-setting-row__left{display:flex;align-items:center;gap:.875rem;min-width:0}.profile-setting-row__icon{display:flex;align-items:center;justify-content:center;flex-shrink:0;width:36px;height:36px;border-radius:10px;background:var(--surface-brand-subtle);color:var(--text-brand);font-size:.9375rem}.profile-setting-row__label{margin:0;font-size:.9375rem;font-weight:500;color:var(--bs-body-color);cursor:pointer}.profile-setting-row__switch{flex-shrink:0;margin:0}.profile-setting-row__switch .form-check-input{width:2.75rem;height:1.5rem;cursor:pointer}.profile-setting-row__switch .form-check-input:checked{background-color:var(--bs-primary);border-color:var(--bs-primary)}.profile-setting-row__switch .form-check-input:focus{box-shadow:0 0 0 3px rgba(var(--bs-primary-rgb), 0.2)}.profile-setting-action{display:block;width:100%;padding:.625rem 1rem;font-size:.8125rem;font-weight:500;color:var(--bs-muted);text-align:center;text-decoration:none;background:rgba(0,0,0,0);border:none;border-top:1px solid var(--bs-gray-200);cursor:pointer;touch-action:manipulation;transition:color .2s ease,background-color .2s ease}.profile-setting-action:hover{color:var(--text-brand);background:rgba(var(--bs-primary-rgb), 0.04)}.profile-setting-action:focus-visible{outline:2px solid var(--bs-primary);outline-offset:-2px}.profile-menu-item--button{width:100%;border:none;background:rgba(0,0,0,0);text-align:left;font:inherit}.profile-menu-item--danger{color:var(--text-danger-strong)}.profile-menu-item--danger .profile-menu-item__icon{background:rgba(220,38,38,.08);color:var(--text-danger-strong)}.profile-menu-item--danger .profile-menu-item__chevron{color:var(--text-danger-strong);opacity:.5}.profile-menu-item--danger:hover{background:rgba(220,38,38,.04)}.profile-toggle-row{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;padding:.875rem 1rem}.profile-toggle-row:not(:last-child){border-bottom:1px solid var(--bs-gray-200)}.profile-toggle-row__left{display:flex;align-items:flex-start;gap:.875rem;flex:1 1;min-width:0}.profile-toggle-row__icon{display:flex;align-items:center;justify-content:center;flex-shrink:0;width:36px;height:36px;margin-top:.125rem;border-radius:10px;background:var(--surface-brand-subtle);color:var(--text-brand);font-size:.9375rem}.profile-toggle-row__info{flex:1 1;min-width:0}.profile-toggle-row__title{margin:0;font-size:.9375rem;font-weight:500;color:var(--bs-body-color);line-height:1.3}.profile-toggle-row__description{margin:.25rem 0 0;font-size:.8125rem;color:var(--bs-muted);line-height:1.4}.profile-toggle-row__controls{display:flex;flex-direction:column;align-items:flex-end;gap:.5rem;flex-shrink:0;padding-top:.125rem}.profile-toggle-row__switch{margin:0}.profile-toggle-row__switch .form-check-input{width:2.75rem;height:1.5rem;cursor:pointer}.profile-toggle-row__switch .form-check-input:checked{background-color:var(--bs-primary);border-color:var(--bs-primary)}.profile-toggle-row__switch .form-check-input:focus{box-shadow:0 0 0 3px rgba(var(--bs-primary-rgb), 0.2)}.profile-toggle-row__action{padding:.375rem .75rem;font-size:.75rem;font-weight:500;color:var(--text-danger-strong);background:rgba(220,38,38,.06);border:1px solid rgba(220,38,38,.18);border-radius:var(--radius-sm);cursor:pointer;touch-action:manipulation;transition:background-color .2s ease,border-color .2s ease}.profile-toggle-row__action:hover:not(:disabled){background:rgba(220,38,38,.1);border-color:rgba(220,38,38,.28)}.profile-toggle-row__action:disabled{opacity:.6;cursor:not-allowed}.profile-form__password{position:relative}.profile-form__password .profile-form__input{padding-right:2.75rem}.profile-form__toggle-password{position:absolute;right:.375rem;top:50%;transform:translateY(-50%);display:flex;align-items:center;justify-content:center;width:2rem;height:2rem;padding:0;color:var(--bs-muted);background:rgba(0,0,0,0);border:none;border-radius:var(--radius-sm);cursor:pointer}.profile-form__toggle-password:hover{color:var(--bs-body-color)}.profile-form__toggle-password:focus-visible{outline:2px solid var(--bs-primary);outline-offset:2px}.profile-form__alert{padding:.75rem 1rem;font-size:.875rem;line-height:1.45;border-radius:var(--radius-sm)}.profile-form__alert--info{color:var(--text-info-strong);background:rgba(3,105,161,.08);border:1px solid rgba(3,105,161,.15)}.profile-form__alert--error{color:var(--text-danger-strong);background:rgba(220,38,38,.06);border:1px solid rgba(220,38,38,.15)}.profile-form__link-wrap{text-align:right}.profile-form__link{font-size:.875rem;font-weight:500;color:var(--text-brand);text-decoration:none}.profile-form__link:hover{text-decoration:underline}@media(prefers-reduced-motion: reduce){.profile-form__input,.profile-form__select,.profile-form__submit,.profile-setting-action,.profile-toggle-row__action{transition:none}}.profile-hero{position:relative;display:flex;flex-direction:column;align-items:center;padding:1.75rem 1.25rem 1.5rem;margin-bottom:1.5rem;border-radius:var(--radius-xl);background:var(--gradient-primary);box-shadow:var(--shadow-md);overflow:hidden}.profile-hero::before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 85% 15%, rgba(255, 255, 255, 0.18) 0%, transparent 45%),radial-gradient(circle at 10% 90%, rgba(255, 255, 255, 0.1) 0%, transparent 40%);pointer-events:none}.profile-hero__avatar-wrap{position:relative;z-index:1;padding:3px;border-radius:50%;background:hsla(0,0%,100%,.35);margin-bottom:.875rem}.profile-hero__avatar{display:block;width:88px;height:88px;border-radius:50%;border:3px solid #fff;object-fit:cover;background:var(--bs-surface)}.profile-hero__name{position:relative;z-index:1;margin:0 0 .25rem;font-size:1.125rem;font-weight:600;color:#fff;letter-spacing:-0.01em}.profile-hero__email{position:relative;z-index:1;margin:0;font-size:.8125rem;color:hsla(0,0%,100%,.88)}.profile-menu{display:flex;flex-direction:column;gap:1.25rem}.profile-menu-group__title{margin:0 0 .5rem;padding:0 .25rem;font-family:var(--font-body);font-size:var(--text-eyebrow);font-weight:var(--weight-semibold);letter-spacing:var(--tracking-wide);text-transform:uppercase;color:var(--bs-muted)}.profile-menu-group__card{background:var(--bs-surface);border:1px solid var(--bs-gray-200);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);overflow:hidden}.profile-menu-item{display:flex;align-items:center;justify-content:space-between;gap:.75rem;min-height:52px;padding:.75rem 1rem;text-decoration:none;color:var(--bs-body-color);cursor:pointer;touch-action:manipulation;transition:background-color .2s ease}.profile-menu-item:not(:last-child){border-bottom:1px solid var(--bs-gray-200)}.profile-menu-item:hover{background-color:rgba(var(--bs-primary-rgb), 0.05)}.profile-menu-item:focus-visible{outline:2px solid var(--bs-primary);outline-offset:-2px;z-index:1}.profile-menu-item__left{display:flex;align-items:center;gap:.875rem;min-width:0}.profile-menu-item__icon{display:flex;align-items:center;justify-content:center;flex-shrink:0;width:36px;height:36px;border-radius:10px;background:var(--surface-brand-subtle);color:var(--text-brand);font-size:1.125rem;transition:background-color .2s ease,color .2s ease}.profile-menu-item__icon svg{width:1.125rem;height:1.125rem;flex-shrink:0}.profile-menu-item:hover .profile-menu-item__icon{background:rgba(var(--bs-primary-rgb), 0.14);color:var(--bs-primary-700)}.profile-menu-item__label{font-size:.9375rem;font-weight:500;line-height:1.3}.profile-menu-item__chevron{flex-shrink:0;width:.875rem;height:.875rem;color:var(--bs-muted);opacity:.55;transition:opacity .2s ease,transform .2s ease}.profile-menu-item:hover .profile-menu-item__chevron{opacity:.85;transform:translateX(2px)}.profile-logout-wrap{margin-top:1.5rem}.profile-logout{display:flex;align-items:center;justify-content:center;gap:.5rem;width:100%;min-height:48px;padding:.75rem 1rem;border:1px solid var(--bs-gray-200);border-radius:var(--radius-lg);background:var(--bs-surface);box-shadow:var(--shadow-sm);color:var(--text-danger-strong);font-size:.9375rem;font-weight:500;cursor:pointer;touch-action:manipulation;transition:background-color .2s ease,border-color .2s ease,box-shadow .2s ease}.profile-logout svg{width:1.125rem;height:1.125rem;flex-shrink:0}.profile-logout:hover{background:rgba(220,38,38,.04);border-color:rgba(220,38,38,.22);box-shadow:var(--shadow-md)}.profile-logout:focus-visible{outline:2px solid var(--text-danger-strong);outline-offset:2px}@media(prefers-reduced-motion: reduce){.profile-menu-item,.profile-menu-item__icon,.profile-menu-item__chevron,.profile-logout{transition:none}.profile-menu-item:hover .profile-menu-item__chevron{transform:none}}
.notifications-page{max-width:640px;margin-inline:auto}.notifications-toolbar{display:flex;justify-content:flex-end;margin-bottom:1rem}.notifications-mark-all{display:inline-flex;align-items:center;gap:.375rem;min-height:40px;padding:.5rem 1rem;font-size:var(--text-meta);font-weight:var(--weight-semibold);color:#fff;background:var(--gradient-primary);border:none;border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);cursor:pointer;touch-action:manipulation;transition:box-shadow var(--motion-fast) ease,transform var(--motion-fast) ease}.notifications-mark-all:hover{box-shadow:var(--shadow-md);transform:translateY(-1px)}.notifications-mark-all:active{transform:translateY(0)}.notifications-mark-all:focus-visible{outline:2px solid var(--bs-primary);outline-offset:2px}.notifications-pull{position:relative;overflow:hidden;transition:transform .1s ease-out}.notifications-pull--refreshing{transition:transform .3s ease-out}.notifications-pull__indicator{position:absolute;left:50%;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;justify-content:center;width:100%;height:60px;background:var(--bs-gray-100);border-bottom:1px solid var(--bs-gray-200);pointer-events:none;transition:opacity .2s ease-out}.notifications-pull__indicator-icon{color:var(--bs-primary);margin-bottom:.25rem}.notifications-pull__indicator-icon--spinning{animation:notifications-spin .7s linear infinite}.notifications-pull__indicator-text{font-size:.75rem;color:var(--bs-muted);font-weight:var(--weight-medium)}.notifications-list{display:flex;flex-direction:column;gap:.875rem;padding-bottom:.5rem}.notification-item{position:relative;overflow:hidden;border-radius:var(--radius-xl)}.notification-item__action{position:absolute;top:0;display:flex;align-items:center;justify-content:center;width:80px;height:100%;color:#fff;transition:transform .25s ease}.notification-item__action svg{position:relative;z-index:1}.notification-item__action--delete{right:0;background:linear-gradient(135deg, var(--text-danger-strong), #dc2626);transform:translateX(100%)}.notification-item__action--delete.is-visible{transform:translateX(0)}.notification-item__action--read{left:0;background:linear-gradient(135deg, var(--text-success-strong), #16a34a);transform:translateX(-100%)}.notification-item__action--read.is-visible{transform:translateX(0)}.notification-card{position:relative;display:flex;flex-direction:column;gap:.5rem;padding:1rem 1.125rem;background:var(--bs-surface);border:1px solid var(--bs-gray-200);border-radius:var(--radius-xl);box-shadow:var(--shadow-md);cursor:grab;touch-action:pan-y;transition:box-shadow var(--motion-fast) ease,border-color var(--motion-fast) ease,opacity var(--motion-fast) ease,transform .25s cubic-bezier(0.4, 0, 0.2, 1)}.notification-card::before{content:"";position:absolute;top:0;left:0;right:0;height:3px;border-radius:var(--radius-xl) var(--radius-xl) 0 0;background:var(--bs-gray-300);opacity:.5}.notification-card--unread{border-color:rgba(var(--bs-primary-rgb), 0.35);box-shadow:var(--shadow-lg)}.notification-card--unread::before{background:var(--gradient-primary);opacity:1}.notification-card--read{opacity:.92;box-shadow:var(--shadow-sm)}.notification-card.is-dragging{cursor:grabbing;transition:transform .1s ease-out}.notification-card:not(.is-dragging):hover{border-color:rgba(var(--bs-primary-rgb), 0.25)}.notification-card__header{display:flex;align-items:flex-start;gap:.75rem}.notification-card__icon{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:var(--radius-md);background:var(--surface-brand-subtle);color:var(--text-brand)}.notification-card--read .notification-card__icon{background:var(--bs-gray-100);color:var(--bs-muted)}.notification-card__title-row{flex:1 1;min-width:0;display:flex;align-items:flex-start;justify-content:space-between;gap:.5rem}.notification-card__title{margin:0;font-size:var(--text-body);font-weight:var(--weight-semibold);color:var(--heading-color);line-height:1.35;word-break:break-word}.notification-card--read .notification-card__title{font-weight:var(--weight-medium);color:var(--bs-muted)}.notification-card__mark-read{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;padding:0;border:1px solid rgba(21,128,61,.25);border-radius:var(--radius-md);background:rgba(21,128,61,.08);color:var(--text-success-strong);cursor:pointer;transition:background-color var(--motion-fast) ease,border-color var(--motion-fast) ease}.notification-card__mark-read:hover{background:rgba(21,128,61,.14);border-color:rgba(21,128,61,.35)}.notification-card__mark-read:focus-visible{outline:2px solid var(--bs-primary);outline-offset:2px}.notification-card__badge{display:inline-flex;align-items:center;gap:.25rem;flex-shrink:0;padding:.2rem .5rem;font-size:.6875rem;font-weight:var(--weight-medium);color:var(--text-success-strong);background:rgba(21,128,61,.1);border:1px solid rgba(21,128,61,.2);border-radius:999px;white-space:nowrap}.notification-card__message{margin:0;padding-left:calc(40px + .75rem);font-size:var(--text-meta);color:var(--bs-body-color);line-height:1.5}.notification-card--read .notification-card__message{color:var(--bs-muted)}.notification-card__time{display:flex;align-items:center;gap:.35rem;padding-left:calc(40px + .75rem);font-size:.75rem;color:var(--bs-muted)}@keyframes notifications-spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion: reduce){.notifications-mark-all,.notification-card,.notification-item__action,.notifications-pull{transition:none}.notifications-pull__indicator-icon--spinning{animation:none}.notifications-mark-all:hover{transform:none}}
.news-page{max-width:1200px;margin:0 auto;padding-bottom:1rem}.news-page__intro{margin-bottom:1.75rem}.news-page__intro--subheader-only{margin-bottom:1.25rem}.news-page__title{margin:0 0 .35rem;font-family:var(--font-heading);font-size:clamp(1.375rem,2.8vw,1.75rem);font-weight:var(--weight-bold);letter-spacing:var(--tracking-tight);color:var(--heading-color);line-height:1.25}.news-page__subtitle{margin:0;color:var(--text-meta);font-size:1rem;line-height:1.5}.news-page__featured{margin-bottom:1.5rem}.news-page__grid{display:grid;grid-template-columns:repeat(auto-fill, minmax(min(100%, 320px), 1fr));grid-gap:1.25rem;gap:1.25rem}.news-page__empty{text-align:center;padding:3.5rem 1.5rem;background:var(--bs-surface);border:1px solid var(--bs-gray-200);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}.news-page__empty-title{margin:0 0 .5rem;font-size:1.25rem;font-weight:600;color:var(--bs-body-color)}.news-page__empty-text{margin:0;color:var(--text-meta)}.news-article{max-width:720px;margin:0 auto;width:100%}.news-article__hero{position:relative;width:100%;aspect-ratio:16/9;max-height:420px;margin-bottom:1.5rem;border-radius:var(--radius-xl);overflow:hidden;background:var(--gradient-primary);box-shadow:var(--shadow-md)}@media(max-width: 768px){.news-article__hero{max-height:260px;border-radius:var(--radius-lg);margin-bottom:1.25rem}}.news-article__hero-image{width:100%;height:100%;object-fit:cover;object-position:center;display:block}.news-article__hero-overlay{position:absolute;inset:0;background:linear-gradient(180deg, rgba(17, 24, 39, 0.05) 0%, rgba(17, 24, 39, 0.35) 100%);pointer-events:none}.news-article__hero-badge{position:absolute;top:1rem;left:1rem;z-index:1}.news-article__header{margin-bottom:1.5rem}.news-article__meta{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem 1.25rem;margin-bottom:1rem;color:var(--text-meta);font-size:.9rem}.news-article__meta-item{display:inline-flex;align-items:center;gap:.45rem}.news-article__title{margin:0;font-family:var(--font-heading);font-size:clamp(1.5rem,4vw,2rem);font-weight:var(--weight-bold);line-height:1.25;letter-spacing:var(--tracking-tight);color:var(--heading-color);word-break:break-word}.news-article__divider{height:1px;margin:0 0 1.5rem;background:var(--bs-gray-200);border:none}.news-article__body{font-family:"Barlow",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-size:1rem;font-weight:400;line-height:1.6;letter-spacing:.01em;color:var(--bs-body-color);overflow-wrap:break-word}.news-article__body p{margin:0 0 .75rem}.news-article__body p:last-child{margin-bottom:0}.news-article__body p:empty{display:none}.news-article__body div{margin-bottom:.75rem}.news-article__body div:last-child{margin-bottom:0}.news-article__body br{line-height:1.6}.news-article__body img,.news-article__body video,.news-article__body iframe{max-width:100%;height:auto;border-radius:var(--radius-md)}.news-article__body table{display:block;max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;border-collapse:collapse;margin-bottom:1.25rem}.news-article__body th,.news-article__body td{padding:.625rem .75rem;border:1px solid var(--bs-gray-200);text-align:left;color:var(--bs-body-color)}.news-article__body th{background:var(--bs-gray-100);font-weight:600}.news-article__body a{color:var(--text-brand) !important;text-decoration:underline;text-underline-offset:2px;word-break:break-word}.news-article__body a:hover{color:var(--bs-primary) !important}.news-article__body ul,.news-article__body ol{margin:0 0 .75rem;padding-left:1.25rem}.news-article__body li{margin-bottom:.25rem;line-height:1.6}.news-article__body h2,.news-article__body h3,.news-article__body h4{margin:1.25rem 0 .5rem;line-height:1.35;font-family:var(--font-heading);letter-spacing:var(--tracking-tight);color:var(--heading-color);font-weight:var(--weight-semibold)}.news-article__body blockquote{margin:1rem 0;padding:.75rem 1rem;border-left:4px solid var(--bs-primary);background:var(--surface-brand-subtle);border-radius:0 var(--radius-md) var(--radius-md) 0;color:var(--bs-body-color)}.news-article__body strong{font-weight:600;color:var(--bs-body-color)}.news-article__body *{background-color:rgba(0,0,0,0) !important;color:inherit !important}.news-article__body a *{color:inherit !important}.news-article__skeleton{display:flex;flex-direction:column;gap:1rem}.news-article__skeleton-line{height:1rem;border-radius:var(--radius-sm);background:linear-gradient(90deg, var(--bs-gray-100) 25%, var(--bs-gray-200) 50%, var(--bs-gray-100) 75%);background-size:200% 100%;animation:news-shimmer 1.4s ease-in-out infinite}.news-article__skeleton-line--title{height:2rem;width:85%}.news-article__skeleton-line--short{width:40%}.news-article__skeleton-line--hero{aspect-ratio:16/9;max-height:320px;width:100%;height:auto}@keyframes news-shimmer{0%{background-position:200% 0}100%{background-position:-200% 0}}@media(prefers-reduced-motion: reduce){.news-article__skeleton-line{animation:none}}
.photos-page{padding:0;max-width:1200px;margin:0 auto}.photos-filters{display:grid;grid-template-columns:1fr 1fr;grid-gap:.875rem;gap:.875rem;margin-bottom:1.25rem;padding:1rem 1.125rem;background:var(--bs-surface);border:1px solid var(--bs-gray-200);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}@media(min-width: 1024px){.photos-filters{grid-template-columns:repeat(4, minmax(0, 1fr));align-items:end;padding:1.125rem 1.25rem}}.photos-filter-field{display:flex;flex-direction:column;gap:.375rem;min-width:0}.photos-filter-label{margin:0;font-size:.8125rem;font-weight:var(--weight-medium);color:var(--bs-muted)}.photos-filter-select{width:100%;min-height:48px;padding:.75rem 2.25rem .75rem .875rem;font-size:var(--text-body);font-family:inherit;color:var(--bs-body-color);background-color:var(--bs-gray-100);background-image:url("data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 width=%2712%27 height=%2712%27 viewBox=%270 0 12 12%27%3E%3Cpath fill=%27%23475569%27 d=%27M6 8L1 3h10z%27/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .875rem center;border:1px solid var(--bs-gray-200);border-radius:var(--radius-md);box-shadow:inset 0 1px 0 rgba(17,24,39,.02);cursor:pointer;-webkit-appearance:none;appearance:none;transition:border-color .2s ease,box-shadow .2s ease,background-color .2s ease}.photos-filter-select:hover:not(:disabled){border-color:var(--bs-gray-300)}.photos-filter-select:focus{outline:none;border-color:var(--bs-primary);background-color:var(--bs-surface);box-shadow:0 0 0 3px rgba(var(--bs-primary-rgb), 0.15)}.photos-filter-select:disabled{opacity:.65;cursor:not-allowed}.photos-filter-switch{display:flex;align-items:center;min-height:48px;min-width:0;grid-column:1/-1;padding:.625rem .875rem;background:var(--bs-gray-100);border:1px solid var(--bs-gray-200);border-radius:var(--radius-md);box-shadow:inset 0 1px 0 rgba(17,24,39,.02)}@media(min-width: 1024px){.photos-filter-switch{grid-column:auto;align-self:end}}.photos-filter-switch__check.form-check.form-switch{display:flex;align-items:center;gap:.75rem;width:100%;min-height:44px;margin:0;padding-left:0}.photos-filter-switch__check .form-check-input{width:2.75rem;min-width:2.75rem;height:1.5rem;margin:0;margin-left:0;flex-shrink:0;float:none;position:static;cursor:pointer}.photos-filter-switch__check .form-check-input:checked{background-color:var(--bs-primary);border-color:var(--bs-primary)}.photos-filter-switch__check .form-check-input:focus{box-shadow:0 0 0 3px rgba(var(--bs-primary-rgb), 0.2)}.photos-filter-switch__check .form-check-label{flex:1 1;min-width:0;margin:0;cursor:pointer;padding:.375rem 0;line-height:1.3;font-size:var(--text-body);font-weight:var(--weight-medium);color:var(--bs-body-color)}.photos-grid{display:grid;grid-template-columns:repeat(2, minmax(0, 1fr));grid-gap:1rem;gap:1rem;margin-bottom:2rem}@media(min-width: 768px){.photos-grid{grid-template-columns:repeat(auto-fill, minmax(min(100%, 280px), 1fr));gap:1.25rem}}.photos-empty{text-align:center;padding:3rem;color:var(--bs-muted)}.photos-load-more-sentinel{height:1px;visibility:hidden;pointer-events:none}.photos-load-more-spinner{display:flex;justify-content:center;padding:1.5rem}@media(prefers-reduced-motion: reduce){.photos-filter-select{transition:none}}.photos-page .photos-filter-switch__check.form-switch .form-check-input{margin-left:0}
