.trip-occurrence-prototype .student-dashboard-card__visual-flag{display:inline-flex}
.trip-occurrence-details{grid-template-columns:repeat(3,minmax(0,1fr))}
.trip-content-section{display:grid;gap:.85rem;padding-bottom:.85rem}
.trip-content-section>.odin-v2-documents-toolbar{margin-inline:0}
.trip-group-list{display:grid;gap:1rem;margin-inline:.85rem}
.trip-record-group{display:grid}
.trip-record-group>summary{display:grid;grid-template-columns:30px minmax(0,1fr) 18px;align-items:center;gap:.55rem;padding:0 0 .42rem;border-bottom:1px solid var(--odin-line);cursor:pointer;list-style:none}
.trip-record-group>summary::-webkit-details-marker{display:none}
.trip-record-group>summary>i:first-child{display:grid;width:30px;height:30px;place-items:center;border-radius:.42rem;background:color-mix(in srgb,var(--odin-accent-1,var(--odin-info)) 12%,transparent);color:var(--odin-accent-1,var(--odin-info));font-size:.72rem}
.trip-record-group>summary>span{display:grid;min-width:0}.trip-record-group>summary strong{font-size:.78rem}.trip-record-group>summary small{color:var(--sd-muted);font-size:.58rem}
.trip-record-group>summary>i:last-child{color:var(--odin-accent-1,var(--odin-info));font-size:.62rem;transition:transform .18s ease}.trip-record-group[open]>summary>i:last-child{transform:rotate(180deg)}
.trip-record-group>div{display:grid;gap:.38rem;padding-top:.45rem}
.trip-record-group article{display:grid;grid-template-columns:110px minmax(0,1fr);align-items:center;gap:.65rem;padding:.62rem .7rem;border:1px solid var(--odin-line);border-radius:.5rem;background:var(--sd-surface-2)}
.trip-record-group article>b{color:var(--odin-accent-1,var(--odin-info));font-size:.66rem}.trip-record-group article>span{display:grid}.trip-record-group article strong{font-size:.7rem}.trip-record-group article small{margin-top:.1rem;color:var(--sd-muted);font-size:.62rem}
.trip-info-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.65rem;margin-inline:.85rem}
.trip-info-grid>article{display:flex;align-items:flex-start;gap:.65rem;padding:.75rem;border:1px solid var(--odin-line);border-radius:.6rem;background:var(--sd-surface-2)}
.trip-info-grid>article>i{display:grid;width:34px;height:34px;flex:0 0 34px;place-items:center;border-radius:.5rem;background:color-mix(in srgb,var(--odin-accent-1,var(--odin-info)) 12%,transparent);color:var(--odin-accent-1,var(--odin-info))}
.trip-info-grid span{display:grid}.trip-info-grid small{color:var(--odin-accent-1,var(--odin-info));font-size:.54rem;font-weight:850}.trip-info-grid strong{margin-top:.12rem;font-size:.7rem}.trip-info-grid p{margin:.18rem 0 0;color:var(--sd-muted);font-size:.62rem;line-height:1.4}
@media(max-width:767.98px){.trip-occurrence-details{grid-template-columns:1fr}.trip-group-list,.trip-info-grid{margin-inline:.75rem}.trip-info-grid{grid-template-columns:1fr}.trip-record-group article{grid-template-columns:1fr;gap:.16rem}}


/* Trip action status keeps its title and detail on separate lines. */
.trip-occurrence-prototype .student-card-actionbar__status>span{
  display:grid;
  min-width:0;
  gap:.08rem;
}
.trip-occurrence-prototype .student-card-actionbar__status strong,
.trip-occurrence-prototype .student-card-actionbar__status small{
  display:block;
  line-height:1.25;
}
.trip-occurrence-prototype .student-card-actionbar__status small{
  color:var(--sd-muted);
  font-size:.6rem;
  font-weight:600;
}
.trip-occurrence-prototype .student-card-actionbar__whatsapp.is-disabled{
  cursor:not-allowed;
  opacity:.55;
  pointer-events:none;
}


/* Action-required icon for trip cards uses the same complete status treatment as training cards. */
.trip-occurrence-prototype .student-card-actionbar__status.is-action_required{
  --student-status-color:#ff5b67;
  color:inherit;
}
.trip-occurrence-prototype .student-card-actionbar__status.is-action_required>i{
  display:grid;
  width:1.45rem;
  height:1.45rem;
  flex:0 0 1.45rem;
  place-items:center;
  border:1px solid color-mix(in srgb,var(--student-status-color) 78%,#fff);
  border-radius:50%;
  background:color-mix(in srgb,var(--student-status-color) 22%,transparent);
  color:var(--student-status-color);
  box-shadow:0 0 0 3px color-mix(in srgb,var(--student-status-color) 10%,transparent);
  font-size:.62rem;
  line-height:1;
}


.trip-schedule-summary{display:grid;grid-template-columns:38px minmax(0,1fr) auto;align-items:center;gap:.7rem;margin:0 .85rem;padding:.72rem .8rem;border:1px solid var(--odin-line);border-radius:.6rem;background:var(--sd-surface-2)}
.trip-schedule-summary>i{display:grid;width:38px;height:38px;place-items:center;border-radius:.5rem;font-size:.82rem}
.trip-schedule-summary>div{display:grid;min-width:0}.trip-schedule-summary span{font-size:.52rem;font-weight:850;letter-spacing:.075em}.trip-schedule-summary strong{margin-top:.08rem;font-size:.72rem}.trip-schedule-summary small{margin-top:.12rem;color:var(--sd-muted);font-size:.62rem;line-height:1.4}
.trip-schedule-summary>b{padding:.28rem .48rem;border-radius:999px;font-size:.58rem;white-space:nowrap}
.trip-schedule-summary.is-safe>i,.trip-schedule-summary.is-safe>b{background:color-mix(in srgb,var(--odin-success,#35bd83) 13%,transparent);color:var(--odin-success,#35bd83)}
.trip-schedule-summary.is-conflict>i,.trip-schedule-summary.is-conflict>b{background:color-mix(in srgb,#ff5b67 13%,transparent);color:#ff5b67}
.trip-auto-schedule .trip-record-group article{grid-template-columns:34px minmax(0,1fr)}
.trip-auto-schedule .trip-record-group article>b{display:grid;width:30px;height:30px;place-items:center;border-radius:.42rem;background:color-mix(in srgb,var(--odin-accent-1,var(--odin-info)) 10%,transparent)}
.trip-auto-schedule .trip-record-group article.is-optional>b{color:#a978e8;background:color-mix(in srgb,#a978e8 12%,transparent)}
.trip-auto-schedule .trip-record-group article.is-safety>b{color:var(--odin-success,#35bd83);background:color-mix(in srgb,var(--odin-success,#35bd83) 12%,transparent)}
@media(max-width:767.98px){.trip-schedule-summary{grid-template-columns:34px minmax(0,1fr);margin-inline:.75rem}.trip-schedule-summary>i{width:34px;height:34px}.trip-schedule-summary>b{grid-column:2;justify-self:start}}


.trip-auto-schedule .trip-record-group article.is-flight>b{
  color:var(--odin-info,var(--odin-accent-1));
  background:color-mix(in srgb,var(--odin-info,var(--odin-accent-1)) 12%,transparent);
}
.trip-auto-schedule .trip-record-group article.is-unavailable{
  opacity:.68;
}
.trip-auto-schedule .trip-record-group article.is-unavailable>b{
  color:var(--sd-muted);
  background:color-mix(in srgb,var(--sd-muted) 10%,transparent);
}


/* Timed schedule records can be replaced by instructor-created sessions. */
.trip-auto-schedule .trip-record-group article{
  grid-template-columns:30px 112px minmax(0,1fr);
}
.trip-schedule-item__icon{
  display:grid;
  width:30px;
  height:30px;
  place-items:center;
  border-radius:.42rem;
  background:color-mix(in srgb,var(--odin-accent-1,var(--odin-info)) 10%,transparent);
  color:var(--odin-accent-1,var(--odin-info));
  font-size:.68rem;
}
.trip-auto-schedule .trip-record-group article>b{
  display:grid;
  width:auto;
  height:auto;
  place-items:initial;
  border-radius:0;
  background:transparent;
  color:inherit;
}
.trip-auto-schedule .trip-record-group article>b>strong{
  font-size:.66rem;
}
.trip-auto-schedule .trip-record-group article>b>small{
  margin-top:.08rem;
  color:var(--sd-muted);
  font-size:.54rem;
  font-weight:650;
}
.trip-auto-schedule .trip-record-group article.is-unavailable .trip-schedule-item__icon{
  color:#ff5b67;
  background:color-mix(in srgb,#ff5b67 12%,transparent);
}
@media(max-width:575.98px){
  .trip-auto-schedule .trip-record-group article{
    grid-template-columns:30px minmax(0,1fr);
  }
  .trip-auto-schedule .trip-record-group article>b{
    grid-column:2;
  }
  .trip-auto-schedule .trip-record-group article>span{
    grid-column:2;
  }
}


/* Trip schedule as a vertical timeline with a date-driven current position. */
.trip-auto-schedule{
  position:relative;
  gap:.8rem;
}
.trip-auto-schedule:before{
  position:absolute;
  z-index:0;
  top:15px;
  bottom:15px;
  left:15px;
  width:2px;
  border-radius:999px;
  background:var(--odin-line);
  content:"";
}
.trip-auto-schedule .trip-record-group,
.trip-timeline-current{
  position:relative;
  z-index:1;
}
.trip-auto-schedule .trip-record-group>summary{
  padding:.48rem .55rem;
  border:1px solid var(--odin-line);
  border-radius:.58rem;
  background:var(--sd-surface-2);
}
.trip-auto-schedule .trip-record-group>summary>i:first-child{
  box-shadow:0 0 0 5px var(--sd-surface-2);
}
.trip-auto-schedule .trip-record-group>div{
  margin-left:45px;
}
.trip-auto-schedule .trip-record-group.is-current>summary{
  border-color:var(--odin-accent-1,var(--odin-info));
  background:color-mix(in srgb,var(--odin-accent-1,var(--odin-info)) 9%,var(--sd-surface-2));
  box-shadow:0 0 0 3px color-mix(in srgb,var(--odin-accent-1,var(--odin-info)) 10%,transparent);
}
.trip-auto-schedule .trip-record-group.is-current>summary>i:first-child{
  background:var(--odin-accent-1,var(--odin-info));
  color:#06111c;
  box-shadow:0 0 0 5px var(--sd-surface-2),0 0 0 8px color-mix(in srgb,var(--odin-accent-1,var(--odin-info)) 18%,transparent);
}
.trip-timeline-current{
  display:grid;
  grid-template-columns:30px minmax(0,1fr);
  align-items:center;
  gap:.55rem;
  padding:.55rem;
  border:1px solid var(--odin-accent-1,var(--odin-info));
  border-radius:.58rem;
  background:color-mix(in srgb,var(--odin-accent-1,var(--odin-info)) 10%,var(--sd-surface-2));
  box-shadow:0 0 0 3px color-mix(in srgb,var(--odin-accent-1,var(--odin-info)) 10%,transparent);
}
.trip-timeline-current>i{
  display:grid;
  width:30px;
  height:30px;
  place-items:center;
  border-radius:50%;
  background:var(--odin-accent-1,var(--odin-info));
  color:#06111c;
  box-shadow:0 0 0 5px var(--sd-surface-2),0 0 0 8px color-mix(in srgb,var(--odin-accent-1,var(--odin-info)) 18%,transparent);
}
.trip-timeline-current>div{
  display:grid;
  min-width:0;
}
.trip-timeline-current span{
  color:var(--odin-accent-1,var(--odin-info));
  font-size:.52rem;
  font-weight:850;
  letter-spacing:.075em;
}
.trip-timeline-current strong{
  margin-top:.08rem;
  font-size:.74rem;
}
.trip-timeline-current small{
  margin-top:.1rem;
  color:var(--sd-muted);
  font-size:.6rem;
}
@media(max-width:575.98px){
  .trip-auto-schedule .trip-record-group>div{
    margin-left:38px;
  }
}

/* Match the trip date overlay inset used by dashboard trip cards. */
.trip-occurrence-prototype .student-dashboard-card__date-box{
  top:.65rem;
  left:.65rem;
  z-index:3;
}


/* Instructor-created dive sessions shared by the schedule and the student's dive plan. */
.trip-dive-plan-summary{display:flex;flex-wrap:wrap;gap:.45rem;margin:0 .85rem}
.trip-dive-plan-summary>span{display:inline-flex;align-items:center;gap:.3rem;padding:.34rem .48rem;border:1px solid var(--odin-line);border-radius:.45rem;background:var(--sd-surface-2);font-size:.61rem}
.trip-dive-plan-summary i{color:var(--odin-accent-1,var(--odin-info))}
.trip-dive-plan .trip-dive-session{grid-template-columns:30px 112px minmax(0,1fr) auto}
.trip-dive-session>span{min-width:0}
.trip-dive-session>span>small{display:flex;flex-wrap:wrap;align-items:center;gap:.28rem}
.trip-dive-session>span>small>i:not([class]){width:1px;height:.72rem;background:var(--odin-line)}
.trip-dive-session>span>em{width:max-content;margin-top:.18rem;color:var(--odin-accent-1,var(--odin-info));font-size:.55rem;font-style:normal;font-weight:750}
.trip-dive-session__action,.trip-dive-session__state{align-self:center;display:flex;align-items:center;justify-content:center;gap:.38rem;min-width:128px;padding:.42rem .55rem;border:1px solid var(--odin-accent-1,var(--odin-info));border-radius:.45rem;background:transparent;color:var(--odin-accent-1,var(--odin-info));font-size:.58rem;font-weight:800}
.trip-dive-session__action span{display:grid;text-align:left}.trip-dive-session__action small{font-size:.52rem;font-weight:600}
.trip-dive-session__action:hover{background:var(--odin-accent-1,var(--odin-info));color:#06111c}
.trip-dive-session__state.is-assigned{border-color:var(--odin-success,#35bd83);color:var(--odin-success,#35bd83)}
@media(max-width:767.98px){
 .trip-dive-plan-summary{margin-inline:.75rem}
 .trip-dive-plan .trip-dive-session{grid-template-columns:30px minmax(0,1fr)}
 .trip-dive-plan .trip-dive-session>b,.trip-dive-plan .trip-dive-session>span,.trip-dive-plan .trip-dive-session>.trip-dive-session__action,.trip-dive-plan .trip-dive-session>.trip-dive-session__state{grid-column:2}
 .trip-dive-session__action,.trip-dive-session__state{justify-self:start}
}


/* Stable visual layer for the personalized dive-session plan. */
.trip-content-section .trip-dive-plan-summary{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:.55rem;
  padding:0;
}
.trip-content-section .trip-dive-plan-summary>span{
  min-height:42px;
  padding:.55rem .65rem;
  border:1px solid var(--odin-line);
  border-radius:.58rem;
  background:var(--sd-surface-2);
}
.trip-content-section .trip-dive-plan .trip-record-group{
  overflow:visible;
  border:0;
  background:transparent;
}
.trip-content-section .trip-dive-plan .trip-record-group>summary{
  padding:.5rem .55rem;
  border:1px solid var(--odin-line);
  border-radius:.58rem;
  background:var(--sd-surface-2);
}
.trip-content-section .trip-dive-plan .trip-record-group>div{
  display:grid;
  gap:.42rem;
  padding:.48rem 0 0 45px;
}
.trip-content-section .trip-dive-plan article.trip-dive-session{
  display:grid;
  grid-template-columns:30px 112px minmax(0,1fr) auto;
  align-items:center;
  gap:.65rem;
  padding:.68rem .72rem;
  border:1px solid var(--odin-line);
  border-radius:.55rem;
  background:var(--sd-surface-2);
  box-shadow:0 5px 16px color-mix(in srgb,#000 7%,transparent);
}
.trip-content-section .trip-dive-plan article.trip-dive-session.is-assigned{
  border-left:3px solid var(--odin-success,#35bd83);
}
.trip-content-section .trip-dive-plan article.trip-dive-session.is-open{
  border-left:3px solid var(--odin-accent-1,var(--odin-info));
}
.trip-content-section .trip-dive-plan article.trip-dive-session.is-planned{
  border-left:3px solid var(--sd-muted);
}
@media(max-width:767.98px){
  .trip-content-section .trip-dive-plan-summary{grid-template-columns:1fr}
  .trip-content-section .trip-dive-plan .trip-record-group>div{padding-left:38px}
  .trip-content-section .trip-dive-plan article.trip-dive-session{
    grid-template-columns:30px minmax(0,1fr);
  }
}


/* Day headers expose meeting, instructor, optional guide and group while collapsed. */
.trip-dive-day-meta{display:flex!important;flex-wrap:wrap;align-items:center;gap:.26rem .5rem;margin-top:.12rem}
.trip-dive-day-meta>span{display:inline-flex;align-items:center;gap:.22rem;min-width:0}
.trip-dive-day-meta>span+span:before{width:1px;height:.68rem;margin-right:.25rem;background:var(--odin-line);content:""}
.trip-dive-day-meta i{color:var(--odin-accent-1,var(--odin-info))}
.trip-dive-session__state.is-pending{border-color:var(--odin-warning,#f0a548);color:var(--odin-warning,#f0a548)}
@media(max-width:575.98px){
  .trip-dive-day-meta{display:grid!important;grid-template-columns:1fr}
  .trip-dive-day-meta>span+span:before{display:none}
}


/* Flight ticket visualization populated from the trip document record. */
.trip-ticket-visualization{display:grid;gap:.65rem;margin:0 .85rem}
.trip-ticket-source,.trip-ticket-empty{display:flex;align-items:center;gap:.55rem;padding:.58rem .65rem;border:1px solid var(--odin-line);border-radius:.58rem;background:var(--sd-surface-2)}
.trip-ticket-source>i,.trip-ticket-empty>i{color:var(--odin-accent-1,var(--odin-info));font-size:1rem}
.trip-ticket-source>span,.trip-ticket-empty>div{display:grid}.trip-ticket-source strong,.trip-ticket-empty strong{font-size:.68rem}.trip-ticket-source small,.trip-ticket-empty small{color:var(--sd-muted);font-size:.58rem}
.trip-ticket-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.65rem}
.trip-flight-ticket{overflow:hidden;border:1px solid var(--odin-line);border-radius:.65rem;background:var(--sd-surface-2);box-shadow:0 8px 22px color-mix(in srgb,#000 8%,transparent)}
.trip-flight-ticket>header{display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:.55rem .68rem;border-bottom:1px solid var(--odin-line);background:color-mix(in srgb,var(--odin-accent-1,var(--odin-info)) 8%,var(--sd-surface-2))}
.trip-flight-ticket>header span{display:flex;align-items:center;gap:.35rem;color:var(--odin-accent-1,var(--odin-info));font-size:.56rem;font-weight:850;letter-spacing:.07em}
.trip-flight-ticket>header strong{font-size:.72rem}
.trip-flight-ticket__route{display:grid;grid-template-columns:minmax(0,1fr) 28px minmax(0,1fr);align-items:center;gap:.4rem;padding:.75rem .7rem}
.trip-flight-ticket__route>section{display:grid;min-width:0}.trip-flight-ticket__route>section:last-child{text-align:right}
.trip-flight-ticket__route>section small{color:var(--sd-muted);font-size:.5rem;font-weight:750}.trip-flight-ticket__route>section strong{margin-top:.15rem;font-size:.72rem}.trip-flight-ticket__route>section span{margin-top:.13rem;color:var(--sd-muted);font-size:.57rem;line-height:1.35}
.trip-flight-ticket__route>i{color:var(--odin-accent-1,var(--odin-info));text-align:center}
.trip-flight-ticket__meta{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));border-top:1px solid var(--odin-line)}
.trip-flight-ticket__meta>span{display:grid;grid-template-columns:18px minmax(0,1fr);align-items:center;gap:.08rem .3rem;padding:.5rem .58rem;border-right:1px solid var(--odin-line);border-bottom:1px solid var(--odin-line)}
.trip-flight-ticket__meta>span:nth-child(2n){border-right:0}.trip-flight-ticket__meta>span:nth-last-child(-n+2){border-bottom:0}
.trip-flight-ticket__meta i{grid-row:1/3;color:var(--odin-accent-1,var(--odin-info));font-size:.64rem}.trip-flight-ticket__meta b{color:var(--sd-muted);font-size:.49rem}.trip-flight-ticket__meta strong{font-size:.58rem;line-height:1.3}
.trip-stay-info{grid-template-columns:repeat(2,minmax(0,1fr))}
@media(max-width:767.98px){.trip-ticket-visualization{margin-inline:.75rem}.trip-ticket-grid{grid-template-columns:1fr}}
@media(max-width:575.98px){.trip-flight-ticket__route{grid-template-columns:1fr}.trip-flight-ticket__route>i{transform:rotate(90deg)}.trip-flight-ticket__route>section:last-child{text-align:left}.trip-flight-ticket__meta{grid-template-columns:1fr}.trip-flight-ticket__meta>span{border-right:0}.trip-flight-ticket__meta>span:nth-last-child(-n+2){border-bottom:1px solid var(--odin-line)}.trip-flight-ticket__meta>span:last-child{border-bottom:0}}


/* Student-specific transfer documents synchronized with flight times. */
.trip-transfer-documents{display:grid;gap:.6rem;margin:0 .85rem}
.trip-transfer-documents>header h3{margin:.1rem 0 0;font-size:.78rem}.trip-transfer-documents>header p{margin:.12rem 0 0;color:var(--sd-muted);font-size:.61rem}
.trip-transfer-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.65rem}
.trip-transfer-card{overflow:hidden;border:1px solid var(--odin-line);border-radius:.65rem;background:var(--sd-surface-2)}
.trip-transfer-card>header{display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:.52rem .62rem;border-bottom:1px solid var(--odin-line)}
.trip-transfer-card>header>span{display:flex;align-items:center;gap:.32rem;color:var(--odin-accent-1,var(--odin-info));font-size:.56rem;font-weight:850;letter-spacing:.06em;text-transform:uppercase}
.trip-transfer-card>header>b{padding:.2rem .36rem;border-radius:999px;font-size:.52rem}.trip-transfer-card>header>b.is-safe{background:color-mix(in srgb,var(--odin-success,#35bd83) 12%,transparent);color:var(--odin-success,#35bd83)}
.trip-transfer-card__route{display:grid;grid-template-columns:minmax(0,1fr) 22px minmax(0,1fr);align-items:center;gap:.35rem;padding:.68rem}
.trip-transfer-card__route section{display:grid;min-width:0}.trip-transfer-card__route section:last-child{text-align:right}.trip-transfer-card__route small{color:var(--sd-muted);font-size:.49rem;font-weight:800}.trip-transfer-card__route strong{margin-top:.12rem;font-size:.67rem}.trip-transfer-card__route span{margin-top:.1rem;color:var(--sd-muted);font-size:.56rem}.trip-transfer-card__route>i{color:var(--odin-accent-1,var(--odin-info));font-size:.58rem;text-align:center}
.trip-transfer-card__meta{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));border-top:1px solid var(--odin-line)}
.trip-transfer-card__meta>span{display:grid;grid-template-columns:18px minmax(0,1fr);gap:.08rem .26rem;padding:.45rem .52rem;border-right:1px solid var(--odin-line);border-bottom:1px solid var(--odin-line)}.trip-transfer-card__meta>span:nth-child(2n){border-right:0}.trip-transfer-card__meta>span:nth-last-child(-n+2){border-bottom:0}
.trip-transfer-card__meta i{grid-row:1/3;color:var(--odin-accent-1,var(--odin-info));font-size:.62rem}.trip-transfer-card__meta b{color:var(--sd-muted);font-size:.49rem}.trip-transfer-card__meta strong{font-size:.56rem;line-height:1.35}
.trip-transfer-card>footer{display:flex;align-items:center;gap:.35rem;padding:.42rem .58rem;border-top:1px solid var(--odin-line);font-size:.55rem;font-weight:700}.trip-transfer-card>footer.is-safe{color:var(--odin-success,#35bd83)}.trip-transfer-card>footer.is-conflict{color:#ff5b67}
@media(max-width:767.98px){.trip-transfer-documents{margin-inline:.75rem}.trip-transfer-grid{grid-template-columns:1fr}}
@media(max-width:575.98px){.trip-transfer-card__route{grid-template-columns:1fr}.trip-transfer-card__route section:last-child{text-align:left}.trip-transfer-card__route>i{transform:rotate(90deg)}}


/* Accommodation document with calculated nights and per-night settlement. */
.trip-accommodation-document{display:grid;gap:.5rem;margin:0 .85rem}
.trip-accommodation-document>header{display:flex;align-items:flex-start;justify-content:space-between;gap:.7rem}.trip-accommodation-document>header h3{margin:.1rem 0 0;font-size:.8rem}.trip-accommodation-document>header p{margin:.14rem 0 0;color:var(--sd-muted);font-size:.59rem}.trip-accommodation-document>header>b{padding:.24rem .4rem;border-radius:999px;background:color-mix(in srgb,var(--odin-success,#35bd83) 12%,transparent);color:var(--odin-success,#35bd83);font-size:.54rem}
.trip-accommodation-card{overflow:hidden;border:1px solid var(--odin-line);border-radius:.65rem;background:var(--sd-surface-2)}
.trip-accommodation-card__dates{display:grid;grid-template-columns:minmax(0,1fr) 72px minmax(0,1fr);align-items:center;padding:.72rem}
.trip-accommodation-card__dates section{display:grid}.trip-accommodation-card__dates section:last-child{text-align:right}.trip-accommodation-card__dates section small{color:var(--sd-muted);font-size:.5rem;font-weight:800}.trip-accommodation-card__dates section strong{margin-top:.12rem;font-size:.72rem}.trip-accommodation-card__dates>span{display:grid;place-items:center;color:var(--odin-accent-1,var(--odin-info))}.trip-accommodation-card__dates>span b{font-size:1.1rem}.trip-accommodation-card__dates>span small{font-size:.5rem}
.trip-accommodation-card__details{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-top:1px solid var(--odin-line)}
.trip-accommodation-card__details>span{display:grid;grid-template-columns:20px minmax(0,1fr);gap:.08rem .3rem;padding:.52rem .58rem;border-right:1px solid var(--odin-line)}.trip-accommodation-card__details>span:last-child{border-right:0}.trip-accommodation-card__details i{grid-row:1/3;color:var(--odin-accent-1,var(--odin-info))}.trip-accommodation-card__details b{color:var(--sd-muted);font-size:.5rem}.trip-accommodation-card__details strong{font-size:.58rem}
.trip-accommodation-card>footer{display:flex;align-items:center;justify-content:space-between;gap:.6rem;padding:.58rem .68rem;border-top:1px solid var(--odin-line);background:color-mix(in srgb,var(--odin-accent-1,var(--odin-info)) 6%,var(--sd-surface-2))}.trip-accommodation-card>footer>div{display:grid}.trip-accommodation-card>footer small{color:var(--sd-muted);font-size:.5rem;font-weight:800}.trip-accommodation-card>footer strong{margin-top:.08rem;font-size:.68rem}.trip-accommodation-card>footer>b{color:var(--odin-accent-1,var(--odin-info));font-size:.58rem}
@media(max-width:767.98px){.trip-accommodation-document{margin-inline:.75rem}.trip-accommodation-card__details{grid-template-columns:repeat(2,minmax(0,1fr))}.trip-accommodation-card__details>span:nth-child(2){border-right:0}.trip-accommodation-card__details>span:nth-child(-n+2){border-bottom:1px solid var(--odin-line)}}
@media(max-width:575.98px){.trip-accommodation-card__dates{grid-template-columns:1fr;text-align:left}.trip-accommodation-card__dates section:last-child{text-align:left}.trip-accommodation-card__dates>span{grid-template-columns:auto auto;justify-content:start;gap:.25rem;margin:.45rem 0}.trip-accommodation-card__details{grid-template-columns:1fr}.trip-accommodation-card__details>span{border-right:0!important;border-bottom:1px solid var(--odin-line)}.trip-accommodation-card__details>span:last-child{border-bottom:0}.trip-accommodation-card>footer{align-items:flex-start;flex-direction:column}}


/* Room number is a primary arrival detail, not part of the room-type sentence. */
.trip-accommodation-card__room-number{grid-column:2;display:inline-flex;width:max-content;max-width:100%;margin-top:.22rem;padding:.24rem .46rem;border:1px solid color-mix(in srgb,var(--odin-accent-1,var(--odin-info)) 55%,var(--odin-line));border-radius:.42rem;background:color-mix(in srgb,var(--odin-accent-1,var(--odin-info)) 13%,var(--sd-surface-2));color:var(--odin-accent-1,var(--odin-info));font-size:.68rem;font-style:normal;font-weight:900;letter-spacing:.035em}


/* All travel records share one document-driven chronological stream. */
.trip-travel-chronology{display:grid;gap:.6rem;margin:0 .85rem}
.trip-travel-chronology>header{display:flex;align-items:flex-end;justify-content:space-between;gap:.8rem}.trip-travel-chronology>header h3{margin:.1rem 0 0;font-size:.8rem}.trip-travel-chronology>header p{margin:.12rem 0 0;color:var(--sd-muted);font-size:.59rem}.trip-travel-chronology>header>span{display:flex;align-items:center;gap:.3rem;color:var(--odin-success,#35bd83);font-size:.55rem;font-weight:750}
.trip-travel-chronology__list{position:relative;display:grid;gap:.65rem;padding-left:34px}
.trip-travel-chronology__list:before{position:absolute;top:16px;bottom:16px;left:14px;width:2px;border-radius:999px;background:var(--odin-line);content:""}
.trip-travel-chronology__entry{position:relative;min-width:0}
.trip-travel-chronology__marker{position:absolute;z-index:3;top:14px;left:-34px;display:grid;width:28px;height:28px;place-items:center;border:3px solid var(--sd-surface-1,var(--sd-surface-2));border-radius:50%;background:var(--odin-accent-1,var(--odin-info));color:#06111c;font-size:.56rem;font-weight:900}
.trip-travel-chronology__entry>.trip-flight-ticket,.trip-travel-chronology__entry>.trip-transfer-card{width:100%}
.trip-travel-chronology__entry>.trip-accommodation-document{width:100%;margin:0}
@media(max-width:767.98px){.trip-travel-chronology{margin-inline:.75rem}.trip-travel-chronology>header{align-items:flex-start;flex-direction:column}}


/* Room type and emphasized room number stay on one readable line. */
.trip-accommodation-card__room-line{grid-column:2;display:flex;align-items:center;flex-wrap:wrap;gap:.3rem;min-width:0}
.trip-accommodation-card__room-line>.trip-accommodation-card__room-number{grid-column:auto;margin-top:0;padding:.14rem .34rem;font-size:.58rem;white-space:nowrap}


/* Multi-currency occurrence settlement and costs awaiting acceptance. */
.student-settlement-detailed__currencies{display:grid;gap:.65rem}
.student-settlement-detailed__currency{display:grid;gap:.45rem}.student-settlement-detailed__currency>header{width:max-content;padding:.22rem .42rem;border-radius:.38rem;background:color-mix(in srgb,var(--odin-accent-1,var(--odin-info)) 12%,transparent);color:var(--odin-accent-1,var(--odin-info));font-size:.58rem;font-weight:900}
.student-settlement-detailed__cost span>em{display:block;width:max-content;margin-top:.16rem;padding:.12rem .28rem;border-radius:.28rem;background:color-mix(in srgb,var(--odin-accent-1,var(--odin-info)) 8%,transparent);color:var(--odin-accent-1,var(--odin-info));font-size:.48rem;font-style:normal;font-weight:750}
.student-settlement-pending>div{display:grid}.student-settlement-pending article{display:flex;align-items:center;justify-content:space-between;gap:.7rem;padding:.62rem .7rem;border-top:1px solid var(--odin-line)}.student-settlement-pending article>span{display:grid}.student-settlement-pending article strong{font-size:.65rem}.student-settlement-pending article small{margin-top:.1rem;color:var(--sd-muted);font-size:.56rem}.student-settlement-pending article>b{color:var(--odin-warning,#f0a548);font-size:.65rem;white-space:nowrap}
