:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#14213d;background:#f5f7fb}*{box-sizing:border-box}body{margin:0}.shell{max-width:760px;margin:auto;min-height:100vh;background:#f7f9fc}.top{background:#1d4ed8;color:white;padding:22px 18px 18px;position:sticky;top:0;z-index:4}.top h1{margin:0;font-size:22px}.muted{opacity:.76;font-size:13px}.nav{display:flex;gap:6px;overflow:auto;padding:9px;background:white;position:sticky;top:81px;z-index:3;border-bottom:1px solid #e6e9ef}.nav button{white-space:nowrap;border:0;background:transparent;padding:9px 11px;border-radius:10px;color:#526173}.nav button.active{background:#e8efff;color:#1d4ed8;font-weight:700}.page{padding:14px 14px 90px}.card{background:white;border:1px solid #e4e8ef;border-radius:14px;padding:14px;margin-bottom:12px;box-shadow:0 1px 2px rgba(20,33,61,.03)}.card h3{margin:0 0 10px;font-size:15px}.row{display:flex;justify-content:space-between;gap:10px;align-items:center}.list{display:grid;gap:8px}.item{padding:10px 0;border-top:1px solid #eef1f5}.item:first-child{border-top:0}.badge{font-size:12px;background:#eef4ff;color:#1d4ed8;padding:4px 8px;border-radius:999px}.danger{background:#fff1f2;color:#b42318}.ok{background:#ecfdf3;color:#027a48}.fab{position:fixed;right:calc(max(18px,(100vw - 760px)/2 + 18px));bottom:22px;width:56px;height:56px;border-radius:50%;border:0;background:#1d4ed8;color:#fff;font-size:28px;box-shadow:0 8px 24px rgba(29,78,216,.32)}button{cursor:pointer}button.primary{border:0;background:#1d4ed8;color:white;border-radius:10px;padding:10px 14px;font-weight:700}button.secondary{border:1px solid #d7dce5;background:white;border-radius:10px;padding:9px 12px}.auth{max-width:420px;margin:8vh auto;padding:20px}.auth h1{font-size:28px}.field{display:grid;gap:5px;margin:12px 0}.field input,.field select,.field textarea{width:100%;padding:11px;border:1px solid #cfd6e1;border-radius:10px;font:inherit}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:8px}.modal{position:fixed;inset:0;background:rgba(12,22,38,.48);display:grid;place-items:end center;z-index:10}.sheet{background:white;border-radius:18px 18px 0 0;padding:18px;width:min(760px,100%);max-height:82vh;overflow:auto}.sheet h2{margin-top:0}.small{font-size:12px;color:#667085}.money{font-size:24px;font-weight:800}.empty{color:#7c8799;padding:12px 0}.location{background:#f0f9ff;border-color:#b9e6fe}@media(min-width:700px){.modal{place-items:center}.sheet{border-radius:18px;max-width:600px}.top{border-radius:0 0 12px 12px}}
.proposal-card h3{margin:2px 0 5px}.proposal-options{display:grid;gap:9px;margin:12px 0}.proposal-option{border:1px solid #e2e8f0;border-radius:12px;padding:11px;background:#fbfcfe}.proposal-option.chosen{border-color:#84adff;background:#eff6ff}.selected-option{margin:10px 0;padding:9px 11px;background:#ecfdf3;color:#027a48;border-radius:10px}.preference-row{display:flex;gap:6px;margin:9px 0;flex-wrap:wrap}.pref-btn.active-pref{border-color:#1d4ed8;background:#eef4ff;color:#1d4ed8}.proposal-actions{justify-content:flex-start;flex-wrap:wrap}.comments{margin-top:10px;border-top:1px solid #eef1f5;padding-top:9px}.comment{font-size:13px;padding:4px 0}.procon{font-size:12px;color:#027a48;margin-top:6px}.procon.minus{color:#b42318}


/* TRAVELOPS_MOBILE_V1 */

/* ---------- General touch improvements ---------- */
html{
  -webkit-text-size-adjust:100%;
}

body{
  overflow-x:hidden;
}

button,
input,
select,
textarea{
  font:inherit;
}

button{
  min-height:44px;
  touch-action:manipulation;
}

input,
select,
textarea{
  min-height:44px;
}

textarea{
  min-height:110px;
}

/* ---------- Tablet / mobile ---------- */
@media (max-width: 768px){

  body{
    margin:0;
  }

  .shell{
    width:100%;
    max-width:100%;
    margin:0;
  }

  .top{
    padding:20px 18px 18px;
    border-radius:0;
  }

  .top h1{
    font-size:26px;
    line-height:1.15;
    overflow-wrap:anywhere;
    word-break:normal;
  }

  .top .muted,
  .muted{
    font-size:14px;
    line-height:1.45;
    overflow-wrap:anywhere;
  }

  /* Horizontal tab navigation instead of squeezing */
  .nav{
    display:flex;
    gap:7px;
    width:100%;
    overflow-x:auto;
    overflow-y:hidden;
    padding:10px 12px 12px;
    scroll-snap-type:x proximity;
    -webkit-overflow-scrolling:touch;
    scrollbar-width:none;
  }

  .nav::-webkit-scrollbar{
    display:none;
  }

  .nav button{
    flex:0 0 auto;
    white-space:nowrap;
    min-height:44px;
    padding:9px 14px;
    font-size:15px;
    scroll-snap-align:start;
  }

  .page{
    padding:14px 12px 90px;
  }

  .card{
    width:100%;
    padding:18px 16px;
    border-radius:16px;
    margin-bottom:12px;
  }

  .card h2,
  .card h3{
    line-height:1.25;
  }

  .item{
    padding:14px 0;
  }

  /* Rows must be allowed to wrap */
  .row{
    gap:10px;
    flex-wrap:wrap;
    align-items:flex-start;
  }

  .row > *{
    min-width:0;
  }

  .row > div:first-child{
    flex:1 1 200px;
  }

  /* Forms become single column */
  .grid2{
    grid-template-columns:1fr !important;
    gap:0 !important;
  }

  .field{
    margin-bottom:14px;
  }

  .field input,
  .field select,
  .field textarea,
  input,
  select,
  textarea{
    width:100%;
    max-width:100%;
    box-sizing:border-box;
    font-size:16px;
  }

  /* Avoid iPhone zoom on form focus */
  input,
  select,
  textarea{
    font-size:16px !important;
  }

  button.primary,
  button.secondary{
    padding:11px 14px;
  }

  /* Proposal cards */
  .proposal-card{
    overflow:hidden;
  }

  .proposal-option{
    padding:14px 0;
  }

  .proposal-actions{
    display:flex;
    flex-wrap:wrap;
    gap:8px;
  }

  .proposal-actions button{
    flex:1 1 140px;
  }

  .preference-row{
    display:flex;
    flex-wrap:wrap;
    gap:7px;
  }

  .preference-row button{
    flex:1 1 90px;
  }

  .selected-option,
  .comments,
  .comment{
    overflow-wrap:anywhere;
  }

  /* Expenses / balances */
  .item .row > div:last-child{
    max-width:100%;
  }

  .item .row button{
    margin-top:4px;
  }

  /* Modal becomes bottom sheet */
  .modal{
    align-items:flex-end;
    padding:0;
  }

  .sheet{
    width:100%;
    max-width:100%;
    max-height:92vh;
    overflow-y:auto;
    border-radius:20px 20px 0 0;
    padding:22px 16px calc(20px + env(safe-area-inset-bottom));
    margin:0;
  }

  .sheet h2{
    margin-top:0;
  }

  /* Floating Add button */
  .fab{
    position:fixed;
    right:18px;
    bottom:calc(18px + env(safe-area-inset-bottom));
    width:58px;
    height:58px;
    min-height:58px;
    border-radius:50%;
    z-index:50;
  }

  /* Login screen */
  .auth{
    width:100%;
    max-width:100%;
    padding:28px 16px;
    box-sizing:border-box;
  }

  .auth .card{
    width:100%;
  }

  /* Links and long text */
  a,
  .small{
    overflow-wrap:anywhere;
  }

  .badge{
    flex:0 0 auto;
  }
}

/* ---------- Small phones ---------- */
@media (max-width: 480px){

  .top{
    padding:18px 14px 16px;
  }

  .top h1{
    font-size:23px;
  }

  .page{
    padding:12px 10px 88px;
  }

  .card{
    padding:16px 14px;
    border-radius:14px;
  }

  .nav{
    padding-left:10px;
    padding-right:10px;
  }

  .nav button{
    font-size:14px;
    padding:8px 12px;
  }

  .row{
    flex-direction:column;
    align-items:stretch;
  }

  .row button{
    width:100%;
  }

  .proposal-actions button,
  .preference-row button{
    width:100%;
    flex:1 1 100%;
  }

  .item .row > div:last-child{
    width:100%;
  }

  .item .row > div:last-child > b{
    display:inline-block;
    margin-bottom:6px;
  }

  .sheet .row{
    flex-direction:column-reverse;
  }

  .sheet .row button{
    width:100%;
  }
}


/* TRAVELOPS_SCHEDULE_GROUP_CSS_V1 */

.schedule-day{
  margin:0 0 22px;
}

.schedule-day-head{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:12px;
  margin:0 4px 9px;
}

.schedule-date{
  font-size:18px;
  font-weight:800;
  color:#182033;
}

.schedule-count{
  font-size:12px;
  color:#667085;
}

.schedule-card{
  padding:0 !important;
  overflow:hidden;
}

.schedule-item{
  display:grid;
  grid-template-columns:120px minmax(0,1fr);
  gap:16px;
  padding:18px;
  border-bottom:1px solid #edf0f4;
}

.schedule-item:last-child{
  border-bottom:0;
}

.schedule-time{
  font-size:14px;
  line-height:1.45;
  font-weight:750;
  color:#1d4ed8;
}

.schedule-content{
  min-width:0;
}

.schedule-title{
  display:block;
  font-size:16px;
  line-height:1.4;
  margin-bottom:5px;
}

.schedule-location{
  margin-top:4px;
}

.schedule-notes{
  margin-top:8px;
  line-height:1.45;
}

.schedule-actions{
  display:flex;
  flex-wrap:wrap;
  gap:7px;
  margin-top:12px;
}

.schedule-actions button{
  min-height:38px;
  padding:7px 11px;
}

@media(max-width:768px){

  .schedule-day{
    margin-bottom:20px;
  }

  .schedule-date{
    font-size:17px;
  }

  .schedule-item{
    grid-template-columns:1fr;
    gap:6px;
    padding:16px 14px;
  }

  .schedule-time{
    font-size:14px;
  }

  .schedule-title{
    font-size:16px;
  }

  .schedule-actions{
    margin-top:10px;
  }

  .schedule-actions button{
    width:auto !important;
  }
}



/* TRAVELOPS_TODAY_MAP_CSS_V1 */

.today-hero{
  margin:0 0 16px;
  padding:4px 4px 2px;
}

.today-hero h2{
  margin:3px 0 4px;
  font-size:25px;
  line-height:1.2;
}

.today-section-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin-bottom:8px;
}

.today-section-head h3{
  margin:0;
}

.today-timeline{
  margin-top:6px;
}

.today-trip-item{
  display:grid;
  grid-template-columns:105px minmax(0,1fr);
  gap:15px;
  padding:16px 0;
  border-bottom:1px solid #edf0f4;
}

.today-trip-item:last-child{
  border-bottom:0;
}

.today-trip-item.today-next{
  background:#f7f9ff;
  margin-left:-12px;
  margin-right:-12px;
  padding-left:12px;
  padding-right:12px;
  border-radius:12px;
}

.today-time{
  font-size:14px;
  font-weight:750;
  color:#1d4ed8;
  line-height:1.45;
}

.today-trip-content{
  min-width:0;
}

.today-trip-title{
  display:block;
  font-size:16px;
  line-height:1.4;
}

.today-next-label{
  display:inline-block;
  margin-bottom:5px;
  padding:3px 7px;
  border-radius:999px;
  background:#1d4ed8;
  color:white;
  font-size:10px;
  font-weight:800;
  letter-spacing:.05em;
}

.today-location{
  margin-top:5px;
}

.today-notes{
  margin-top:8px;
  line-height:1.45;
}

.today-map-actions,
.schedule-actions{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:7px;
}

.today-map-actions{
  margin-top:10px;
}

.trip-map-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:38px;
  padding:7px 11px;
  border:1px solid #d8dde6;
  border-radius:8px;
  background:#fff;
  color:#2157a5;
  text-decoration:none;
  font-size:14px;
  font-weight:600;
}

.trip-map-btn:active{
  transform:scale(.98);
}

@media(max-width:768px){

  .today-trip-item{
    grid-template-columns:1fr;
    gap:5px;
    padding:15px 0;
  }

  .today-time{
    font-size:14px;
  }

  .today-hero h2{
    font-size:22px;
  }

  .trip-map-btn{
    flex:0 0 auto;
  }
}


/* TRAVELOPS_STAYS_MUSTDO_CSS_V1 */

.page-head{
  align-items:flex-start;
  margin-bottom:15px;
}

.page-head h2{
  margin:0 0 4px;
}

.travel-info-card,
.must-do-card{
  line-height:1.55;
}

.travel-info-card h3,
.must-do-card h3{
  margin:2px 0 10px;
}

.travel-line{
  margin-top:3px;
}

.travel-note,
.must-do-bring{
  margin-top:12px;
  padding:11px 12px;
  border-radius:10px;
  background:#f6f8fb;
}

.must-do-bring{
  background:#fff7ed;
}

.travel-actions{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin-top:15px;
}

.must-do-badge{
  display:inline-block;
  padding:3px 8px;
  border-radius:999px;
  background:#b42318;
  color:#fff;
  font-size:11px;
  font-weight:800;
  letter-spacing:.04em;
}

.must-do-done{
  opacity:.7;
}

.must-do-done .must-do-badge{
  background:#15803d;
}

@media(max-width:768px){
  .page-head{
    display:block;
  }

  .page-head>button{
    margin-top:12px;
    width:100%;
  }

  .travel-actions button,
  .travel-actions a{
    width:auto !important;
  }
}


/* TRAVELOPS_MOBILE_UI_V3_CSS */

.travelops-mobile-bar-v3,
.travelops-mobile-drawer-v3{
  display:none;
}

@media(max-width:600px){

  html{
    scroll-padding-top:54px;
  }

  body{
    padding-top:50px !important;
    overflow-x:hidden;
  }

  /*
   * Hide all previous mobile navigation systems.
   */
  nav,
  .nav,
  .top-nav,
  #travelopsMoreSubmenu,
  #travelopsMoreSubmenuV3,
  #travelopsMobileHeader,
  #travelopsMobileDrawer,
  #travelopsMobileMenuV2,
  .travelops-mobile-menu-button-v2,
  .travelops-hamburger-btn{
    display:none !important;
  }

  /*
   * Old large trip heading no longer needs to occupy
   * valuable phone screen space.
   */
  header,
  .header,
  .trip-header,
  .top{
    max-height:0 !important;
    min-height:0 !important;
    height:0 !important;
    padding:0 !important;
    margin:0 !important;
    overflow:hidden !important;
    border:0 !important;
  }

  /*
   * Compact fixed mobile header.
   */
  .travelops-mobile-bar-v3{
    display:flex;

    position:fixed;
    top:0;
    left:0;
    right:0;
    z-index:5000;

    height:50px;

    padding:
      env(safe-area-inset-top)
      10px
      0;

    align-items:center;
    justify-content:space-between;
    gap:10px;

    background:rgba(255,255,255,.97);

    backdrop-filter:blur(12px);
    -webkit-backdrop-filter:blur(12px);

    border-bottom:1px solid #e7e9ee;
  }

  .travelops-mobile-heading-v3{
    min-width:0;
    flex:1;

    display:flex;
    align-items:baseline;
    gap:8px;
  }

  #travelopsMobilePageV3{
    flex:0 0 auto;

    font-size:17px;
    line-height:1;
    font-weight:800;

    color:#111827;
  }

  #travelopsMobileTripV3{
    min-width:0;

    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;

    font-size:11px;
    color:#667085;
  }

  #travelopsMobileMenuButtonV3{
    flex:0 0 auto;

    width:38px;
    height:36px;

    display:flex;
    align-items:center;
    justify-content:center;

    border:0;
    border-radius:9px;

    background:#f2f4f7;
    color:#101828;

    font-size:22px;
    line-height:1;
  }

  /*
   * Drawer
   */
  .travelops-mobile-drawer-v3{
    display:none;

    position:fixed;
    inset:0;
    z-index:6000;

    background:rgba(15,23,42,.38);
  }

  .travelops-mobile-drawer-v3.open{
    display:block;
  }

  .travelops-mobile-drawer-panel-v3{
    position:absolute;
    top:0;
    right:0;
    bottom:0;

    width:min(82vw,310px);

    padding:
      calc(10px + env(safe-area-inset-top))
      12px
      calc(18px + env(safe-area-inset-bottom));

    overflow-y:auto;

    background:#fff;

    box-shadow:-14px 0 35px rgba(0,0,0,.16);
  }

  .travelops-mobile-drawer-head-v3{
    display:flex;
    align-items:center;
    justify-content:space-between;

    min-height:48px;
    margin-bottom:15px;
  }

  .travelops-mobile-drawer-head-v3 b{
    font-size:18px;
  }

  .travelops-mobile-drawer-head-v3 .small{
    margin-top:2px;
  }

  #travelopsMobileCloseV3{
    width:36px;
    height:36px;

    border:0;
    border-radius:9px;

    background:#f2f4f7;

    font-size:17px;
  }

  .travelops-mobile-menu-label-v3{
    margin:17px 4px 6px;

    font-size:10px;
    font-weight:800;
    letter-spacing:.08em;

    color:#98a2b3;
  }

  .travelops-mobile-drawer-panel-v3 >
  button[data-mobile-v3-page]{
    width:100%;
    min-height:44px;

    display:flex;
    align-items:center;

    margin-bottom:4px;
    padding:0 13px;

    border:0;
    border-radius:9px;

    background:transparent;
    color:#101828;

    text-align:left;

    font-size:14px;
    font-weight:650;
  }

  .travelops-mobile-drawer-panel-v3 >
  button[data-mobile-v3-page]:active{
    background:#f2f4f7;
  }

  .travelops-mobile-drawer-panel-v3 >
  button[data-mobile-v3-page].active{
    background:#eef4ff;
    color:#1d4ed8;
  }

  body.travelops-mobile-drawer-open-v3{
    overflow:hidden;
  }

  /*
   * General page spacing.
   */
  main,
  .main,
  .content,
  #content{
    padding-top:6px !important;
  }

  .page{
    padding-top:0 !important;
  }

  .card{
    padding:12px !important;
    margin-bottom:10px !important;
    border-radius:12px !important;
  }

  .card h2,
  .card h3{
    margin-top:0;
  }

  .page-head{
    margin-bottom:9px !important;
  }

  .page-head h2{
    font-size:19px !important;
    line-height:1.2 !important;
  }

  /*
   * Today
   */
  .today-hero{
    display:none !important;
  }

  .today-trip-item{
    grid-template-columns:62px minmax(0,1fr) !important;
    gap:9px !important;
    padding:11px 0 !important;
  }

  .today-time{
    font-size:13px !important;
  }

  .today-trip-title{
    font-size:15px !important;
  }

  .today-trip-item.today-next{
    margin-left:-8px !important;
    margin-right:-8px !important;
    padding-left:8px !important;
    padding-right:8px !important;
  }

  /*
   * Schedule becomes a compact timeline instead
   * of tall stacked blocks.
   */
  .schedule-day{
    margin-bottom:15px !important;
  }

  .schedule-day-head{
    position:sticky;
    top:50px;
    z-index:20;

    min-height:34px;

    margin:0 -2px 4px !important;
    padding:7px 4px;

    background:rgba(248,250,252,.96);

    backdrop-filter:blur(8px);
    -webkit-backdrop-filter:blur(8px);
  }

  .schedule-date{
    font-size:15px !important;
  }

  .schedule-count{
    font-size:10px !important;
  }

  .schedule-item{
    grid-template-columns:64px minmax(0,1fr) !important;
    gap:10px !important;

    padding:12px 10px !important;
  }

  .schedule-time{
    font-size:12px !important;
    line-height:1.35 !important;
  }

  .schedule-title{
    font-size:14px !important;
    line-height:1.35 !important;
  }

  .schedule-location,
  .schedule-notes,
  .schedule-content .small{
    font-size:12px !important;
  }

  /*
   * Keep actions available without making them
   * dominate every itinerary card.
   */
  .schedule-actions,
  .today-map-actions,
  .travel-actions{
    gap:5px !important;
    margin-top:8px !important;
  }

  .schedule-actions button,
  .schedule-actions a,
  .today-map-actions a,
  .travel-actions button,
  .travel-actions a{
    min-height:34px !important;

    padding:6px 9px !important;

    border-radius:7px !important;

    font-size:11px !important;
  }

  /*
   * Stays / Must Do
   */
  .travel-info-card,
  .must-do-card{
    line-height:1.45 !important;
  }

  .travel-info-card h3,
  .must-do-card h3{
    margin-bottom:7px !important;
    font-size:16px !important;
  }

  .travel-note,
  .must-do-bring{
    margin-top:8px !important;
    padding:9px 10px !important;
  }

  .must-do-badge{
    font-size:9px !important;
    padding:3px 7px !important;
  }

  /*
   * Forms / sheets
   */
  .modal .sheet,
  .sheet{
    max-height:90vh !important;
    overflow-y:auto !important;

    padding:16px !important;

    border-radius:16px 16px 0 0 !important;
  }

  .field{
    margin-bottom:10px !important;
  }

  input,
  select,
  textarea{
    font-size:16px !important;
  }

}

@media(min-width:601px){

  .travelops-mobile-bar-v3,
  .travelops-mobile-drawer-v3{
    display:none !important;
  }

}

/* TRAVELOPS_STAY_CARD_GAP_FIX_V1 */

@media(max-width:600px){

  .travel-info-card{
    display:block !important;
    height:auto !important;
    min-height:0 !important;
  }

  .travel-info-card > .row{
    display:block !important;
    height:auto !important;
    min-height:0 !important;
    margin:0 0 8px !important;
    padding:0 !important;
  }

  .travel-info-card > .row > div{
    height:auto !important;
    min-height:0 !important;
    margin:0 !important;
    padding:0 !important;
  }

  .travel-info-card h3{
    margin:2px 0 8px !important;
    padding:0 !important;
  }

  .travel-info-card > div{
    min-height:0 !important;
  }

}

/* TRAVELOPS_MOBILE_CARD_COMPACT_V1 */

@media(max-width:600px){

  /* Generic list items must size to their real content */
  .card > .item{
    display:block !important;
    height:auto !important;
    min-height:0 !important;
    max-height:none !important;
    margin:0 !important;
    padding:10px 0 !important;
  }

  .card > .item + .item{
    border-top:1px solid #edf0f4;
  }

  /* Main row inside normal cards */
  .card > .item > .row{
    display:flex !important;
    flex-direction:row !important;
    flex-wrap:wrap !important;

    align-items:flex-start !important;
    justify-content:space-between !important;

    height:auto !important;
    min-height:0 !important;
    max-height:none !important;

    gap:8px !important;
    margin:0 !important;
    padding:0 !important;
  }

  .card > .item > .row > div{
    height:auto !important;
    min-height:0 !important;
    margin:0 !important;
  }

  /* Text block */
  .card > .item > .row > div:first-child{
    flex:1 1 160px !important;
    min-width:0 !important;
  }

  /* Amount / action block */
  .card > .item > .row > div:last-child{
    flex:0 1 auto !important;

    display:flex !important;
    flex-wrap:wrap !important;
    align-items:center !important;
    justify-content:flex-end !important;

    gap:6px !important;
  }

  .card > .item > .row button{
    width:auto !important;
    min-width:0 !important;
    min-height:34px !important;

    margin:0 !important;
    padding:6px 9px !important;

    font-size:11px !important;
  }

  /* Balance rows stay compact and horizontal */
  .card > .item > .row > span,
  .card > .item > .row > b{
    margin:0 !important;
    padding:0 !important;
  }

  /* Stop global mobile row rules creating tall blocks */
  .card .row{
    min-height:0 !important;
  }

  /* Do not interfere with specialist travel layouts */
  .schedule-item,
  .today-trip-item,
  .travel-info-card,
  .must-do-card{
    max-height:none !important;
  }

}


/* TRAVELOPS_MOBILE_FINAL_V1
   Active mobile stack:
   - TRAVELOPS_MOBILE_V1
   - TRAVELOPS_SCHEDULE_GROUP_CSS_V1
   - TRAVELOPS_TODAY_MAP_CSS_V1
   - TRAVELOPS_STAYS_MUSTDO_CSS_V1
   - TRAVELOPS_MOBILE_UI_V3_CSS
   - TRAVELOPS_STAY_CARD_GAP_FIX_V1
   - TRAVELOPS_MOBILE_CARD_COMPACT_V1

   Deprecated menu/mobile patches were removed on cleanup.
*/

/* TRAVELOPS_SMART_CAPTURE_CSS_V1 */

.smart-capture-choice{
  margin:18px 0 12px;
}

.smart-capture-upload{
  min-height:54px;
  display:flex;
  align-items:center;
  justify-content:center;

  padding:12px;

  border:1px dashed #98a2b3;
  border-radius:12px;

  background:#f8fafc;

  font-weight:700;
  cursor:pointer;
}

.smart-capture-divider{
  margin:12px 0;

  text-align:center;

  font-size:11px;
  font-weight:800;

  color:#98a2b3;
}

.smart-capture-result-head{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;

  margin:18px 0 12px;
}

.smart-capture-result-head h3{
  margin:2px 0 0;
}

.smart-capture-warning{
  margin:0 0 12px;
  padding:10px 12px;

  border-radius:10px;

  background:#fff7ed;
  color:#7c2d12;

  font-size:13px;
  line-height:1.45;
}

#travelopsSmartCaptureV1{
  background:#eef4ff !important;
  color:#1d4ed8 !important;
  font-weight:800 !important;
}

@media(max-width:600px){

  .smart-capture-modal .sheet{
    height:auto !important;
    max-height:92vh !important;
  }

  .smart-capture-upload{
    min-height:58px;
  }

}

/* TRAVELOPS_SMART_CAPTURE_CONFIRM_V1 */

.smart-capture-confirm-note{
  margin:0 0 12px;
  padding:10px 12px;
  border-radius:10px;
  background:#eef4ff;
  font-size:13px;
  line-height:1.45;
}

@media(max-width:600px){
  #smartCaptureSave{
    font-weight:800 !important;
  }
}

/* TRAVELOPS_PEOPLE_DETAIL_V1_CSS */

.person-list-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  cursor:pointer;
}

.person-list-main{
  min-width:0;
  flex:1;
}

.person-list-name{
  display:block;
  font-size:16px;
}

.person-list-actions{
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  justify-content:flex-end;
  gap:7px;
}

.person-detail-head{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:15px;
}

.person-detail-head h2{
  margin:3px 0;
}

.person-subtitle{
  color:#667085;
  margin-top:2px;
}

.person-status-row{
  margin:12px 0;
}

.person-detail-block{
  border-top:1px solid #e8ebf0;
}

.person-detail-line{
  display:grid;
  grid-template-columns:130px minmax(0,1fr);
  gap:12px;
  padding:12px 0;
  border-bottom:1px solid #eef0f3;
}

.person-detail-label{
  color:#667085;
  font-size:13px;
}

.person-detail-value{
  min-width:0;
  overflow-wrap:anywhere;
}

.person-detail-value a{
  color:#1565d8;
}

.person-detail-actions{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin-top:16px;
}

.person-action-link{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  text-decoration:none;
}

@media(max-width:600px){

  .person-list-row{
    align-items:flex-start;
  }

  .person-list-actions{
    max-width:155px;
  }

  .person-list-actions .badge{
    max-width:100%;
    overflow:hidden;
    text-overflow:ellipsis;
  }

  .person-list-actions button{
    width:auto !important;
    min-height:36px !important;
    padding:7px 10px !important;
  }

  .person-detail-sheet{
    max-height:88vh;
    overflow-y:auto;
  }

  .person-detail-line{
    grid-template-columns:1fr;
    gap:3px;
    padding:10px 0;
  }

  .person-detail-actions{
    position:sticky;
    bottom:0;
    padding:10px 0 calc(6px + env(safe-area-inset-bottom));
    background:#fff;
  }

  .person-detail-actions button,
  .person-detail-actions a{
    flex:1 1 42%;
    min-height:42px;
  }

}


/* TRAVELOPS_INVITE_ONBOARDING_V1 */

.invite-auth{
  max-width:520px;
  margin:0 auto;
  padding-top:40px;
}

.invite-brand{
  text-align:center;
  font-size:18px;
  font-weight:800;
  margin-bottom:14px;
}

.invite-card{
  text-align:center;
}

.invite-icon{
  font-size:34px;
  margin-bottom:8px;
}

.invite-kicker{
  font-weight:800;
  letter-spacing:.08em;
  color:#1d4ed8;
}

.invite-card h1{
  margin:5px 0 15px;
}

.invite-trip-summary{
  padding:14px;
  margin-bottom:14px;
  border-radius:12px;
  background:#f4f7fb;
  line-height:1.55;
}

.invite-trip-name{
  font-size:17px;
  font-weight:800;
}

.invite-copy{
  color:#475467;
  line-height:1.5;
}

.invite-card .field{
  text-align:left;
  margin-top:18px;
}

.invite-join-btn{
  width:100%;
  margin-top:8px;
  min-height:46px;
}

.invite-help{
  margin-top:12px;
}

/* Never show trip navigation before authentication */
body:has(.auth) .travelops-mobile-menu-button-v2,
body:has(.auth) .travelops-mobile-menu-v2,
body:has(.auth) #travelopsMobileMenuButtonV2,
body:has(.auth) #travelopsMobileMenuV2,
body:has(.auth) #travelopsMoreSubmenu,
body:has(.auth) #travelopsMoreSubmenuV3,
body:has(.auth) nav,
body:has(.auth) .nav,
body:has(.auth) .top-nav{
  display:none !important;
}

@media(max-width:600px){
  .invite-auth{
    padding:18px 14px;
  }

  .invite-card{
    padding:22px 16px;
  }

  .invite-card h1{
    font-size:25px;
  }
}


/* TRAVELOPS_MOBILE_LOGOUT_V1_CSS */

@media(max-width:600px){

  .travelops-mobile-menu-divider-v2{
    grid-column:1/-1;
    height:1px;
    background:#e5e7eb;
    margin:6px 0 2px;
  }

  .travelops-mobile-logout-v2{
    grid-column:1/-1;
    min-height:44px;
    border:0;
    border-radius:9px;
    background:#fff1f2;
    color:#b42318;
    font-size:13px;
    font-weight:750;
  }

}

/* TRAVELOPS_MOBILE_LOGOUT_V2_CSS */

@media(max-width:600px){

  .travelops-mobile-menu-divider-v2{
    grid-column:1/-1;
    height:1px;
    background:#e5e7eb;
    margin:7px 0 2px;
  }

  .travelops-mobile-logout-v2{
    grid-column:1/-1;
    min-height:44px;
    border:0;
    border-radius:9px;
    background:#fff1f2 !important;
    color:#b42318 !important;
    font-size:13px;
    font-weight:750;
  }

}

/* TRAVELOPS_MOBILE_LOGOUT_V3_CSS */

@media(max-width:600px){

  .travelops-mobile-logout-divider-v3{
    height:1px;
    background:#e5e7eb;
    margin:12px 0 8px;
  }

  .travelops-mobile-logout-v3{
    width:100%;
    min-height:44px;
    border:0;
    border-radius:9px;
    background:#fff1f2;
    color:#b42318;
    font-size:14px;
    font-weight:750;
    cursor:pointer;
  }

}


/* TRAVELOPS_PROPOSAL_MOBILE_COMPACT_V1 */

@media(max-width:600px){

  /* Proposal cards stay compact */
  .proposal-card{
    padding:14px !important;
  }

  .proposal-card .row{
    align-items:flex-start !important;
    gap:8px !important;
  }

  /* Do not let proposal buttons become full-width rows */
  .proposal-card button,
  .proposal-actions button,
  .preference-row button{
    width:auto !important;
    min-width:0 !important;
    min-height:36px !important;
    flex:0 0 auto !important;
    padding:7px 10px !important;
    margin-top:0 !important;
    font-size:12px !important;
  }

  .proposal-actions,
  .preference-row{
    display:flex !important;
    flex-wrap:wrap !important;
    align-items:center !important;
    gap:6px !important;
  }

  .proposal-actions{
    margin-top:10px !important;
  }

  .preference-row{
    margin-top:8px !important;
  }

  /* Option cards should size to their content */
  .proposal-options{
    display:block !important;
  }

  .proposal-option,
  .option-card{
    min-height:0 !important;
    height:auto !important;
    padding:12px !important;
    margin-top:10px !important;
  }

  .proposal-card .item,
  .proposal-option .item,
  .option-card .item{
    min-height:0 !important;
    height:auto !important;
  }

  /* Undo generic mobile rule that expands the last column */
  .proposal-card .row > div:last-child,
  .proposal-option .row > div:last-child,
  .option-card .row > div:last-child{
    width:auto !important;
    max-width:100% !important;
  }

  .proposal-card .row > div:first-child,
  .proposal-option .row > div:first-child,
  .option-card .row > div:first-child{
    min-width:0 !important;
    flex:1 1 auto !important;
  }

  .selected-option{
    margin:9px 0 !important;
    padding:9px 10px !important;
  }

  .comments{
    margin-top:10px !important;
  }

  .comment{
    padding:7px 0 !important;
  }

}

/* TRAVELOPS_PROPOSAL_HEIGHT_FIX_V1 */

@media(max-width:600px){

  .proposal-summary-card,
  .proposal-card{
    height:auto !important;
    min-height:0 !important;
    max-height:none !important;
    display:block !important;
  }

  .proposal-summary-card .row,
  .proposal-card > .row{
    height:auto !important;
    min-height:0 !important;
    align-items:flex-start !important;
  }

  .proposal-summary-card .row{
    display:flex !important;
    justify-content:space-between !important;
    gap:8px !important;
  }

  .proposal-card{
    padding:12px !important;
  }

  .proposal-card > .row > div:first-child{
    flex:1 1 auto !important;
    min-height:0 !important;
  }

  .proposal-card .proposal-options{
    height:auto !important;
    min-height:0 !important;
    margin-top:8px !important;
  }

  .proposal-card .selected-option,
  .proposal-card .comments,
  .proposal-card .comment,
  .proposal-card .proposal-actions{
    height:auto !important;
    min-height:0 !important;
  }

}


/* TRAVELOPS_PROPOSAL_SUMMARY_FINAL_FIX */

.proposal-summary-card{
  display:block !important;
  height:auto !important;
  min-height:0 !important;
  max-height:none !important;

  margin:0 0 10px !important;
  padding:12px 14px !important;

  background:#fff;
  border:1px solid #e3e7ee;
  border-radius:12px;
  box-shadow:0 1px 3px rgba(15,23,42,.05);
}

.proposal-summary-card .row{
  display:flex !important;
  align-items:center !important;
  justify-content:space-between !important;
  gap:10px !important;

  height:auto !important;
  min-height:0 !important;
  margin:0 !important;
}

.proposal-summary-card h3{
  margin:0 !important;
}

.proposal-summary-card .small{
  margin-top:2px;
}

@media(max-width:600px){
  .proposal-summary-card{
    padding:10px 11px !important;
    margin-bottom:8px !important;
  }

  .proposal-summary-card .badge{
    flex:0 0 auto !important;
    width:auto !important;
  }
}


/* TRAVELOPS_PROPOSAL_SUMMARY_FINAL_FIX_V2 */

@media(max-width:600px){

  .proposal-summary-card{
    position:relative !important;
    display:block !important;
    height:auto !important;
    min-height:0 !important;
    max-height:none !important;
    align-self:start !important;
    padding:10px 12px !important;
    padding-right:72px !important;
  }

  .proposal-summary-card .row{
    display:block !important;
    position:static !important;
    flex-direction:initial !important;
    height:auto !important;
    min-height:0 !important;
    margin:0 !important;
  }

  .proposal-summary-card .row > div:first-child{
    display:block !important;
    width:auto !important;
    height:auto !important;
    min-height:0 !important;
    margin:0 !important;
  }

  .proposal-summary-card .badge{
    position:absolute !important;
    top:10px !important;
    right:10px !important;
    bottom:auto !important;
    left:auto !important;

    width:auto !important;
    min-width:0 !important;
    height:auto !important;

    margin:0 !important;
    align-self:auto !important;
  }

}
