:root{--surface-default:#fff;--surface-elevated:#f4f6f8;--text-primary:#16232e;--text-secondary:#4c5a67;--border-default:#7e8c99;--action-primary:#15607c;--action-primary-hover:#104c62;--action-primary-active:#0c3a4b;--action-primary-disabled:#5b6b77;--text-on-action:#fff;--status-error:#a3231c;--status-success:#1e6b3a;--focus-ring:#0c3a4b;--font-family-base:system-ui, sans-serif;--type-page-title-size:1.75rem;--type-page-title-line-height:1.25;--type-page-title-weight:600;--type-section-title-size:1.25rem;--type-section-title-line-height:1.3;--type-section-title-weight:600;--type-body-size:1rem;--type-body-line-height:1.5;--type-body-weight:400;--type-label-size:.875rem;--type-label-line-height:1.4;--type-label-weight:500;--type-validation-size:.875rem;--type-validation-line-height:1.4;--type-validation-weight:400;--space-xs:.25rem;--space-sm:.5rem;--space-md:1rem;--space-lg:1.5rem;--border-width-default:.0625rem;--radius-control:.25rem;--radius-surface:.5rem;--breakpoint-tablet:48rem;--breakpoint-desktop:64rem}*,:before,:after{box-sizing:border-box}body{font-family:var(--font-family-base);font-size:var(--type-body-size);line-height:var(--type-body-line-height);font-weight:var(--type-body-weight);color:var(--text-primary);background-color:var(--surface-default);margin:0}:focus-visible{outline:var(--border-width-default) solid var(--focus-ring);outline-offset:var(--space-xs)}h1{font-size:var(--type-section-title-size);line-height:var(--type-section-title-line-height);font-weight:var(--type-section-title-weight);margin:0}h2{font-size:var(--type-page-title-size);line-height:var(--type-page-title-line-height);font-weight:var(--type-page-title-weight);margin:0}h3{font-size:var(--type-section-title-size);line-height:var(--type-section-title-line-height);font-weight:var(--type-section-title-weight);margin:0}p{margin:0}.app-shell{gap:var(--space-lg);flex-direction:column;display:flex;position:relative}.app-shell__skip-link{top:calc(var(--space-lg) * -3);left:var(--space-md);padding:var(--space-sm) var(--space-md);color:var(--text-primary);background-color:var(--surface-elevated);border:var(--border-width-default) solid var(--border-default);border-radius:var(--radius-control);position:absolute}.app-shell__skip-link:focus{top:var(--space-md)}.app-shell__header{gap:var(--space-sm);padding:var(--space-md);background-color:var(--surface-elevated);border-bottom:var(--border-width-default) solid var(--border-default);flex-direction:column;display:flex}.app-shell__brand{color:var(--text-primary)}.app-shell__nav-list{gap:var(--space-sm);flex-wrap:wrap;margin:0;padding:0;list-style:none;display:flex}.app-shell__nav-link{padding:var(--space-sm) var(--space-md);color:var(--text-primary);border-radius:var(--radius-control);display:inline-block}.app-shell__nav-link[aria-current=page]{background-color:var(--surface-default);font-weight:var(--type-label-weight)}.app-shell__main{gap:var(--space-md);padding:var(--space-md);flex-direction:column;display:flex}@media (width>=48rem){.app-shell__header{padding:var(--space-md) var(--space-lg);flex-direction:row;justify-content:space-between;align-items:center}}@media (width>=64rem){.app-shell__main{padding:var(--space-lg)}}.button{justify-content:center;align-self:flex-start;align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);font-family:inherit;font-size:var(--type-label-size);line-height:var(--type-label-line-height);font-weight:var(--type-label-weight);color:var(--text-on-action);background-color:var(--action-primary);border:var(--border-width-default) solid var(--action-primary);border-radius:var(--radius-control);cursor:pointer;display:inline-flex}.button:hover:not(:disabled){background-color:var(--action-primary-hover);border-color:var(--action-primary-hover)}.button:active:not(:disabled){background-color:var(--action-primary-active);border-color:var(--action-primary-active)}.button:disabled{background-color:var(--action-primary-disabled);border-color:var(--action-primary-disabled);cursor:not-allowed}.authentication-status{gap:var(--space-sm);flex-wrap:wrap;align-items:center;display:flex}.authentication-status__message{color:var(--text-secondary)}.authentication-status__message--problem{color:var(--status-error);font-weight:var(--type-label-weight)}.system-state{gap:var(--space-xs);flex-direction:column;align-items:flex-start;display:flex}.system-state__message{color:var(--text-secondary)}.system-state__title{font-weight:var(--type-label-weight);color:var(--text-primary)}.system-state__description{color:var(--text-secondary)}.system-state--error .system-state__title{color:var(--status-error)}.form-field{gap:var(--space-xs);flex-direction:column;display:flex}.form-field__label-row{gap:var(--space-xs);flex-wrap:wrap;align-items:baseline;display:flex}.form-field__label{font-size:var(--type-label-size);line-height:var(--type-label-line-height);font-weight:var(--type-label-weight);color:var(--text-primary)}.form-field__requirement{font-weight:var(--type-body-weight);color:var(--text-secondary)}.form-field__description{font-size:var(--type-label-size);line-height:var(--type-label-line-height);color:var(--text-secondary)}.form-field__error{font-size:var(--type-validation-size);line-height:var(--type-validation-line-height);font-weight:var(--type-validation-weight);color:var(--status-error)}.input{padding:var(--space-sm);font-family:inherit;font-size:var(--type-body-size);line-height:var(--type-body-line-height);color:var(--text-primary);background-color:var(--surface-default);border:var(--border-width-default) solid var(--border-default);border-radius:var(--radius-control)}.input[aria-invalid=true]{border-color:var(--status-error)}.select{padding:var(--space-sm);font-family:inherit;font-size:var(--type-body-size);line-height:var(--type-body-line-height);color:var(--text-primary);background-color:var(--surface-default);border:var(--border-width-default) solid var(--border-default);border-radius:var(--radius-control)}.select[aria-invalid=true]{border-color:var(--status-error)}.cruises{gap:var(--space-sm);flex-direction:column;align-items:stretch;display:flex}.cruises__title{color:var(--text-primary)}.cruises__list{gap:var(--space-sm);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.cruises__pagination{gap:var(--space-sm);flex-wrap:wrap;align-items:center;display:flex}.cruises__pagination-position{color:var(--text-primary);margin:0}.cruises__item{background-color:var(--surface-elevated);border:var(--border-width-default) solid var(--border-default);border-radius:var(--radius-surface);padding:var(--space-sm)}.cruises__item-link{color:var(--text-primary);font-weight:var(--type-label-weight)}.cruises__item-meta{gap:var(--space-xs) var(--space-md);flex-wrap:wrap;margin:0;padding-block-start:var(--space-xs);display:flex}.cruises__item-detail{color:var(--text-secondary);font-size:var(--type-validation-size);line-height:var(--type-validation-line-height)}.cruises__item-detail--unselected{color:var(--text-secondary)}.cruises__status{border:var(--border-width-default) solid var(--border-default);border-radius:var(--radius-control);color:var(--text-primary);font-size:var(--type-validation-size);line-height:var(--type-validation-line-height);padding-inline:var(--space-xs)}.cruises__status--cancelled{color:var(--text-secondary)}.cruises__link-action{color:var(--text-primary);font-weight:var(--type-label-weight);align-self:flex-start}.cruise-detail{gap:var(--space-md);flex-direction:column;align-items:stretch;display:flex}.cruise-detail__title{color:var(--text-primary)}.cruise-detail__values{gap:var(--space-xs);grid-template-columns:1fr;margin:0;display:grid}.cruise-detail__label{color:var(--text-secondary)}.cruise-detail__value{color:var(--text-primary);margin:0}.cruise-detail__value--unselected,.cruise-detail__value--unresolved,.cruises__item-detail--unresolved{color:var(--text-secondary)}.cruise-detail__actions{gap:var(--space-sm);flex-wrap:wrap;display:flex}.cruise-days{gap:var(--space-sm);padding-top:var(--space-md);border-top:var(--border-width-default) solid var(--border-default);flex-direction:column;align-items:stretch;display:flex}.cruise-days__title{color:var(--text-primary)}.cruise-days__result{color:var(--text-primary);margin:0}.cruise-days__list{gap:var(--space-sm);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.cruise-days__item{background-color:var(--surface-elevated);border:var(--border-width-default) solid var(--border-default);border-radius:var(--radius-surface);padding:var(--space-sm);color:var(--text-primary)}.cruise-days__item-link{color:var(--text-primary);font-weight:var(--type-label-weight)}.cruise-days__port{color:var(--text-secondary);font-size:var(--type-validation-size);line-height:var(--type-validation-line-height);margin:0;padding-block-start:var(--space-xs)}.cruise-days__port--unselected,.cruise-days__port--unresolved{color:var(--text-secondary)}.cruise-days__correspondence{color:var(--text-secondary);font-size:var(--type-validation-size);line-height:var(--type-validation-line-height);margin:0;padding-block-start:var(--space-xs)}.cruise-days__journey-day{margin:0;padding-block-start:var(--space-xs)}.cruise-days__notice{gap:var(--space-xs);padding:var(--space-sm);border:var(--border-width-default) solid var(--border-default);border-radius:var(--radius-surface);flex-direction:column;align-items:flex-start;display:flex}.cruise-days__notice--stale{border-color:var(--status-error)}.cruise-days__notice-title{font-weight:var(--type-label-weight);color:var(--text-primary);margin:0}.cruise-days__notice--stale .cruise-days__notice-title{color:var(--status-error)}.cruise-days__repair{gap:var(--space-xs);flex-direction:column;align-items:flex-start;display:flex}.cruise-days__repair-failed{font-weight:var(--type-label-weight);color:var(--status-error);margin:0}.cruise-day-detail{gap:var(--space-md);flex-direction:column;align-items:stretch;display:flex}.cruise-duplicate{border:var(--border-width-default) solid var(--border-default);border-radius:var(--radius-surface);padding:var(--space-md);gap:var(--space-xs);flex-direction:column;display:flex}.cruise-duplicate--candidate{border-color:var(--action-primary)}.cruise-duplicate__title,.cruise-duplicate__description{color:var(--text-primary);margin:0}.cruise-duplicate__matches-label{color:var(--text-secondary);margin:0}.cruise-duplicate__matches{gap:var(--space-xs);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.cruise-form{gap:var(--space-md);flex-direction:column;align-items:stretch;display:flex}.cruise-form__actions{gap:var(--space-sm);flex-wrap:wrap;display:flex}.cruise-form__notice{border:var(--border-width-default) solid var(--border-default);border-radius:var(--radius-surface);padding:var(--space-md);gap:var(--space-xs);flex-direction:column;display:flex}@media (width>=48rem){.cruise-detail__values{column-gap:var(--space-md);grid-template-columns:auto 1fr}}.confirm-dialog__overlay{z-index:1;padding:var(--space-md);justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.confirm-dialog__scrim{background-color:var(--text-primary);opacity:.5;position:absolute;inset:0}.confirm-dialog{gap:var(--space-md);max-width:calc(var(--breakpoint-tablet) / 2);padding:var(--space-lg);background-color:var(--surface-default);border:var(--border-width-default) solid var(--border-default);border-radius:var(--radius-surface);flex-direction:column;display:flex;position:relative}.confirm-dialog__title{color:var(--text-primary);font-size:var(--type-section-title-size);font-weight:var(--type-section-title-weight);line-height:var(--type-section-title-line-height);margin:0}.confirm-dialog__body{color:var(--text-primary)}.confirm-dialog__body p{margin:0}.confirm-dialog__actions{gap:var(--space-sm);flex-wrap:wrap;display:flex}.confirm-dialog__working{color:var(--text-secondary);margin:0}.textarea{padding:var(--space-sm);font-family:inherit;font-size:var(--type-body-size);line-height:var(--type-body-line-height);color:var(--text-primary);background-color:var(--surface-default);border:var(--border-width-default) solid var(--border-default);border-radius:var(--radius-control);resize:vertical}.textarea[aria-invalid=true]{border-color:var(--status-error)}.journey-form{gap:var(--space-md);flex-direction:column;align-items:stretch;display:flex}.journey-form__title{color:var(--text-primary)}.journey-form__form{gap:var(--space-md);flex-direction:column;align-items:stretch;display:flex}.journey-form__group{gap:var(--space-xs);padding:var(--space-sm);border:var(--border-width-default) solid var(--border-default);border-radius:var(--radius-control);flex-direction:column;margin:0;display:flex}.journey-form__group[aria-invalid=true]{border-color:var(--status-error)}.journey-form__legend{padding-inline:var(--space-xs);font-size:var(--type-label-size);line-height:var(--type-label-line-height);font-weight:var(--type-label-weight);color:var(--text-primary)}.journey-form__description{font-size:var(--type-label-size);line-height:var(--type-label-line-height);color:var(--text-secondary)}.journey-form__options{gap:var(--space-md);flex-wrap:wrap;display:flex}.journey-form__option{align-items:center;gap:var(--space-xs);display:flex}.journey-form__option-label{font-size:var(--type-body-size);line-height:var(--type-body-line-height);color:var(--text-primary)}.journey-form__error{font-size:var(--type-validation-size);line-height:var(--type-validation-line-height);font-weight:var(--type-validation-weight);color:var(--status-error)}.journey-form__actions{gap:var(--space-sm);display:flex}.journey-detail{gap:var(--space-md);flex-direction:column;align-items:stretch;display:flex}.journey-detail__title{color:var(--text-primary)}.journey-detail__values{gap:var(--space-xs);grid-template-columns:1fr;margin:0;display:grid}.journey-detail__label{color:var(--text-secondary)}.journey-detail__value{color:var(--text-primary);margin:0}.journey-detail__description{white-space:pre-wrap;overflow-wrap:anywhere}.journey-detail__actions{margin:0}.journey-detail__lifecycle{padding-top:var(--space-md);border-top:var(--border-width-default) solid var(--border-default)}.journey-detail__back{margin:0}.journey-days{gap:var(--space-sm);padding-top:var(--space-md);border-top:var(--border-width-default) solid var(--border-default);flex-direction:column;align-items:stretch;display:flex}.journey-days__title{color:var(--text-primary)}.journey-days__list{gap:var(--space-xs);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.journey-days__item{color:var(--text-primary)}.journey-days__warning{gap:var(--space-xs);padding:var(--space-sm);border:var(--border-width-default) solid var(--status-error);border-radius:var(--radius-surface);flex-direction:column;align-items:flex-start;display:flex}.journey-days__warning-title{font-weight:var(--type-label-weight);color:var(--status-error);margin:0}.journey-days__repair{gap:var(--space-xs);flex-direction:column;align-items:flex-start;display:flex}.journey-days__repair-failed{font-weight:var(--type-label-weight);color:var(--status-error);margin:0}.journey-day-cruise-context{gap:var(--space-sm);padding-top:var(--space-md);border-top:var(--border-width-default) solid var(--border-default);flex-direction:column;align-items:stretch;display:flex}.journey-day-cruise-context__title{color:var(--text-primary)}.journey-day-cruise-context__list{gap:var(--space-sm);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.journey-day-cruise-context__item{gap:var(--space-xs);padding:var(--space-sm);border:var(--border-width-default) solid var(--border-default);border-radius:var(--radius-surface);color:var(--text-primary);flex-direction:column;display:flex}.journey-day-cruise-context__relation{font-weight:var(--type-label-weight);margin:0}.journey-day-cruise-context__status{color:var(--status-error);margin:0}.journey-day-cruise-context__links{margin:0}.journey-detail__placement{color:var(--text-secondary);margin:0}.journey-day-activities{gap:var(--space-sm);padding-top:var(--space-md);border-top:var(--border-width-default) solid var(--border-default);flex-direction:column;align-items:stretch;display:flex}.journey-day-activities__title{color:var(--text-primary)}.journey-day-activities__add{gap:var(--space-sm);flex-wrap:wrap;display:flex}.journey-day-activities__list{gap:var(--space-sm);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.journey-day-activities__item{gap:var(--space-xs);padding:var(--space-sm);border:var(--border-width-default) solid var(--border-default);border-radius:var(--radius-surface);color:var(--text-primary);flex-direction:column;display:flex}.journey-day-activities__item-body{gap:var(--space-xs);flex-direction:column;min-width:0;display:flex}.journey-day-activities__item-title{font-weight:var(--type-label-weight);overflow-wrap:anywhere;margin:0}.journey-day-activities__item-time{color:var(--text-secondary);margin:0}.journey-day-activities__item-description{overflow-wrap:anywhere;white-space:pre-line;margin:0}.journey-day-activities__item-actions{gap:var(--space-sm);flex-wrap:wrap;display:flex}.journey-day-activities__form{gap:var(--space-md);padding:var(--space-sm);border:var(--border-width-default) solid var(--border-default);border-radius:var(--radius-surface);flex-direction:column;align-items:stretch;display:flex}.journey-day-activities__form-title{font-weight:var(--type-label-weight);color:var(--text-primary);margin:0}.journey-day-activities__form-actions{gap:var(--space-sm);flex-wrap:wrap;display:flex}.journey-day-activities__form-error{font-size:var(--type-validation-size);line-height:var(--type-validation-line-height);font-weight:var(--type-validation-weight);color:var(--status-error);margin:0}.journey-day-activities__form-status{font-size:var(--type-label-size);line-height:var(--type-label-line-height);color:var(--text-secondary);margin:0}.journey-days__retained{gap:var(--space-xs);padding:var(--space-sm);border:var(--border-width-default) solid var(--border-default);border-radius:var(--radius-surface);flex-direction:column;display:flex}.journey-days__retained-title{font-size:var(--type-label-size);line-height:var(--type-label-line-height);font-weight:var(--type-label-weight);color:var(--text-primary);margin:0}.journey-days__retained-explanation{color:var(--text-secondary);margin:0}.journey-days__retained-item{gap:var(--space-xs) var(--space-sm);color:var(--text-primary);flex-wrap:wrap;align-items:baseline;display:flex}.journey-days__retained-count{color:var(--text-secondary)}.journey-day-memories,.journey-memories{gap:var(--space-sm);padding-top:var(--space-md);border-top:var(--border-width-default) solid var(--border-default);flex-direction:column;align-items:stretch;display:flex}.journey-day-memories__title,.journey-memories__title{color:var(--text-primary)}.journey-day-memories__add,.journey-memories__add{gap:var(--space-sm);flex-wrap:wrap;display:flex}.journey-day-memories__list,.journey-memories__list{gap:var(--space-sm);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.journey-day-memories__item,.journey-memories__item{gap:var(--space-xs);padding:var(--space-sm);border:var(--border-width-default) solid var(--border-default);border-radius:var(--radius-surface);color:var(--text-primary);flex-direction:column;display:flex}.journey-day-memories__item-body,.journey-memories__item-body{gap:var(--space-xs);flex-direction:column;min-width:0;display:flex}.journey-day-memories__item-title,.journey-memories__item-title{font-weight:var(--type-label-weight);overflow-wrap:anywhere;margin:0}.journey-day-memories__item-text,.journey-memories__item-text{overflow-wrap:anywhere;white-space:pre-line;margin:0}.journey-memories__item-day{color:var(--text-secondary);margin:0}.journey-day-memories__item-actions,.journey-memories__item-actions{gap:var(--space-sm);flex-wrap:wrap;display:flex}.journey-day-memories__form,.journey-memories__form{gap:var(--space-md);padding:var(--space-sm);border:var(--border-width-default) solid var(--border-default);border-radius:var(--radius-surface);flex-direction:column;align-items:stretch;display:flex}.journey-day-memories__form-title,.journey-memories__form-title{font-weight:var(--type-label-weight);color:var(--text-primary);margin:0}.journey-day-memories__form-actions,.journey-memories__form-actions{gap:var(--space-sm);flex-wrap:wrap;display:flex}.journey-day-memories__form-error,.journey-memories__form-error{font-size:var(--type-validation-size);line-height:var(--type-validation-line-height);font-weight:var(--type-validation-weight);color:var(--status-error);margin:0}.journey-day-memories__form-status,.journey-memories__form-status{font-size:var(--type-label-size);line-height:var(--type-label-line-height);color:var(--text-secondary);margin:0}.journey-memories__pagination{gap:var(--space-sm);flex-wrap:wrap;align-items:center;display:flex}.journey-memories__pagination-position{color:var(--text-secondary);margin:0}@media (width>=48rem){.journey-detail__values{gap:var(--space-xs) var(--space-sm);grid-template-columns:auto 1fr}}.memory-photo{gap:var(--space-xs);flex-direction:column;align-items:flex-start;min-width:0;margin:0;display:flex}.memory-photo .button{overflow-wrap:anywhere}.memory-photo__frame{border-radius:var(--radius-surface);align-self:stretch;min-width:0;display:flex;overflow:hidden}.memory-photo__image{min-width:0;max-height:calc(var(--breakpoint-tablet) / 4);object-fit:contain;border-radius:var(--radius-surface);flex:0 auto;height:auto;display:block}.memory-photo__frame--expanded .memory-photo__image{flex:auto;max-height:none}.memory-photo__meta{color:var(--text-secondary);margin:0}.memory-photo__status{padding:var(--space-sm);color:var(--text-secondary);margin:0}.memory-photo__status--unavailable,.memory-photo__status--failed{color:var(--status-error)}.memory-photo__status--failed{gap:var(--space-sm);flex-direction:column;align-items:flex-start;display:flex}.memory-photo__status--failed p{margin:0}.memory-photo--preview{margin-bottom:var(--space-sm)}.journeys{gap:var(--space-md);flex-direction:column;align-items:stretch;display:flex}.journeys__header{gap:var(--space-sm);flex-wrap:wrap;justify-content:space-between;align-items:baseline;display:flex}.journeys__title{color:var(--text-primary)}.journeys__new{white-space:nowrap;text-decoration:none}.journey-list__items{gap:var(--space-sm);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.journey-item{gap:var(--space-xs);padding:var(--space-sm);border:var(--border-width-default) solid var(--border-default);border-radius:var(--radius-surface);background:var(--surface-elevated);flex-direction:column;display:flex}.journey-item__title{color:var(--text-primary)}.journey-item__values{gap:var(--space-xs) var(--space-sm);grid-template-columns:auto 1fr;margin:0;display:grid}.journey-item__label{color:var(--text-secondary)}.journey-item__value{color:var(--text-primary);margin:0}.journey-item__description{-webkit-line-clamp:2;line-clamp:2;color:var(--text-secondary);-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.journey-pagination{gap:var(--space-sm);align-items:center;display:flex}.journey-pagination__position{color:var(--text-primary)}
