/* Functional interface tokens. Locked illustrations and media pixels are never filtered or recolored. */
:root{
 color-scheme:light;
 --cy-font-journal:'Courier New',Courier,ui-monospace,monospace;--cy-sage:#cedac4;--cy-dusty-blue:#506f80;--cy-ivory:#f7f3e9;--cy-plum:#704c68;--cy-charcoal:#303b38;
 --cy-page:var(--cy-ivory);--cy-surface:#fffdf7;--cy-surface-sage:#e5ecdf;--cy-surface-blue:#e4ebef;--cy-surface-plum:#eee4ed;
 --cy-text:var(--cy-charcoal);--cy-text-muted:#58645c;--cy-link:#395c70;--cy-field:var(--cy-surface);--cy-placeholder:#626d63;--cy-border:#71816e;
 --cy-primary:#456575;--cy-primary-hover:#354f5e;--cy-primary-active:#2d4552;--cy-on-primary:#fffdf7;
 --cy-secondary:var(--cy-sage);--cy-secondary-hover:#bbcdb0;--cy-secondary-active:#a9bf9d;--cy-on-secondary:var(--cy-charcoal);
 --cy-accent:var(--cy-plum);--cy-accent-hover:#5a3b53;--cy-on-accent:#fffdf7;--cy-focus:var(--cy-plum);--cy-focus-gap:var(--cy-surface);
 --cy-disabled-bg:#e0e6db;--cy-disabled-text:#53614e;--cy-disabled-border:#84917f;
 --cy-error:#783e54;--cy-error-surface:#f1e6eb;--cy-success:#3f5838;--cy-success-surface:#e4ecdf;
 --cy-shadow-color:rgb(37 49 44 / .22);--cy-backdrop:rgb(30 42 37 / .65);--cy-surface-tint:rgb(206 218 196 / .12);
  --cy-light-tone-1:#e4a05c66;
  --cy-light-tone-2:#e2b775;
  --cy-light-tone-3:#fff0bf;
  --cy-light-tone-4:#ffd58a88;
  --cy-light-tone-5:#ffca7099;
  --cy-light-tone-6:#ffe2a0;
  --cy-light-tone-7:#6b431666;
  --cy-light-tone-8:#ffc775aa;
  --cy-light-tone-9:#ffd49a99;
  --cy-light-tone-10:#ffc471bb;
  --cy-light-tone-11:#ffe0a1;
  --cy-light-tone-12:#edbb6755;
  --cy-light-tone-13:#ffd17f99;
  --cy-light-tone-14:#ffe4a055;
  --cy-light-tone-15:#ffe7a5aa;
  --cy-light-tone-16:#ffc35e66;
  --cy-light-tone-17:#fca63d24;
  --cy-basket-tone-1:#856243;
  --cy-basket-tone-2:#3c2c20;
  --cy-basket-tone-3:#463322;
  --cy-basket-tone-4:#1d120f77;
  --cy-egg-tone-1:#e6d3b2;
  --cy-egg-tone-2:#442b232e;
  --cy-egg-tone-3:#ffffff65;
  --cy-egg-tone-4:#130b0955;
  --cy-egg-tone-5:#63422c88;
  --cy-egg-tone-6:#8c613f88;
  --cy-egg-tone-7:#63472e;
  --cy-egg-tone-8:#fff7;
  --cy-light-tone-18:#e6a35a99;}
html{background:var(--cy-page);color:var(--cy-text)}
body{background:var(--cy-page);color:var(--cy-text)}
body a{color:var(--cy-link)}
body a:hover{color:var(--cy-accent);text-decoration-thickness:2px}
body :is(input,select,textarea,option){background:var(--cy-field);color:var(--cy-text);border-color:var(--cy-border);caret-color:var(--cy-accent);color-scheme:light}
body :is(input,textarea)::placeholder{color:var(--cy-placeholder);opacity:1}
body :is(input[type=checkbox],input[type=radio],progress){accent-color:var(--cy-accent)}
body :is(button,.button,.action):not(:is(.hit,.screen,.space-object,.connected-object,.house-airplane,.basket-item)){
 background:var(--cy-primary);color:var(--cy-on-primary);border-color:var(--cy-primary);transition:none;
}
body :is(button,.button,.action):not(:is(.hit,.screen,.space-object,.connected-object,.house-airplane,.basket-item)):hover{background:var(--cy-primary-hover);color:var(--cy-on-primary);border-color:var(--cy-primary-hover)}
body :is(button,.button,.action):not(:is(.hit,.screen,.space-object,.connected-object,.house-airplane,.basket-item)):active{background:var(--cy-primary-active);color:var(--cy-on-primary)}
body :is(button.secondary,.button.secondary,.action.secondary,.filter-row button,.house-tools button,.space-nav button,.photo-order){background:var(--cy-secondary);color:var(--cy-on-secondary);border-color:var(--cy-border)}
body :is(button.secondary,.button.secondary,.action.secondary,.filter-row button,.house-tools button,.space-nav button,.photo-order):hover{background:var(--cy-secondary-hover);color:var(--cy-on-secondary)}
body :is(button.secondary,.button.secondary,.action.secondary,.filter-row button,.house-tools button,.space-nav button,.photo-order):active{background:var(--cy-secondary-active);color:var(--cy-on-secondary)}
body :is(button[aria-pressed=true],.filter-row button.active,a[aria-current=page],.space-nav button[aria-pressed=true]){background:var(--cy-surface-plum);color:var(--cy-accent);border-color:var(--cy-accent)}
body :is(button.danger,.button.danger){background:var(--cy-accent);color:var(--cy-on-accent);border-color:var(--cy-accent)}
body :is(button.danger,.button.danger):hover{background:var(--cy-accent-hover);color:var(--cy-on-accent)}
body :is(button,input,select,textarea):disabled{opacity:1!important;background:var(--cy-disabled-bg)!important;color:var(--cy-disabled-text)!important;border-color:var(--cy-disabled-border)!important;cursor:not-allowed}
body :is(button,a,input,select,textarea,summary,[tabindex]):focus-visible{outline:3px solid var(--cy-focus);outline-offset:3px;box-shadow:0 0 0 3px var(--cy-focus-gap)}
body :is(dialog,.cozy-dialog){background:var(--cy-surface);color:var(--cy-text);border-color:var(--cy-border);box-shadow:0 16px 60px var(--cy-shadow-color)}
dialog::backdrop{background:var(--cy-backdrop)}
body :is(.post,.connected-post,.space-post,.space-card,.card,.management-card,.continue-exploring,.schedule-edit,.egg-visit-toast,.preview-note,.trip-sections a){background:var(--cy-surface);color:var(--cy-text);border-color:var(--cy-border)}
body :is(.muted,.note,.space-note,small,.conversation-meta,.management-meta){color:var(--cy-text-muted)}
body :is(.error,[aria-invalid=true]){color:var(--cy-error);border-color:var(--cy-error)}
body :is(.badge,.content-tag.draft){color:var(--cy-success)}
body .content-tag.scheduled{color:var(--cy-accent);background:var(--cy-surface-plum)}
body .trip-desk #trip-status,body.trip-desk #trip-status{background:var(--cy-surface-blue);color:var(--cy-text);border-color:var(--cy-primary)}
body .basket-link{background:var(--cy-secondary);color:var(--cy-text)!important}
body .password-field button{background:transparent;color:var(--cy-text);border-color:transparent}
body .password-field button:hover{background:var(--cy-surface-sage);color:var(--cy-text)}
.cy-confirm{width:min(560px,calc(100% - 32px));max-height:85vh;border:1px solid var(--cy-border);border-radius:16px;padding:24px;font:18px/1.6 system-ui}
.cy-confirm h2{font:600 24px/1.3 Georgia,serif;margin:0 0 12px}.cy-confirm p{white-space:pre-wrap;overflow-wrap:anywhere}.cy-confirm .actions{display:flex;gap:12px;justify-content:flex-end;flex-wrap:wrap}.cy-confirm button{min-height:48px;min-width:100px}
@media(max-width:480px){.cy-confirm .actions button{flex:1 1 100%}}
@media(prefers-reduced-motion:reduce){body :is(button,.button,.action){transition:none}}
@media(forced-colors:active){body :is(button,a,input,select,textarea,summary):focus-visible{outline:3px solid Highlight;box-shadow:none}}

body :is(input:not([type=checkbox]):not([type=radio]):not([type=hidden]),select,textarea){border:1px solid var(--cy-border)}
body #nav button:first-child{background:var(--cy-accent);color:var(--cy-on-accent);border-color:var(--cy-accent)}
body #nav button:first-child:hover{background:var(--cy-accent-hover);color:var(--cy-on-accent)}
body input[type=file]::file-selector-button{background:var(--cy-secondary);color:var(--cy-on-secondary);border:1px solid var(--cy-border);border-radius:8px;padding:10px 14px;margin-right:12px;min-height:48px;font:inherit;cursor:pointer}
body input[type=file]::file-selector-button:hover{background:var(--cy-secondary-hover)}
/* Hint text is opaque so contrast never depends on the underlying illustration. */
body :is(.hit span:not(.nav-marker),.space-object span:not(.nav-marker),.connected-object span:not(.nav-marker),.house-airplane .airplane-hint),body .screen::after{background:var(--cy-surface);color:var(--cy-text)}
/* Nested descriptions share their control's accessible foreground in every state. */
body :is(button,.button,.action):not(:is(.hit,.screen,.space-object,.connected-object,.house-airplane,.basket-item)) :is(small,span,.muted,.note,.membership-description){color:inherit}

/* Travel Log: correspondence details only; long messages and inputs retain modern reading type. */
.trip-desk #trip-columns,.trip-desk .trip-reference-column{min-width:0}
.trip-desk .travel-log{border-top:3px solid var(--cy-primary);background:var(--cy-surface)}
.trip-desk .travel-log-heading{display:block;border-bottom:1px solid var(--cy-border);padding-bottom:14px;margin-bottom:16px}
.trip-desk .travel-log-kicker{font:600 22px/1.4 var(--cy-font-journal);letter-spacing:.025em;color:var(--cy-accent);margin:0 0 6px}
.trip-desk .travel-log-heading h3{font:600 22px/1.4 var(--cy-font-journal);margin:0 0 8px}
.trip-desk .travel-log-group{font:600 17px/1.6 var(--cy-font-journal);color:var(--cy-text-muted);margin:0}
.trip-desk .travel-log-entry{border-radius:8px;border-left:3px solid var(--cy-sage);padding:18px;margin:20px 0;background:var(--cy-surface);box-shadow:0 2px 6px var(--cy-shadow-color)}
.trip-desk .dispatch-from-owner{border-left-color:var(--cy-accent)}
.trip-desk .dispatch-heading{display:block;border-bottom:1px solid var(--cy-border);padding:0 0 12px;margin-bottom:16px}
.trip-desk .dispatch-heading h4{font:600 18px/1.5 system-ui,sans-serif;margin:0 0 10px;overflow-wrap:anywhere}
.trip-desk .dispatch-date{display:inline-block;font:400 16px/1.6 var(--cy-font-journal);padding:4px 8px;background:var(--cy-surface-sage);color:var(--cy-text-muted);border-radius:4px;overflow-wrap:anywhere}
.trip-desk .dispatch-body,.trip-desk #trip-message-form textarea{font:400 18px/1.7 system-ui,sans-serif;color:var(--cy-text);white-space:pre-wrap;overflow-wrap:anywhere}
.trip-desk .dispatch-composer-heading{font:600 21px/1.5 var(--cy-font-journal);margin-top:24px;padding-top:18px;border-top:1px solid var(--cy-border)}
@media(min-width:1050px){body.traveler-desk main{max-width:1240px}body.traveler-desk #trip-columns{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:24px;align-items:start}body.traveler-desk #trip-columns>.travel-log{margin-top:22px}}
@media(max-width:1049px){body.traveler-desk #trip-columns{display:block}}

/* Owner and traveler share the approved two-column Travel Log composition. */
@media(min-width:1050px){body.owner-trip-desk main{max-width:1240px}body.owner-trip-desk #trip-columns{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:24px;align-items:start}body.owner-trip-desk #trip-columns>.travel-log{margin-top:22px}}
.trip-desk #trip-alerts>summary,.trip-desk #trip-accountability>summary,.trip-desk #trip-owner-management>summary,.trip-desk #trip-setup-management>summary{font-size:20px;font-weight:600;min-height:48px;cursor:pointer;padding:12px 0}
.trip-desk #trip-owner-management,.trip-desk #trip-setup-management{margin:22px 0}
.trip-desk #trip-alert-list label{overflow-wrap:anywhere}
.trip-desk #trip-alert-list input[type=checkbox]{flex-shrink:0}
.trip-desk #trip-arrival{border-left:3px solid var(--cy-accent)}
.trip-desk #trip-ack-report{scroll-margin-top:100px;overflow-wrap:anywhere}
.trip-desk .travel-log-entry>button{margin:4px 6px 4px 0}
