/* Shared schedule presentation styles for index and admin preview */

/* ======================================================
   細字チューニング（ここで全体の太さをコントロール）
   - --sch-fw: 通常文字
   - --sch-fw-strong: 見出し・ヘッダ用
   ====================================================== */
  .schedule{
   --sch-fw: 300;
   --sch-fw-strong: 400;
   --slot-entry-min-height: 72px;
   --slot-entry-vertical-min-height: 36px;
   font-weight: var(--sch-fw);
 }
  
  .schedule-card{
    padding:16px;
    font-weight: var(--sch-fw);
  }
  
  .schedule-title{
    display:block;
    font-weight: var(--sch-fw-strong);
    margin:0 0 10px;
  }
  
  /* テーブル枠 */
  .schedule-table{
    border:1px solid #e2e8f0;
    border-radius:12px;
    overflow:hidden;
    background:#fff;
  }
  
  .schedule table{
    width:100%;
    border-collapse:collapse;
    table-layout:fixed;
  }
  
  /* thead */
  .schedule thead th{
    text-align:center;
    background:#f1f5f9;
    border-right:1px dotted #cbd5e1;
    font-weight: var(--sch-fw-strong);
  }
  
  /* セル基本 */
  .schedule th,
  .schedule td{
    border-bottom:1px solid #e2e8f0;
    padding:.6rem;
    vertical-align:middle;
    border-right:1px dotted #cbd5e1;
    font-weight: var(--sch-fw);
  }
  
  .schedule th:last-child,
  .schedule td:last-child{
    border-right:none;
  }
  
  .schedule .rowlabel{
    text-align:center;
    white-space:pre-line;
    font-weight: var(--sch-fw-strong);
  }
  
  .schedule .rowlabel .time{
    display:block;
    font-size:.8rem;
    color:#475569;
    margin-top:.15rem;
    font-weight: var(--sch-fw);
  }

  /* 今日以外の曜日を少しグレーに（今日は通常背景のまま） */
  .schedule thead th.is-muted-day,
  .schedule th.rowlabel.is-muted-day{
    background:#e2e8f0;
    color:#475569;
  }
  .schedule td.is-muted-day{
    background:#e8edf3;
  }
  .schedule td.is-muted-day .slot-entry{
    opacity:0.92;
  }

  /* スマホ：曜日×時間帯のコンパクト表 */
  .schedule-mobile-table{
    display:none;
  }
  .schedule-mobile-table .schedule-table{
    margin-top:.35rem;
  }
  .schedule-mobile-table table{
    font-size:.82rem;
    table-layout:fixed;
  }
  .schedule-mobile-table thead th{
    font-size:.72rem;
    line-height:1.35;
    padding:.45rem .35rem;
    white-space:normal;
    word-break:break-all;
  }
  .schedule-mobile-table col.col-day{
    width:5em;
  }
  .schedule-mobile-table thead th.rowlabel{
    width:5em;
    min-width:5em;
    max-width:5em;
    padding:.45rem .15rem;
    white-space:nowrap;
    word-break:keep-all;
  }
  .schedule-mobile-table tbody th.rowlabel{
    width:5em;
    min-width:5em;
    max-width:5em;
    font-size:.82rem;
    white-space:nowrap;
    word-break:keep-all;
    padding:.4rem .15rem;
  }
  .schedule-mobile-table tbody td{
    padding:.4rem 1em .4rem 1em;
    vertical-align:middle;
    box-sizing:border-box;
    text-align:left;
  }
  .schedule-mobile-table .cell-lines{
    flex-direction:column;
    flex-wrap:nowrap;
    align-items:flex-start;
    justify-content:center;
    gap:2px;
    margin:0;
    list-style:none;
    padding:0;
    width:100%;
  }
  .schedule-mobile-table .cell-lines--compact .slot-line{
    display:block;
    width:100%;
    min-height:0;
    padding:0;
    margin:0;
    border:none;
    background:none;
    box-shadow:none;
    text-align:left;
    line-height:1.35;
  }
  .schedule-mobile-table .slot-person{
    color:var(--entry-color, #0f172a);
    font-weight:600;
    font-size:.78rem;
    line-height:1.3;
  }
  .schedule-mobile-table .slot-note{
    color:#64748b;
    font-size:.62rem;
    font-weight:400;
    line-height:1.3;
  }
  .schedule-mobile-table .slot-empty{
    min-height:0;
    display:flex;
    align-items:center;
    justify-content:center;
    font-size:.75rem;
  }
  @media (max-width: 768px){
    .schedule-desktop-view{
      display:none;
    }
    .schedule-mobile-table{
      display:block;
    }
  }
  
  .schedule .cell-lines{
    list-style:none;
    padding:0;
    margin:.1rem 0 0;
    display:flex;
    flex-direction:column;
    gap:8px;
  }
  
  .schedule .cell-lines li{
    line-height:1.35;
    word-break:break-word;
    font-weight: var(--sch-fw);
  }
  
  .schedule .slot-empty{
    text-align:center;
    color:#94a3b8;
    font-size:.9rem;
    min-height:64px;
    font-weight: var(--sch-fw);
  }
  
  /* 横表示（カード風） */
  .schedule .slot-entry{
    width:min(120px, 100%);
    padding:12px 10px;
    border-radius:14px;
    border:1px solid rgba(var(--entry-rgb,31,122,224), .35);
    background: linear-gradient(180deg,
      rgba(var(--entry-rgb,31,122,224), .22) 0%,
      rgba(var(--entry-rgb,31,122,224), .10) 100%
    );
    box-shadow:0 10px 18px rgba(2,12,27,.06);
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    gap:4px;
    min-height:var(--slot-entry-min-height);
  }
  
  .schedule .slot-person{
    font-weight: var(--sch-fw-strong);
    color:#0f172a;
    line-height:1.1;
  }
  
  .schedule .slot-note{
    font-size:.82rem;
    color:#334155;
    font-weight: var(--sch-fw);
    line-height:1.2;
  }
  
  .schedule-note{
    margin-top:12px;
    padding-top:12px;
    border-top:1px solid #e2e8f0;
    color:#55637a;
    font-size:.92rem;
    font-weight: var(--sch-fw);
  }
  
  /* ======================================================
     縦表示テーブル（曜日×午前午後）
     ====================================================== */
  .schedule-vertical-table-wrapper{
    margin-top:1rem;
  }
  
  .schedule-vertical-table{
    width:100%;
    border-collapse:collapse;
    border:1px solid #e2e8f0;
    border-radius:12px;
    overflow:hidden;
    background:#fff;
  }
  
  .schedule-vertical-table-title{
    font-size:.95rem;
    font-weight: var(--sch-fw-strong);
    color:#475569;
    margin-bottom:.4rem;
  }
  
  .schedule-vertical-table th,
  .schedule-vertical-table td{
    border-bottom:1px solid #e8ebf2;
    border-right:1px solid #e8ebf2;
    padding:.8rem 1rem;
    vertical-align:top;
    text-align:left;
    padding-left:1.25rem;
    font-weight: var(--sch-fw);
  }
  
  .schedule-vertical-table td{
    min-height:120px;
  }
  
  .schedule-vertical-table td .cell-lines{
    width:100%;
    display:flex;
    flex-direction:column;
    gap:8px;
  }
  
  .schedule-vertical-table .slot-entry{
    display:flex;
    flex-direction:row;
    align-items:center;
    justify-content:flex-start;
    gap:8px;
    flex-wrap:wrap;
    min-height:var(--slot-entry-vertical-min-height);
    padding:12px 10px;
    border-radius:14px;
    border:1px solid rgba(var(--entry-rgb,31,122,224), .35);
    background: linear-gradient(180deg,
      rgba(var(--entry-rgb,31,122,224), .22) 0%,
      rgba(var(--entry-rgb,31,122,224), .10) 100%
    );
    box-shadow:0 10px 18px rgba(2,12,27,.06);
    width:auto;
  }
  
  .schedule-vertical-table .slot-entry span{
    color:#0f172a;
    font-weight: var(--sch-fw);
  }
  
  .schedule-vertical-table .slot-note{
    font-size:.88rem;
    color:#475569;
    font-weight: var(--sch-fw);
  }
  
  .schedule-vertical-table th:last-child,
  .schedule-vertical-table td:last-child{
    border-right:none;
  }
  
  .schedule-vertical-table thead th{
    background:#f4f6fa;
    font-weight: var(--sch-fw-strong);
  }
  
  .schedule-vertical-table tbody tr:last-child td{
    border-bottom:none;
  }
  
  /* 横スクロール（PC・タブレットの横表示のみ） */
  @media(min-width:769px) and (max-width:860px){
    .schedule-desktop-view .schedule-table{ overflow:auto; }
    .schedule-desktop-view .schedule-table table{ min-width:860px; }
  }
  