[data-accent="purple"]{--cashbox-accent: oklch(0.53 0.22 295)}[data-accent="green"]{--cashbox-accent: oklch(0.55 0.15 150)}[data-accent="orange"]{--cashbox-accent: oklch(0.6 0.18 45)}[data-accent="red"]{--cashbox-accent: oklch(0.55 0.21 25)}.page-content{margin: 0 auto;max-width: 60rem;width: 100%}.navbar-logo{flex: none;width: 40px;height: 40px;margin-inline-end: 4px}@media (max-width: 600px){.navbar-title{position: absolute;width: 1px;height: 1px;overflow: hidden;clip-path: inset(50%);white-space: nowrap}}.login-logo{flex: none;width: 128px;height: 128px}.login-title{margin: 0}.dashboard-title{margin: 0;font-size: var(--lumo-font-size-xl)}.summary-cards{display: grid;grid-template-columns: repeat(auto-fit,minmax(12rem,1fr));gap: var(--lumo-space-m);width: 100%}.summary-card{display: flex;flex-direction: column;gap: var(--lumo-space-xs);padding: var(--lumo-space-m);border-radius: var(--lumo-border-radius-l);background: var(--lumo-contrast-5pct)}.summary-card__label{color: var(--lumo-secondary-text-color);font-size: var(--lumo-font-size-s)}.summary-card__value{font-size: var(--lumo-font-size-xxl);font-weight: 600;font-variant-numeric: tabular-nums}.booking-actions{display: flex;flex-wrap: wrap;gap: var(--lumo-space-s);width: 100%}.booking-actions vaadin-button{flex: 1 1 10rem}@media (max-width: 600px){.booking-actions vaadin-button[theme~="primary"]{flex-basis: 100%}}.goal-list{display: flex;flex-direction: column;gap: var(--lumo-space-m);width: 100%}.goal-list__empty{margin: 0;color: var(--lumo-secondary-text-color)}.goal-row__head{display: flex;flex-wrap: wrap;justify-content: space-between;gap: var(--lumo-space-xs) var(--lumo-space-m)}.goal-row__name{font-weight: 600}.goal-row__title{display: flex;flex-wrap: wrap;align-items: center;gap: var(--lumo-space-xs) var(--lumo-space-s)}.goal-row__amounts{color: var(--lumo-secondary-text-color);font-size: var(--lumo-font-size-s);font-variant-numeric: tabular-nums}.goal-row--link{display: flex;align-items: center;gap: var(--lumo-space-m);margin: calc(var(--lumo-space-xs) * -1) calc(var(--lumo-space-s) * -1);padding: var(--lumo-space-xs) var(--lumo-space-s);border-radius: var(--lumo-border-radius-m);color: inherit;text-decoration: none}.goal-row--link:hover{background: var(--lumo-contrast-5pct)}.goal-row__body{flex: 1 1 auto;min-width: 0}.section-header{display: flex;flex-wrap: wrap;align-items: baseline;justify-content: space-between;gap: var(--lumo-space-s);width: 100%}.section-header h3{margin: var(--lumo-space-m) 0 0}.page-header{display: flex;flex-wrap: wrap;align-items: center;justify-content: space-between;gap: var(--lumo-space-s) var(--lumo-space-m);width: 100%}.page-title{margin: 0;font-size: var(--lumo-font-size-xl)}.goal-item{display: flex;align-items: stretch;border-radius: var(--lumo-border-radius-l)}.goal-item--card{background: var(--lumo-contrast-5pct)}.goal-item--row{margin: calc(var(--lumo-space-xs) * -1) calc(var(--lumo-space-s) * -1);border-radius: var(--lumo-border-radius-m)}.goal-item--row>.goal-row--link{flex: 1 1 auto;min-width: 0;margin: 0}.goal-item--row>.goal-item__handle{border-radius: var(--lumo-border-radius-m) 0 0 var(--lumo-border-radius-m)}.goal-item--row>.goal-item__handle + .goal-row--link{padding-left: 0;border-radius: 0 var(--lumo-border-radius-m) var(--lumo-border-radius-m) 0}.goal-item__handle{flex: none;display: flex;align-items: center;justify-content: center;width: 2.5rem;margin: 0;padding: 0;border: none;border-radius: var(--lumo-border-radius-l) 0 0 var(--lumo-border-radius-l);background: transparent;color: var(--lumo-tertiary-text-color);cursor: grab;touch-action: none;user-select: none;-webkit-user-select: none;-webkit-touch-callout: none}.goal-item__handle::before{content: "";width: 12px;height: 18px;background: radial-gradient(circle,currentColor 1.5px,transparent 2px) 0 0 / 6px 6px}.goal-item__handle:hover{background: var(--lumo-contrast-5pct);color: var(--lumo-secondary-text-color)}.goal-item__handle:focus-visible{outline: 2px solid var(--lumo-primary-color);outline-offset: -2px}.goal-item--dragging{background: linear-gradient(var(--lumo-contrast-5pct),var(--lumo-contrast-5pct)),var(--lumo-base-color);box-shadow: var(--lumo-box-shadow-m)}.goal-item-placeholder{box-sizing: border-box;border: 2px dashed var(--lumo-contrast-20pct);border-radius: var(--lumo-border-radius-l)}html.goal-sorting,html.goal-sorting *{cursor: grabbing !important;user-select: none;-webkit-user-select: none}.goal-card{flex: 1 1 auto;min-width: 0;display: flex;align-items: flex-start;gap: var(--lumo-space-m);width: 100%;box-sizing: border-box;padding: var(--lumo-space-m);border: none;border-radius: var(--lumo-border-radius-l);background: transparent;color: inherit;font: inherit;text-align: start;cursor: pointer}.goal-item__handle + .goal-card{padding-left: 0;border-radius: 0 var(--lumo-border-radius-l) var(--lumo-border-radius-l) 0}.goal-card:hover{background: var(--lumo-contrast-5pct)}.goal-card:focus-visible{outline: 2px solid var(--lumo-primary-color);outline-offset: 2px}.goal-card__body{flex: 1 1 auto;min-width: 0;display: flex;flex-direction: column;gap: var(--lumo-space-xs)}.goal-card__meta{color: var(--lumo-secondary-text-color);font-size: var(--lumo-font-size-s)}.goal-card__description{display: -webkit-box;-webkit-box-orient: vertical;-webkit-line-clamp: 2;line-clamp: 2;overflow: hidden;color: var(--lumo-secondary-text-color);font-size: var(--lumo-font-size-s);white-space: pre-line}.settings-section{display: flex;flex-direction: column;gap: var(--lumo-space-m);width: 100%;box-sizing: border-box;padding: var(--lumo-space-m);border-radius: var(--lumo-border-radius-l);background: var(--lumo-contrast-5pct)}.settings-section__title{margin: 0;font-size: var(--lumo-font-size-l)}.settings-option{display: flex;flex-direction: column}.settings-option__name{font-weight: 600}.settings-option__description{color: var(--lumo-secondary-text-color);font-size: var(--lumo-font-size-s)}.settings-option--inline{display: inline-flex;align-items: center;gap: var(--lumo-space-xs)}.settings-option__icon{width: 1em;height: 1em}.accent-swatch{flex: none;width: 1em;height: 1em;border-radius: 50%;background: var(--cashbox-accent)}.goal-avatar{--goal-avatar-size: 2.5rem;flex: none;display: flex;align-items: center;justify-content: center;width: var(--goal-avatar-size);height: var(--goal-avatar-size);border-radius: 50%;overflow: hidden;background: var(--lumo-primary-color-10pct);color: var(--lumo-primary-text-color)}.goal-avatar--s{--goal-avatar-size: 2.5rem}.goal-avatar--m{--goal-avatar-size: 3rem}.goal-avatar--l{--goal-avatar-size: 4rem}.goal-avatar>vaadin-icon{width: calc(var(--goal-avatar-size) * 0.5);height: calc(var(--goal-avatar-size) * 0.5)}.goal-avatar--image{background: var(--lumo-contrast-10pct)}.goal-avatar>img{display: block;width: 100%;height: 100%;object-fit: cover}.goal-identity{display: flex;align-items: flex-end;gap: var(--lumo-space-m);width: 100%}.goal-identity>vaadin-text-field{flex: 1 1 auto;min-width: 0}.goal-icon-button{position: relative;flex: none;margin: 0 0 var(--lumo-space-xs);padding: 0;border: none;border-radius: 50%;background: none;color: inherit;font: inherit;cursor: pointer}.goal-icon-button:hover>.goal-avatar{box-shadow: 0 0 0 2px var(--lumo-primary-color-50pct)}.goal-icon-button:focus-visible{outline: 2px solid var(--lumo-primary-color);outline-offset: 2px}.goal-icon-button__badge{position: absolute;right: -0.125rem;bottom: -0.125rem;display: flex;align-items: center;justify-content: center;width: 1.5rem;height: 1.5rem;border-radius: 50%;background: var(--lumo-base-color);box-shadow: var(--lumo-box-shadow-xs);color: var(--lumo-primary-text-color)}.goal-icon-button__badge>vaadin-icon{width: 0.875rem;height: 0.875rem}.icon-picker__content{gap: var(--lumo-space-s)}.icon-picker__section{margin-top: var(--lumo-space-s);color: var(--lumo-secondary-text-color);font-size: var(--lumo-font-size-xs);font-weight: 600;text-transform: uppercase;letter-spacing: 0.05em}.icon-picker__grid{display: grid;grid-template-columns: repeat(auto-fill,minmax(3rem,1fr));gap: var(--lumo-space-s);width: 100%}.icon-picker__option{display: flex;align-items: center;justify-content: center;aspect-ratio: 1;margin: 0;padding: 0;border: 2px solid transparent;border-radius: var(--lumo-border-radius-l);background: var(--lumo-contrast-5pct);color: var(--lumo-body-text-color);cursor: pointer}.icon-picker__option>vaadin-icon{width: 1.5rem;height: 1.5rem}.icon-picker__option:hover{background: var(--lumo-primary-color-10pct);color: var(--lumo-primary-text-color)}.icon-picker__option[aria-pressed="true"]{border-color: var(--lumo-primary-color);background: var(--lumo-primary-color-10pct);color: var(--lumo-primary-text-color)}.icon-picker__option:focus-visible{outline: 2px solid var(--lumo-primary-color);outline-offset: 2px}.icon-picker__current{display: flex;align-items: center;gap: var(--lumo-space-m);margin-bottom: var(--lumo-space-xs)}cashbox-image-cropper{display: flex;flex-direction: column;align-items: center;gap: var(--lumo-space-m)}.image-cropper__stage{position: relative;width: 100%;max-width: 22rem;aspect-ratio: 1;overflow: hidden;border-radius: var(--lumo-border-radius-l);background: #1c1c1e;cursor: grab;touch-action: none;user-select: none;-webkit-user-select: none}.image-cropper__stage--dragging{cursor: grabbing}.image-cropper__stage:focus-visible{outline: 2px solid var(--lumo-primary-color);outline-offset: 2px}.image-cropper__image{position: absolute;top: 0;left: 0;max-width: none;transform-origin: 0 0;pointer-events: none;user-select: none;-webkit-user-drag: none}.image-cropper__backdrop{position: absolute;inset: 8%;border-radius: 50%;background: linear-gradient(var(--lumo-contrast-10pct),var(--lumo-contrast-10pct)),var(--lumo-base-color)}.image-cropper__frame{position: absolute;inset: 8%;border-radius: 50%;box-shadow: 0 0 0 2px rgba(255,255,255,0.9),0 0 0 100vmax rgba(0,0,0,0.55);pointer-events: none}.image-cropper__controls{display: flex;align-items: center;gap: var(--lumo-space-s);width: 100%;max-width: 22rem}.image-cropper__zoom{flex: 1 1 auto;min-width: 0;margin: 0;accent-color: var(--lumo-primary-color)}.image-cropper__zoom-button{flex: none;display: flex;align-items: center;justify-content: center;width: 2.25rem;height: 2.25rem;margin: 0;padding: 0;border: none;border-radius: 50%;background: var(--lumo-contrast-5pct);color: var(--lumo-secondary-text-color);cursor: pointer}.image-cropper__zoom-button>vaadin-icon{width: 1rem;height: 1rem}.image-cropper__zoom-button:hover:not(:disabled){background: var(--lumo-contrast-10pct);color: var(--lumo-body-text-color)}.image-cropper__zoom-button:disabled{opacity: 0.4;cursor: default}.image-cropper__zoom-button:focus-visible{outline: 2px solid var(--lumo-primary-color);outline-offset: 2px}.crop-dialog__content{gap: var(--lumo-space-m)}vaadin-dialog.form-dialog::part(overlay){width: min(30rem,100%)}.booking-form,.goal-form{gap: var(--lumo-space-s)}.form-hint{margin: 0;color: var(--lumo-secondary-text-color);font-size: var(--lumo-font-size-s)}.form-hint--warning{padding: var(--lumo-space-s) var(--lumo-space-m);border-radius: var(--lumo-border-radius-m);background: var(--lumo-warning-color-10pct);color: var(--lumo-warning-text-color)}.form-hint--success{padding: var(--lumo-space-s) var(--lumo-space-m);border-radius: var(--lumo-border-radius-m);background: var(--lumo-success-color-10pct);color: var(--lumo-success-text-color)}.dialog-footer-delete{margin-inline-end: auto}.form-error{padding: var(--lumo-space-s) var(--lumo-space-m);border-radius: var(--lumo-border-radius-m);background: var(--lumo-error-color-10pct);color: var(--lumo-error-text-color);font-size: var(--lumo-font-size-s)}.amount-field>input{font-size: var(--lumo-font-size-xl);font-weight: 600;font-variant-numeric: tabular-nums}@media (max-width: 480px){.booking-mode-tabs vaadin-tab{flex-direction: column;gap: 0;padding-inline: var(--lumo-space-xs);font-size: var(--lumo-font-size-s)}}.booking-swap{display: flex;justify-content: center;width: 100%;margin: calc(var(--lumo-space-s) * -1) 0}.pot-item{display: flex;justify-content: space-between;gap: var(--lumo-space-m);width: 100%}.pot-amount{color: var(--lumo-secondary-text-color);font-variant-numeric: tabular-nums}.booking-preview{display: flex;flex-direction: column;gap: var(--lumo-space-xs);width: 100%;box-sizing: border-box;margin-top: var(--lumo-space-s);padding: var(--lumo-space-s) var(--lumo-space-m);border-radius: var(--lumo-border-radius-m);background: var(--lumo-contrast-5pct);font-size: var(--lumo-font-size-s)}.booking-preview__title{color: var(--lumo-secondary-text-color);font-size: var(--lumo-font-size-xs);font-weight: 600;text-transform: uppercase;letter-spacing: 0.05em}.booking-preview__row{display: flex;flex-wrap: wrap;justify-content: space-between;gap: 0 var(--lumo-space-m)}.booking-preview__change{font-variant-numeric: tabular-nums}.booking-preview__change--negative{color: var(--lumo-error-text-color)}@media (max-width: 600px){vaadin-dialog.form-dialog::part(overlay){position: fixed;inset: 0;width: 100%;height: 100%;max-width: none;max-height: none;border: none;border-radius: 0}vaadin-dialog.form-dialog::part(header){padding-top: max(var(--lumo-space-m),env(safe-area-inset-top))}vaadin-dialog.form-dialog::part(content){flex: 1}vaadin-dialog.form-dialog::part(footer){padding-bottom: max(var(--lumo-space-m),env(safe-area-inset-bottom))}.dialog-footer-button{flex: 1}}