/**
 * 講師ポータル専用スタイル（旧 app_instructor/webroot/assets/css/style.css 踏襲）。
 * 生徒サイト用 style.css は読み込まない。
 */
/* AdminLTE より後勝ち（旧 style.css どおり login も grey.png）。登録画面は inline の #f4fbff !important で上書き */
body.login-page,
body.register-page,
body.hold-transition.login-page,
body.hold-transition.register-page,
.login-page,
.register-page,
.content-wrapper {
    background: #f5f5f5 url("../img/bg/grey.png") repeat left top !important;
}

.login-box-msg,
.register-box-msg {
    padding: 0 0 20px;
}

.login-error {
    font-size: calc(1em - 2pt);
}

pre {
    font-family: "Noto Sans JP", "Yu Gothic", YuGothic, "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", メイリオ, Verdana, "ＭＳ Ｐゴシック", sans-serif;
    white-space: pre-wrap;
    font-size: 100%;
}

h4 {
    font-weight: 700;
    font-size: 1.2rem;
}

h5 {
    font-weight: 700;
    font-size: 1rem;
}

.error-message {
    font-size: .875rem !important;
    color: #dc3545;
}

.text-grey {
    color: #999999;
}

.login-card-body,
.register-card-body {
    color: #454545;
}

.wt_youtube_cont {
    background: #fff;
}

.wt_youtube {
    position: relative;
    width: 100%;
    padding-top: 56.25%;
}

.wt_youtube iframe {
    position: absolute;
    top: 0;
    right: 0;
    width: 100% !important;
    height: 100% !important;
}

td {
    word-break: break-all;
}

.border-secondary {
    border-color: #bcbcbc !important;
}

.text-d-grey {
    color: #676767 !important;
}

.form-check .checkbox {
    display: inline-block;
}

.form-check .checkbox input {
    margin-right: .6rem;
}

.form-check .checkbox label {
    margin-right: 1rem;
    font-weight: normal;
    cursor: pointer;
}

.text-success {
    color: #f66 !important;
}

/* スケジュール枠のステータス色用。注意書きの text-secondary は Bootstrap 既定のグレーのままにする */
.text-warning {
    color: #17a2b8 !important;
}

.text-info {
    color: #28a745 !important;
}

.bg-secondary {
    background-color: #ffb633 !important;
}

.bg-success {
    background-color: #f66 !important;
}

.bg-warning {
    background-color: #17a2b8 !important;
}

.bg-info {
    background-color: #28a745 !important;
}

.btn-secondary {
    background-color: #ffb633;
    border-color: #ffb633;
}

.btn-secondary:hover {
    background-color: #f3aa26;
    border-color: #f3aa26;
}

.disabled.expired {
    background: #f7f7f7;
}

.week li {
    list-style: none;
    display: flex;
    align-items: center;
    overflow: hidden;
    padding-left: 0.4em;
}

.week ul {
    list-style: none;
    margin: 0;
    padding: 0;
    text-align: center;
}

.week li label {
    flex: 1;
    min-width: 0;
    font-weight: normal !important;
    margin: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.week li label .calendar-slot-extra {
    font-size: calc(1em - 2pt);
}

.date-heading {
    border-top: 1px solid #ebebeb;
    border-bottom: 1px solid #ebebeb;
    font-weight: bold;
}

.week li input {
    flex-shrink: 0;
    margin-right: .8em;
}

.week li.checked {
    background: #0c88cc;
    color: #fff;
    cursor: pointer;
}

.week li.checked.quickmatch {
    background: #1e3a5f;
}

.week li.checked.exclusive_student {
    background: #0C8851;
    color: #fff;
    cursor: pointer;
}

.week li.checked:hover {
    opacity: .8;
}

.disabled.reserved.checked {
    background: #e67700;
}

.disabled.expired.reserved.checked {
    background: #bbb;
}

#calendar-content {
    table-layout: fixed;
    width: 100%;
}

#calendar-content th,
#calendar-content td {
    width: 14.2857%;
    text-align: center;
    vertical-align: top;
    word-break: normal;
}

.fc-event .rounded {
    border-radius: 3px;
}

.fc-event {
    overflow: hidden;
    white-space: nowrap;
    font-size: 13px;
}

.fc-event .bg-secondary {
    height: 27px;
}

.fc-content .fc-state-highlight {
    background: #f6f6d8;
}

.pscroll {
    overflow: auto;
    white-space: nowrap;
    -webkit-overflow-scrolling: touch;
    overflow-scrolling: touch;
    margin: 0 -15px 30px;
}

.fc-event.wt-event-past {
    background: #cccccc !important;
}

.fc-event.wt-event-past .bg-secondary {
    background: #cccccc !important;
}

.ibox {
    border: 1px solid #ebebeb;
    padding: 15px;
    border-radius: 8px;
    overflow: auto;
    height: 250px;
    background: #fff;
    margin-bottom: 1.5em;
}

.ibox h4 {
    font-size: .9rem;
}

.ibox p {
    font-size: .875rem !important;
    margin-bottom: 0;
}

.ibox p:last-child {
    border-bottom: none;
}

.ibox br {
    display: none;
}

.ibox.knowledge br {
    display: block;
}

.ibox p br {
    display: block;
}

.idate {
    font-size: .7rem !important;
    color: #bbb;
    border-bottom: 1px solid #ebebeb;
    padding-bottom: 1em;
    margin-bottom: 1em;
}

.index .ibox {
    height: 450px;
}

.instructor .ibox {
    height: 250px;
}

.imemo {
    border: 1px solid #ebebeb;
    padding: 15px;
    border-radius: 8px;
    overflow: auto;
    background: #fff;
}

.imemo .nomemo {
    color: #bbb;
}

/* 旧 common.css 相当 */
.alignCenter {
    text-align: center;
    margin: 0 auto;
}

.m8 {
    margin: 8px;
}

span.current {
    margin: 0 3px;
}

span a.pagenumbers {
    margin: 0 3px;
}

/**
 * ページャ（旧 navigation.css / agency overwrite.css の .pagers 相当）
 */
.pagers {
    display: inline-block;
    color: #ccc;
    background: #eee;
    border: 1px solid #ccc;
    text-shadow: 1px 1px #fff;
    padding: 0.2em 1em;
    border-radius: 17px;
    white-space: nowrap;
}

.pagers a,
.pagers span {
    display: inline;
    text-shadow: none;
}

.pagers span.current,
.pagers a.pagenumbers {
    padding: 0 0.2em;
}

.pagers span.current {
    color: #333;
}

.pagers a.pagenumbers:link,
.pagers a.pagenumbers:visited {
    color: #69c;
}

.pagers a.pagenumbers:hover,
.pagers a.pagenumbers:active {
    color: #f90;
}

.pagers a.pagenumbers::before,
.pagers span.current::before {
    content: " | ";
    color: #ccc;
}

.pagers > :is(a[rel="prev"], span.disabled) + :is(a.pagenumbers, span.current)::before {
    content: "";
}

.pagers span.disabled {
    color: #999;
}

/* レッスン報告ラベル（旧 common.css） */
label.default {
    display: inline-block;
    color: #fff;
    background: #36f;
    margin: 2px;
    padding: 4px 10px;
}

label.pending {
    display: inline-block;
    color: #fff;
    background: #f66;
    margin: 2px;
    padding: 4px 10px;
}

label.freeze {
    display: inline-block;
    color: #fff;
    background: #f93;
    margin: 2px;
    padding: 4px 10px;
}

label.donate {
    display: inline-block;
    color: #fff;
    background: #9c3;
    margin: 2px;
    padding: 4px 10px;
}

label.yet {
    display: inline-block;
    color: #f33;
    margin: 2px;
    padding: 4px 10px;
}

/* 講師リクエスト未対応バッジ（旧 request-badge と同じ赤丸） */
.request-badge > a.nav-link > p::after {
    content: '';
    display: inline-block;
    width: 8px;
    height: 8px;
    margin-left: 0.4rem;
    border-radius: 50%;
    background: #dc3545;
    vertical-align: middle;
}

/* 個別スケジュール週グリッド */
.week-grid-toolbar {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem 0.75rem;
    margin-bottom: 0.75rem;
}

.week-grid-title {
    font-size: 1.1rem;
    font-weight: 700;
    margin-left: 0.25rem;
}

.week-grid-legend {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.35rem 1rem;
    list-style: none;
    padding: 0;
    margin: 0 0 0 auto;
    font-size: 0.85rem;
    color: #454545;
}

.week-grid-legend li {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
}

.week-grid-legend-swatch {
    display: inline-block;
    width: 0.85rem;
    height: 0.85rem;
    border-radius: 2px;
    flex-shrink: 0;
}

.week-grid-legend-swatch.is-booked {
    background: #e67700;
}

.week-grid-legend-swatch.is-open {
    background: #0c88cc;
}

.week-grid-legend-swatch.is-quickmatch {
    background: #1e3a5f;
}

.week-grid-legend-swatch.is-exclusive {
    background: #0C8851;
}

.week-grid-scroll {
    overflow: visible;
    border: 1px solid #e9e9e9;
    background: #fff;
}

.week-grid-table {
    width: 100%;
    min-width: 720px;
    border-collapse: collapse;
    table-layout: fixed;
    font-size: 12px;
}

.week-grid-table th,
.week-grid-table td {
    border: 1px solid #ececec;
    padding: 0;
    vertical-align: middle;
    text-align: center;
}

.week-grid-table thead th {
    background: #e9e9e9;
    font-weight: 600;
    padding: 0.45rem 0.25rem;
}

.week-grid-time-col {
    width: 3.5rem;
    background: #f7f7f7;
    color: #454545;
    font-weight: 600;
    padding: 0.2rem !important;
}

.week-grid-day.is-sun {
    color: #f93515;
}

.week-grid-day.is-sat {
    color: #0c88cc;
}

.week-grid-slot {
    height: 28px;
    overflow: hidden;
}

.week-grid-slot.slot-open {
    cursor: pointer;
    background: #fff;
}

.week-grid-slot.slot-open:hover {
    background: #f7f7f7;
}

.week-grid-slot.slot-disabled {
    background: #f9f9f9;
    color: #ccc;
    cursor: not-allowed;
    pointer-events: none;
}

.week-grid-event {
    display: block;
    height: 100%;
    line-height: 28px;
    padding: 0 0.25rem;
    color: #fff !important;
    background: #0c88cc;
    text-decoration: none !important;
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
}

.week-grid-event:hover {
    opacity: 0.85;
}

.week-grid-event.is-booked {
    background: #e67700;
}

.week-grid-event.is-quickmatch {
    background: #1e3a5f;
}

.week-grid-event.bg-exclusive-user {
    background: #0C8851 !important;
}

/* 開始時刻を過ぎたレッスン（旧 wt-event-past） */
.week-grid-event.is-past {
    background: #cccccc !important;
}

/* content-wrapper 内に差し込んだ Flash（メニュー被り防止） */
.instructor-flash-messages .alert {
    text-align: center;
    font-weight: 700;
}
