html {
  font-size: 14px;
}

@media (min-width: 768px) {
  html {
    font-size: 16px;
  }
}

.btn:focus, .btn:active:focus, .btn-link.nav-link:focus, .form-control:focus, .form-check-input:focus {
  box-shadow: 0 0 0 0.1rem white, 0 0 0 0.25rem #258cfb;
}

html {
  position: relative;
  min-height: 100%;
}

body {
    background: #f8f9fa;
}

html, body {
    height: 100%;
}

body {
    display: flex;
    flex-direction: column;
    min-height: 100vh;
}

main {
    flex: 1 0 auto;
}

.footer {
    position: static !important;
    flex-shrink: 0;
    line-height: normal !important;
}

.card {
    border-radius: 12px;
}
.admin-dashboard .tile-link {
    text-decoration: none;
    color: inherit;
}

    .admin-dashboard .tile-link:hover {
        transform: translateY(-1px);
    }

.admin-dashboard .tile-icon {
    width: 56px;
    height: 56px;
    border-radius: 999px;
    background: rgba(13,110,253,.08);
}

.admin-dashboard .action-tiles .card {
    border-radius: 12px;
}
.cat-head {
    display: flex;
    align-items: center;
    gap: .75rem;
    flex-wrap: wrap; /* スマホで折り返す */
}

.cat-title {
    /* タイトルの直後にツールが来るように */
}

.cat-tools {
    display: flex;
    align-items: center;
    gap: .5rem;
    flex-wrap: wrap;
}

.cat-time {
    width: 140px;
}

/* 画面が狭い時はツールを次行へ（見やすさ優先） */
@media (max-width: 576px) {
    .cat-tools {
        width: 100%;
    }

    .cat-time {
        width: 140px; /* 必要なら 100% にしてもOK */
    }
}

/* 過去枠リンク：薄いグレーシャドウ＋少し淡く */
a.js-booking-link.is-past {
    box-shadow: 0 0 0 1px rgba(0,0,0,.06), 0 2px 6px rgba(0,0,0,.08);
    background: rgba(0,0,0,.02);
}

    /* hoverで少しだけ強く（任意） */
    a.js-booking-link.is-past:hover {
        box-shadow: 0 0 0 1px rgba(0,0,0,.10), 0 3px 10px rgba(0,0,0,.10);
    }
