/* Visual treatment from the supplied September 2026 PDF designs. */
:root {
  --moment-coral: #ff8c84;
  --moment-yellow: #ffdc00;
  --moment-nav-height: 72px;
}

html, body { background: #fff; color: #111; }
.day-dialog.is-unavailable-dialog .modal-card-head .delete { display: none; }
.navbar { display: none; }
#main > .app-shell.columns { display: block; margin: 0; min-height: 100dvh; }
.app-shell .app-content { padding: 0; width: 100%; }
.app-shell .main-section {
  margin: 0 auto;
  padding: 28px 18px calc(var(--moment-nav-height) + env(safe-area-inset-bottom) + 24px);
  max-width: 1000px;
  min-height: 100dvh;
}
.app-shell .sidebar {
  position: fixed;
  inset: auto 0 0;
  width: 100%;
  min-height: 0;
  height: calc(var(--moment-nav-height) + env(safe-area-inset-bottom));
  padding: 0 4px env(safe-area-inset-bottom);
  background: #000;
  border: 0;
  box-shadow: none;
  z-index: 60;
}
.app-shell .sidebar .section { margin: 0 auto; padding: 0; max-width: 700px; }
.app-shell .sidebar .menu-list {
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: minmax(0, 1fr);
  grid-template-columns: none;
  margin: 0;
  gap: 0;
}
.app-shell .sidebar .menu-list li { min-width: 0; }
.app-shell .sidebar .menu-list li a {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: 5px;
  min-height: var(--moment-nav-height);
  padding: 6px 1px;
  color: #fff !important;
  background: #000 !important;
  border: 0;
  border-radius: 0;
  font-size: 10px;
  font-weight: 400;
  line-height: 1.25;
  text-align: center;
  white-space: normal;
}
.app-shell .sidebar .menu-list li a.is-active { color: var(--moment-coral) !important; }
.app-shell .mobile-nav-icon { display: flex; width: 28px; height: 28px; flex: 0 0 28px; }
.app-shell .nav-icon { width: 28px; height: 28px; stroke: currentColor; }
.app-shell .mobile-nav-profile-photo:not(.is-hidden) {
  display: block;
  position: static;
  width: 28px;
  height: 28px;
  object-fit: cover;
  border-radius: 50%;
}
.app-shell .nav-profiel:has(.mobile-nav-profile-photo:not(.is-hidden)) .mobile-nav-icon { display: none; }
.nav-icon-verhaal { display: none; }
.app-shell .nav-verhaal .mobile-nav-icon { overflow: visible; }
.app-shell .nav-verhaal .nav-icon-verhaal { display: block; width: 32px; height: 42px; max-width: none; object-fit: contain; transform: translateY(-4px); filter: none; }
.profile-sparkles {
  filter: invert(84%) sepia(94%) saturate(1553%) hue-rotate(359deg) brightness(105%) contrast(104%);
}
.app-shell .sidebar a:focus-visible, .day-tile:focus-visible {
  outline: 3px solid var(--moment-yellow);
  outline-offset: -3px;
}

.app-shell:has(.traject-page) .main-section {
  padding: 30px 16px calc(var(--moment-nav-height) + env(safe-area-inset-bottom) + 24px);
}
.traject-page .traject-page-header {
  position: relative;
  display: block;
  margin: 0 20px 30px;
  min-height: 155px;
}
.traject-page .traject-page-header h1 {
  font-size: 36px;
  font-weight: 400;
  line-height: 1.2;
  color: var(--moment-coral);
  margin: 10px 48px 10px 0;
}
.traject-page .traject-page-header p {
  font-size: 15px;
  line-height: 1.4;
  font-weight: 400;
  white-space: pre-line;
}
.journey-help { position: absolute; right: 0; top: -8px; z-index: 5; }
.journey-help summary {
  list-style: none;
  cursor: pointer;
  display: grid;
  place-items: center;
  height: 44px;
  width: 44px;
  font-size: 22px;
}
.journey-help summary::-webkit-details-marker { display: none; }
.journey-help > div {
  position: absolute;
  right: 0;
  width: 270px;
  max-width: calc(100vw - 56px);
  background: #fff;
  border: 1px solid #ccc;
  padding: 18px;
  box-shadow: 0 4px 18px #0002;
}
.journey-help h2 { font-size: 17px; margin-bottom: 8px; }
.journey-help a { display: inline-block; margin-top: 16px; color: #952f29; text-decoration: underline; }
.traject-page .day-grid { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; gap: 9px !important; }
.traject-page .day-logo-placeholder img {
  position: absolute !important;
  inset: 0 !important;
  height: 100% !important;
  width: 100% !important;
  object-fit: cover !important;
}
.traject-page .day-logo-placeholder span {
  position: absolute;
  bottom: 9% !important;
  left: 50%;
  transform: translateX(-50%);
  min-width: 0 !important;
  width: 70%;
  max-width: 90%;
  padding: 1px 3px !important;
  border-radius: 30px;
  background: #fff0edeb;
  color: #222;
  font-size: 14px !important;
  font-weight: 400;
  line-height: 1.4;
  text-align: center;
}
.traject-page .is-extra-moment .day-logo-placeholder span {
  width: 90%;
  font-size: clamp(9px, 2.5vw, 12px) !important;
  overflow-wrap: anywhere;
}
.day-text-preview {
  display: flex;
  align-items: center;
  justify-content: center;
  -webkit-line-clamp: unset;
  height: 100%;
  padding: 10px;
  margin: 0;
  font-size: 10px;
  text-align: center;
  line-height: 1.35;
  overflow: hidden;
}

.day-upload-backdrop.modal {
  padding: 20px 14px calc(var(--moment-nav-height) + env(safe-area-inset-bottom) + 20px);
  z-index: 50;
}
.day-upload-backdrop.modal { background: #f9e5ed; }
.day-upload-backdrop .modal-background,
.day-upload-backdrop.is-upload-dialog .modal-background {
  background: #f9e5ed url('../img/moment-background.jpg') center / cover no-repeat;
}
.day-upload-backdrop .day-dialog.modal-card {
  width: min(100%, 520px);
  max-width: 520px;
  max-height: calc(100dvh - var(--moment-nav-height) - env(safe-area-inset-bottom) - 40px);
  margin: 0 auto;
  border: 1px solid #b5b5b5;
  border-radius: 0;
  box-shadow: none;
  background: #fff;
}
.day-upload-backdrop .day-dialog .modal-card-head {
  min-height: 62px;
  padding: 24px 52px 14px;
  position: relative;
  border: 0;
  background: #fff;
}
.day-upload-backdrop .day-dialog .modal-card-title {
  flex: 0 1 auto;
  margin: auto;
  min-width: 84px;
  border-radius: 30px;
  padding: 3px 14px;
  background: #f6f5fa;
  font-size: 16px;
  font-weight: 400;
  text-align: center;
}
.day-upload-backdrop .day-dialog .delete {
  top: 4px;
  right: 4px;
  width: 44px;
  height: 44px;
  min-width: 44px;
  min-height: 44px;
  max-width: 44px;
  max-height: 44px;
  background: radial-gradient(circle, #b5b5b5 0 12px, transparent 13px);
}
.day-upload-backdrop .day-dialog .modal-card-body { padding: 0 18px 24px; overflow-y: auto; }
.day-dialog.is-filled-dialog .day-dialog-photo img { height: auto; max-height: none; object-fit: contain; }
.day-dialog.is-filled-dialog .day-dialog-photo-meta { font-size: 15px; line-height: 1.45; padding: 6px 4px; }
.day-dialog .is-text-moment .day-dialog-photo-meta {
  display: flex;
  align-items: center;
  justify-content: center;
  aspect-ratio: 1;
  padding: 24px;
  background: var(--moment-coral);
  color: #111;
  text-align: center;
  font-size: 19px;
}
.upload-logo-card img { width: 100%; height: 100%; object-fit: cover; }
.day-dialog .upload-prompt { font-size: 15px; line-height: 1.4; }
.day-dialog .day-dialog-delete-photo { font-size: 12px; min-height: 36px; }
.delete-confirmation-dialog { z-index: 100; }
#notification-area { z-index: 110; bottom: calc(var(--moment-nav-height) + env(safe-area-inset-bottom)); }

.app-shell.page-profile, .app-shell.page-story, .app-shell.page-login { background: var(--moment-coral); }
.page-profile .main-section, .page-story .main-section, .page-login .main-section { max-width: 560px; }
.page-profile .profile-name { color: #fff; text-align: center; font-size: 36px; font-weight: 400; margin: 12px 0 20px; }
.page-profile .profile-card { background: transparent; border: 0; border-radius: 0; box-shadow: none; max-width: none; overflow: visible; }
.page-profile .profile-card-header { padding: 0; background: transparent; border: 0; }
.page-profile .profile-photo-editor { position: relative; display: flex; flex-direction: column; align-items: center; gap: 12px; width: 100%; }
.page-profile .profile-photo-preview, .page-profile .profile-photo-placeholder {
  width: 116px;
  height: 116px;
  border: 3px solid var(--moment-yellow);
  border-radius: 50%;
  overflow: hidden;
  background: #f1fbff;
}
.page-profile .profile-photo-preview img { width: 100%; height: 100%; object-fit: cover; }
.page-profile .profile-photo-placeholder { display: grid; place-items: center; color: #7c8f98; font-weight: 400; }
.profile-sparkles { position: absolute; width: 36px; height: 36px; left: calc(50% + 35px); top: -12px; }
.page-profile .profile-photo-button, .page-profile .profile-photo-save {
  width: auto;
  min-height: 36px;
  font-size: 12px;
  padding: 8px 16px;
  border-radius: 8px;
  border: 0;
  background: #fff;
  color: #222;
}
.page-profile .profile-card-body { padding: 28px 14px; }
.profile-overview-link { color: #702b27; display: block; text-align: center; margin-bottom: 20px; text-decoration: underline; }
.page-profile .profile-table, .page-profile .profile-table tbody { background: transparent; }
.page-profile .profile-table tr { display: block; border: 0; padding: 0 0 20px; }
.page-profile .profile-table th { display: block; font-size: 14px; color: #111; font-weight: 400; padding: 0 12px 5px; }
.page-profile .profile-table td { display: block; width: 100%; background: #fff; color: #333; border-radius: 16px; font-size: 15px; font-weight: 400; padding: 14px 16px; }
.story-page { min-height: calc(100dvh - 140px); display: flex; flex-direction: column; justify-content: center; align-items: center; }
.story-page h1 { color: #fff; text-align: center; font-size: 25px; font-weight: 400; line-height: 1.4; margin: 0 0 -12px; z-index: 1; }
.story-page img { width: min(100%, 400px); aspect-ratio: 1; height: auto; }
.home-welcome-logo { width: min(100%, 400px); }
.page-login .title { color: #fff; font-size: 34px; margin: 16px 0 30px; }
.page-login .label { color: #111; font-weight: 400; font-size: 15px; }
.page-login .input { border: 0; border-radius: 16px; height: 46px; }
.page-login .field { margin-bottom: 22px; }
.page-login .button.is-primary { background: #111; color: #fff; border: 0; border-radius: 8px; }
.page-login a[href="/inloggen"] { display: block; text-align: center; }
.page-login a[href="/inloggen"],
.page-login a[href="/inloggen"]:hover,
.page-login a[href="/inloggen"]:focus,
.page-login a[href="/inloggen"]:visited { color: #fff; }

@media (min-width: 769px) {
  .app-shell:has(.traject-page) .main-section { padding-top: 40px; }
  .traject-page .traject-page-header { min-height: 0; max-width: 600px; margin-bottom: 32px !important; }
  .traject-page .day-grid { grid-template-columns: repeat(5, minmax(0, 1fr)) !important; gap: 12px !important; }
  .day-text-preview { font-size: 13px; padding: 16px; }
  .app-shell .sidebar .menu-list li a { font-size: 12px; }
  .page-profile .main-section, .page-login .main-section { padding-top: 50px; }
}

@media (max-width: 359px) {
  .traject-page .traject-page-header { margin-left: 8px; margin-right: 8px; }
  .traject-page .traject-page-header h1 { font-size: 32px; }
  .traject-page .day-logo-placeholder span { font-size: 12px !important; }
  .day-text-preview { font-size: 9px; padding: 6px; }
}

.page-profile .main-section { max-width: 480px; padding-top: 40px; }
.page-profile .profile-name { margin: 4px 0 14px; font-size: 30px; line-height: 1.2; }
.page-profile .profile-photo-editor { height: 92px; }
.page-profile .profile-photo-preview,
.page-profile .profile-photo-placeholder { width: 92px; height: 92px; flex: 0 0 92px; border: 3px solid #fcd205; box-shadow: none; }
.page-profile .profile-sparkles { width: 26px; height: 35px; left: calc(50% + 22px); top: -10px; filter: none; pointer-events: none; z-index: 1; }
.profile-photo-picker { position: absolute; top: 0; left: calc(50% - 46px); width: 92px; height: 92px; border-radius: 50%; cursor: pointer; }
.profile-photo-picker input { width: 100%; height: 100%; opacity: 0; cursor: pointer; }
.profile-photo-picker:focus-within { outline: 3px solid #fff; outline-offset: 4px; }
.page-profile .profile-card-body { padding: 46px 20px 0; }
.profile-scores .profile-score-group + .profile-score-group { margin-top: 52px; }
.profile-scores .field { margin-bottom: 14px; }
.profile-scores label { display: block; font-size: 14px; font-weight: 400; line-height: 1.4; padding: 0 14px 5px; }
.profile-scores .input { height: 44px; border: 0; border-radius: 18px; background: #fff; color: #222; padding: 10px 18px; font-size: 14px; box-shadow: none; }
.profile-scores .input::placeholder { color: #aaa; opacity: 1; }
.profile-scores .input:disabled { background: #fff; opacity: 1; color: #aaa; }
.profile-scores .input:focus { outline: 2px solid #852d27; outline-offset: 2px; }
.profile-save-row { display: flex; align-items: center; gap: 12px; margin: 24px 0 16px; font-size: 12px; }
.profile-save-row .button { background: #fff; color: #222; border: 0; border-radius: 8px; min-height: 40px; padding: 8px 20px; }
.page-profile .profile-overview-link { font-size: 12px; margin: 0; }
@media (max-width: 359px) {
  .page-profile .profile-card-body { padding-left: 8px; padding-right: 8px; }
  .profile-scores label, .profile-scores .input { font-size: 13px; }
}

.app-shell.page-onboarding { background: var(--moment-coral); }
.page-onboarding .sidebar { display: none; }
.page-onboarding .main-section { max-width: 440px; padding: 42px 28px max(28px, env(safe-area-inset-bottom)); }
.onboarding-page h1 { margin: 0 0 6px; color: #fff; font-size: 36px; line-height: 1.2; font-weight: 400; }
.onboarding-page > p { font-size: 14px; margin-bottom: 24px; }
.onboarding-page fieldset { border: 0; margin: 0; padding: 0; min-width: 0; }
.onboarding-fields { margin: 0 6px; }
.onboarding-fields .field { margin-bottom: 16px; }
.onboarding-fields label { display: block; font-size: 14px; line-height: 1.4; padding: 0 16px 5px; }
.onboarding-fields .input { height: 44px; border: 0; border-radius: 18px; padding: 10px 18px; font-size: 14px; box-shadow: none; background: #fff; color: #222; }
.onboarding-fields .input::placeholder { color: #aaa; opacity: 1; }
.onboarding-fields .input:focus { outline: 2px solid #852d27; outline-offset: 2px; }
.onboarding-photo { margin: 46px 0 28px; text-align: center; }
.onboarding-photo > p { font-size: 14px; margin-bottom: 18px; }
.onboarding-photo-editor { position: relative; width: min(100%, 232px); aspect-ratio: 1; margin: auto; }
.onboarding-photo-editor .profile-photo-preview,
.onboarding-photo-editor .profile-photo-placeholder { position: absolute; inset: 0; width: 100%; height: 100%; margin: 0; border: 3px solid #fcd205; border-radius: 50%; background: #fff; overflow: hidden; box-shadow: none; }
.onboarding-photo-editor .profile-photo-preview img { width: 100%; height: 100%; object-fit: cover; }
.onboarding-photo-editor .profile-photo-placeholder img { width: 100%; height: 100%; object-fit: cover; opacity: 0.25; }
.onboarding-photo-editor .profile-photo-placeholder span { position: absolute; top: 50%; left: 0; width: 100%; transform: translateY(-50%); color: #8295a0; font-size: 14px; font-weight: 400; }
.onboarding-stars { position: absolute; right: -8px; top: -24px; width: 72px; height: 96px; pointer-events: none; z-index: 1; }
.onboarding-photo-picker { position: absolute; inset: 0; border-radius: 50%; cursor: pointer; }
.onboarding-photo-picker input { width: 100%; height: 100%; opacity: 0; cursor: pointer; }
.onboarding-photo-picker:focus-within { outline: 3px solid #fff; outline-offset: 4px; }
.onboarding-page .onboarding-submit { display: block; margin: 0 auto; min-height: 44px; border: 0; border-radius: 8px; background: #fff; color: #222; padding: 10px 24px; font-size: 14px; }
.existing-account-link { display: block; margin-top: 18px; text-align: center; font-size: 13px; color: #702b27; text-decoration: underline; }
.page-onboarding #notification-area { bottom: 12px; }
.onboarding-fields .input[aria-invalid="true"] { outline: 2px solid #a12a28; outline-offset: 2px; }
.registration-feedback { margin: 12px 0 20px; padding: 14px 16px; background: #fff7f5; border-left: 3px solid #a12a28; border-radius: 6px; color: #502420; font-size: 13px; line-height: 1.5; overflow-wrap: anywhere; }
.registration-feedback strong { display: block; font-size: 14px; margin-bottom: 5px; }
.registration-feedback p { margin: 0; }
.registration-feedback a { display: inline-block; padding: 10px 0 2px; color: #82231f; text-decoration: underline; }
@media (max-width: 359px) {
  .page-onboarding .main-section { padding-left: 18px; padding-right: 18px; }
  .onboarding-page h1 { font-size: 32px; }
  .onboarding-fields label, .onboarding-fields .input { font-size: 13px; }
}
