/*
 * MarineOS Ver1.0.0 Day3-29 FINAL
 * Smartphone MobileScheduleList only.
 * PC monthly calendar is intentionally untouched.
 */
@media screen and (max-width: 768px) {
  html.marineos-day329-mobile-ready,
  html.marineos-day329-mobile-ready body {
    overflow-x: hidden !important;
  }

  .marineos-calendar-root {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
  }

  .marineos-calendar-root .marineos-calendar-desktop,
  .marineos-calendar-root [data-mos-calendar-desktop] {
    display: none !important;
  }

  #marineos-mobile-schedule-list-day329 {
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 1px solid #cbd5e1 !important;
    border-radius: 14px !important;
    background: #ffffff !important;
    color: #111827 !important;
    overflow: hidden !important;
    box-shadow: 0 8px 22px rgba(15, 23, 42, .12) !important;
    box-sizing: border-box !important;
  }

  #marineos-mobile-schedule-list-day329 *,
  #marineos-mobile-schedule-list-day329 *::before,
  #marineos-mobile-schedule-list-day329 *::after {
    box-sizing: border-box !important;
  }

  #marineos-mobile-schedule-list-day329 .mos-mobile-schedule-title {
    display: block !important;
    margin: 0 !important;
    padding: 12px 8px 10px !important;
    text-align: center !important;
    background: #ffffff !important;
    border: 0 !important;
  }
  #marineos-mobile-schedule-list-day329 .mos-mobile-schedule-title strong {
    display: block !important;
    margin: 0 !important;
    color: #2e69c7 !important;
    font-size: 20px !important;
    font-weight: 900 !important;
    line-height: 1.05 !important;
    letter-spacing: .02em !important;
  }
  #marineos-mobile-schedule-list-day329 .mos-mobile-schedule-title span {
    display: block !important;
    margin-top: 4px !important;
    color: #111827 !important;
    font-size: 11px !important;
    font-weight: 900 !important;
    line-height: 1.2 !important;
  }

  .marineos-calendar-root .marineos-mobile-visual-legend {
    display: block !important;
    visibility: visible !important;
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 0 8px !important;
    padding: 8px !important;
    border: 1px solid #dbe3ea !important;
    border-radius: 12px !important;
    background: #ffffff !important;
    color: #111827 !important;
    overflow: hidden !important;
    box-shadow: 0 4px 12px rgba(15, 23, 42, .08) !important;
  }
  .marineos-calendar-root .marineos-mobile-visual-legend__row {
    display: flex !important;
    flex-wrap: wrap !important;
    align-items: center !important;
    gap: 5px !important;
    margin: 0 !important;
    padding: 0 !important;
  }
  .marineos-calendar-root .marineos-mobile-visual-legend__row + .marineos-mobile-visual-legend__row {
    margin-top: 6px !important;
    padding-top: 6px !important;
    border-top: 1px solid #e2e8f0 !important;
  }
  .marineos-calendar-root .marineos-mobile-visual-legend strong,
  .marineos-calendar-root .marineos-mobile-visual-legend span {
    color: #111827 !important;
    text-shadow: none !important;
  }
  .marineos-calendar-root .marineos-mobile-visual-legend span {
    display: inline-flex !important;
    align-items: center !important;
    gap: 5px !important;
    min-height: 25px !important;
    padding: 3px 7px !important;
    border: 1px solid #e2e8f0 !important;
    border-radius: 999px !important;
    background: #f8fafc !important;
    font-size: 9px !important;
    font-weight: 900 !important;
    line-height: 1.1 !important;
    white-space: nowrap !important;
  }
  .marineos-calendar-root .legend-day,
  .marineos-calendar-root .legend-plan-dot {
    display: inline-block !important;
    width: 10px !important;
    height: 10px !important;
    min-width: 10px !important;
    border-radius: 50% !important;
  }
  .marineos-calendar-root .legend-day--sun { background: #ef4444 !important; }
  .marineos-calendar-root .legend-day--sat { background: #2563eb !important; }
  .marineos-calendar-root .legend-day--today { background: #f59e0b !important; }

  #marineos-mobile-schedule-list-day329 .mos-mobile-schedule-head {
    display: grid !important;
    grid-template-columns: 72px minmax(0, 1fr) 82px !important;
    width: 100% !important;
    min-width: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    background: linear-gradient(180deg, #4e86bd 0%, #3470aa 100%) !important;
    color: #ffffff !important;
    border: 0 !important;
  }
  #marineos-mobile-schedule-list-day329 .mos-mobile-schedule-head span {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    min-width: 0 !important;
    padding: 7px 3px !important;
    border-right: 1px solid rgba(255,255,255,.25) !important;
    color: #ffffff !important;
    font-size: 9px !important;
    font-weight: 900 !important;
    line-height: 1.1 !important;
    text-align: center !important;
    white-space: normal !important;
  }
  #marineos-mobile-schedule-list-day329 .mos-mobile-schedule-head span:last-child {
    border-right: 0 !important;
  }

  #marineos-mobile-schedule-list-day329 .mos-mobile-schedule-rows {
    display: block !important;
    width: 100% !important;
    min-width: 0 !important;
    height: min(68vh, 650px) !important;
    max-height: 650px !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
    -webkit-overflow-scrolling: touch !important;
    overscroll-behavior: contain !important;
    background: #ffffff !important;
  }

  #marineos-mobile-schedule-list-day329 .mos-mobile-schedule-row {
    display: grid !important;
    grid-template-columns: 72px minmax(0, 1fr) 82px !important;
    grid-template-areas:
      "date boat numbers"
      "date plan status"
      "date time status" !important;
    align-items: center !important;
    width: 100% !important;
    min-width: 0 !important;
    min-height: 70px !important;
    margin: 0 !important;
    padding: 4px 0 !important;
    border: 0 !important;
    border-bottom: 1px solid #e2e8f0 !important;
    border-radius: 0 !important;
    background: linear-gradient(90deg, var(--mos-plan-soft, #ffffff) 0%, #ffffff 46%) !important;
    color: #111827 !important;
    box-shadow: none !important;
    overflow: hidden !important;
    cursor: pointer !important;
  }
  #marineos-mobile-schedule-list-day329 .mos-mobile-schedule-row:last-child {
    border-bottom: 0 !important;
  }
  #marineos-mobile-schedule-list-day329 .mos-mobile-schedule-row.is-today {
    box-shadow: inset 4px 0 0 #f59e0b !important;
    background: #fffaf0 !important;
  }
  #marineos-mobile-schedule-list-day329 .mos-mobile-schedule-row.is-closed,
  #marineos-mobile-schedule-list-day329 .mos-mobile-schedule-row.is-stopped,
  #marineos-mobile-schedule-list-day329 .mos-mobile-schedule-row.is-empty {
    background: #f1f5f9 !important;
    cursor: default !important;
  }
  #marineos-mobile-schedule-list-day329 .mos-mobile-schedule-row.is-full {
    cursor: default !important;
  }

  /*
   * 同一日の複数プランだけを、日付ごとに通常／薄色で交互表示する。
   * .mos-mobile-schedule-day-operations ごとに nth-child が数え直されるため、
   * 翌日の1件目は必ず既存背景のままになる。受付終了系の状態背景は維持する。
   * Root Fix 250: 竜宝丸様は交互色を使わない。他船の既存ルールは維持する。
   */
  .marineos-calendar-root:not(.marineos-hide-public-boat-name)
    #marineos-mobile-schedule-list-day329
    .mos-mobile-schedule-day-operations
    > article.mos-mobile-schedule-row:nth-child(even):not(.is-closed):not(.is-stopped) {
    background: linear-gradient(
      90deg,
      var(--mos-plan-soft, #b9dcf8) 0%,
      #b9dcf8 46%,
      #91c5ec 100%
    ) !important;
  }

  #marineos-mobile-schedule-list-day329 .mos-mobile-col {
    display: block !important;
    min-width: 0 !important;
    margin: 0 !important;
    padding: 2px 5px !important;
    border: 0 !important;
    background: transparent !important;
    color: #111827 !important;
    text-shadow: none !important;
    overflow: hidden !important;
  }
  #marineos-mobile-schedule-list-day329 .mos-mobile-col strong,
  #marineos-mobile-schedule-list-day329 .mos-mobile-col small,
  #marineos-mobile-schedule-list-day329 .mos-mobile-col em {
    color: inherit !important;
    text-shadow: none !important;
  }

  #marineos-mobile-schedule-list-day329 .mos-mobile-col--date {
    grid-area: date !important;
    display: flex !important;
    flex-wrap: wrap !important;
    align-content: center !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 2px !important;
    align-self: stretch !important;
    border-right: 1px solid #e2e8f0 !important;
    text-align: center !important;
  }
  #marineos-mobile-schedule-list-day329 .mos-mobile-col--date strong {
    font-size: 11px !important;
    font-weight: 950 !important;
    line-height: 1.05 !important;
  }
  #marineos-mobile-schedule-list-day329 .mos-mobile-col--date small {
    font-size: 9px !important;
    font-weight: 900 !important;
    line-height: 1.05 !important;
  }
  #marineos-mobile-schedule-list-day329 .mos-mobile-today-label {
    display: none !important;
    width: 100% !important;
    margin: 0 4px 1px !important;
    padding: 2px 4px !important;
    border-radius: 999px !important;
    background: #f59e0b !important;
    color: #ffffff !important;
    font-size: 8px !important;
    font-style: normal !important;
    font-weight: 950 !important;
    line-height: 1 !important;
  }
  #marineos-mobile-schedule-list-day329 .is-today .mos-mobile-today-label { display: block !important; }
  #marineos-mobile-schedule-list-day329 .mos-mobile-day-mark {
    display: inline-block !important;
    width: 9px !important;
    height: 9px !important;
    min-width: 9px !important;
    border-radius: 50% !important;
    background: #64748b !important;
  }
  #marineos-mobile-schedule-list-day329 .is-saturday .mos-mobile-day-mark { background: #2563eb !important; }
  #marineos-mobile-schedule-list-day329 .is-sunday .mos-mobile-day-mark,
  #marineos-mobile-schedule-list-day329 .is-holiday .mos-mobile-day-mark { background: #ef4444 !important; }
  #marineos-mobile-schedule-list-day329 .is-today .mos-mobile-day-mark { background: #f59e0b !important; }
  #marineos-mobile-schedule-list-day329 .is-saturday .mos-mobile-col--date { color: #1d4ed8 !important; }
  #marineos-mobile-schedule-list-day329 .is-sunday .mos-mobile-col--date,
  #marineos-mobile-schedule-list-day329 .is-holiday .mos-mobile-col--date { color: #dc2626 !important; }

  #marineos-mobile-schedule-list-day329 .mos-mobile-col--boat { grid-area: boat !important; }
  #marineos-mobile-schedule-list-day329 .mos-mobile-col--boat strong {
    display: inline-block !important;
    max-width: 100% !important;
    padding: 3px 6px !important;
    border-radius: 5px !important;
    background: #fff2bf !important;
    color: #111827 !important;
    font-size: 10px !important;
    font-weight: 950 !important;
    line-height: 1.15 !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
  }

  #marineos-mobile-schedule-list-day329 .mos-mobile-col--plan {
    grid-area: plan !important;
    display: flex !important;
    align-items: center !important;
    gap: 4px !important;
  }
  #marineos-mobile-schedule-list-day329 .mos-mobile-plan-dot {
    display: inline-block !important;
    width: 10px !important;
    height: 10px !important;
    min-width: 10px !important;
    border-radius: 50% !important;
  }
  #marineos-mobile-schedule-list-day329 .mos-mobile-col--plan strong {
    min-width: 0 !important;
    color: #111827 !important;
    font-size: 10px !important;
    font-weight: 900 !important;
    line-height: 1.15 !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
  }

  #marineos-mobile-schedule-list-day329 .mos-mobile-col--time { grid-area: time !important; }
  #marineos-mobile-schedule-list-day329 .mos-mobile-col--time strong {
    display: block !important;
    color: #334155 !important;
    font-size: 9px !important;
    font-weight: 900 !important;
    line-height: 1.1 !important;
    white-space: nowrap !important;
  }

  #marineos-mobile-schedule-list-day329 .mos-mobile-col--numbers {
    grid-area: numbers !important;
    align-self: stretch !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    border-left: 1px solid #e2e8f0 !important;
    text-align: center !important;
  }
  #marineos-mobile-schedule-list-day329 .mos-mobile-col--numbers strong {
    display: block !important;
    font-size: 10px !important;
    font-weight: 950 !important;
    line-height: 1.15 !important;
  }
  #marineos-mobile-schedule-list-day329 .mos-mobile-col--numbers small {
    display: block !important;
    margin-top: 2px !important;
    color: #475569 !important;
    font-size: 9px !important;
    font-weight: 900 !important;
    line-height: 1.1 !important;
  }

  #marineos-mobile-schedule-list-day329 .mos-mobile-col--status {
    grid-area: status !important;
    align-self: stretch !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    border-left: 1px solid #e2e8f0 !important;
    text-align: center !important;
  }
  #marineos-mobile-schedule-list-day329 .mos-mobile-col--status strong {
    display: block !important;
    font-size: 10px !important;
    font-weight: 950 !important;
    line-height: 1.1 !important;
  }
  #marineos-mobile-schedule-list-day329 .mos-mobile-col--status small {
    display: block !important;
    margin-top: 2px !important;
    color: #475569 !important;
    font-size: 8px !important;
    font-weight: 900 !important;
    line-height: 1.1 !important;
  }
  #marineos-mobile-schedule-list-day329 .is-open .mos-mobile-col--status strong { color: #15803d !important; }
  #marineos-mobile-schedule-list-day329 .is-few .mos-mobile-col--status strong { color: #ea580c !important; }
  #marineos-mobile-schedule-list-day329 .is-full .mos-mobile-col--status strong { color: #dc2626 !important; }
  #marineos-mobile-schedule-list-day329 .is-charter .mos-mobile-col--status strong { color: #7e22ce !important; }
  #marineos-mobile-schedule-list-day329 .is-closed .mos-mobile-col--status strong,
  #marineos-mobile-schedule-list-day329 .is-stopped .mos-mobile-col--status strong { color: #64748b !important; }

  #marineos-mobile-schedule-list-day329 .mos-mobile-no-operation {
    grid-column: 2 / -1 !important;
    padding: 10px !important;
    color: #64748b !important;
    font-size: 10px !important;
    font-weight: 900 !important;
  }
  #marineos-mobile-schedule-list-day329 .mos-mobile-schedule-note {
    display: block !important;
    margin: 0 !important;
    padding: 9px 6px !important;
    border-top: 1px solid #e2e8f0 !important;
    background: #f8fafc !important;
    color: #2563a8 !important;
    font-size: 9px !important;
    font-weight: 900 !important;
    line-height: 1.3 !important;
    text-align: center !important;
  }

  .mos-calendar-note--desktop { display: none !important; }
}

@media screen and (max-width: 359px) {
  #marineos-mobile-schedule-list-day329 .mos-mobile-schedule-head,
  #marineos-mobile-schedule-list-day329 .mos-mobile-schedule-row {
    grid-template-columns: 66px minmax(0, 1fr) 76px !important;
  }
  #marineos-mobile-schedule-list-day329 .mos-mobile-col { padding-left: 3px !important; padding-right: 3px !important; }
  #marineos-mobile-schedule-list-day329 .mos-mobile-col--boat strong,
  #marineos-mobile-schedule-list-day329 .mos-mobile-col--plan strong { font-size: 9px !important; }
}

@media screen and (min-width: 769px) {
  #marineos-mobile-schedule-list-day329,
  .marineos-calendar-root .marineos-mobile-visual-legend {
    display: none !important;
  }
}

.mos-mobile-schedule-row.mos-today-focus{outline:3px solid #ff9800;transition:outline-color .4s;}
