/* ホーム・利用者・管理者・Google カレンダー連携の画面 */

/* ダッシュボードの統計カード */
.dashboard-stat { display: flex; align-items: center; gap: .875rem; }
.dashboard-stat-icon {
    flex: 0 0 auto;
    display: inline-flex; align-items: center; justify-content: center;
    width: 2.75rem; height: 2.75rem; border-radius: .75rem; font-size: 1.25rem;
}
.dashboard-stat-unit { font-size: .8rem; font-weight: 500; margin-left: .2rem; color: var(--bs-secondary-color); }
.dashboard-stat-text { font-size: 1.15rem; }
@media (max-width: 575.98px) {
    .dashboard-stat { flex-direction: column; align-items: flex-start; gap: .5rem; }
    .dashboard-stat-icon { width: 2.25rem; height: 2.25rem; font-size: 1rem; }
}

/* 予定の行 */
.dashboard-schedule {
    display: flex; gap: .75rem; align-items: baseline; min-width: 0;
    color: inherit; text-decoration: none;
}
.dashboard-schedule:hover .dashboard-schedule-title { color: var(--bs-link-color); text-decoration: underline; }
.dashboard-schedule-time {
    flex: 0 0 auto; min-width: 6.5rem;
    font-variant-numeric: tabular-nums; font-size: .85rem; color: var(--bs-secondary-color);
}
.dashboard-schedule-title { min-width: 0; overflow-wrap: anywhere; }
.dashboard-schedule-compact { padding: .1rem 0; font-size: .9rem; }
.dashboard-schedule-compact .dashboard-schedule-time { min-width: 5.5rem; font-size: .8rem; }

/* 今週の予定（1 日 1 行） */
.dashboard-week-day { display: flex; gap: .875rem; align-items: flex-start; }
.dashboard-week-date { flex: 0 0 3rem; display: flex; flex-direction: column; align-items: center; line-height: 1.2; }
.dashboard-week-weekday { font-size: .75rem; color: var(--bs-secondary-color); }
.dashboard-week-daynum { font-weight: 700; font-variant-numeric: tabular-nums; }
.dashboard-week-body { flex: 1 1 auto; min-width: 0; display: flex; flex-direction: column; align-items: flex-start; }
.dashboard-week-day.is-saturday .dashboard-week-weekday,
.dashboard-week-day.is-saturday .dashboard-week-daynum { color: var(--bs-primary-text-emphasis); }
.dashboard-week-day.is-holiday .dashboard-week-weekday,
.dashboard-week-day.is-holiday .dashboard-week-daynum { color: var(--bs-danger-text-emphasis); }
.dashboard-week-day.is-today { background-color: var(--bs-primary-bg-subtle); }

/* よく使う機能 */
.dashboard-shortcut {
    display: flex; flex-direction: column; align-items: center; justify-content: center; gap: .35rem;
    height: 100%; padding: .875rem .5rem; text-align: center; font-size: .85rem;
    border: 1px solid var(--bs-border-color); border-radius: .75rem;
    color: inherit; text-decoration: none;
    transition: background-color .15s, border-color .15s;
}
.dashboard-shortcut i { font-size: 1.35rem; color: var(--bs-primary); }
.dashboard-shortcut:hover, .dashboard-shortcut:focus-visible {
    background-color: var(--bs-tertiary-bg); border-color: var(--bs-primary-border-subtle);
}

/* 利用者一覧 */
.user-row-stopped > td { color: var(--bs-secondary-color); }
.user-color-swatch {
    display: inline-block; width: .85rem; height: .85rem; border-radius: 50%;
    border: 1px solid var(--bs-border-color); vertical-align: -.1em;
}

/* 色の入力（カラーピッカーと #RRGGBB の欄を並べる） */
.color-field .form-control-color { flex: 0 0 3rem; }

/* 管理者設定（左右の選択リスト） */
.admin-picker { display: grid; grid-template-columns: 1fr auto 1fr; gap: 1rem; align-items: center; }
.admin-picker select { min-height: 16rem; }
.admin-picker-buttons { display: flex; flex-direction: column; gap: .5rem; }
@media (max-width: 767.98px) {
    .admin-picker { grid-template-columns: 1fr; }
    .admin-picker-buttons { flex-direction: row; justify-content: center; }
    .admin-picker-buttons .bi-arrow-right::before { content: "\f128"; } /* bi-arrow-down */
    .admin-picker-buttons .bi-arrow-left::before { content: "\f148"; }  /* bi-arrow-up */
    .admin-picker select { min-height: 10rem; }
}

/* ログイン画面などの見出し */
.auth-title { font-size: 1.25rem; font-weight: 700; margin-bottom: .25rem; text-align: center; }
.auth-lead { color: var(--bs-secondary-color); font-size: .875rem; text-align: center; margin-bottom: 1.5rem; }

/* エラー画面 */
.error-icon { font-size: 2.5rem; line-height: 1; color: var(--bs-warning); }
.error-icon.is-danger { color: var(--bs-danger); }
.error-url { overflow-wrap: anywhere; }
.color-field .invalid-feedback { display: block; }

/* 検索欄の下余白をなくしてボタンと揃える */
.filter-bar > .mb-3 { margin-bottom: 0 !important; }
.filter-bar > .form-check-container { align-self: center; padding-top: 1.25rem; }
