/* Filament Warp Table — canvas 描画テーブルの最小限のレイアウト CSS。
   色やフォントは Filament 本体の CSS を JS がプローブして Canvas に反映する。 */

.fi-warp-ta .fi-ta-content-header {
    display: none;
}

/* content() を使うと Filament は表全体のサマリーを内容の後ろに別の <table> で出す。
   Warp はサマリー行を自分で描くので、Warp が描いているとき（.fi-warp があるとき）だけ隠す */
.fi-warp-ta .fi-warp ~ .fi-ta-table {
    display: none;
}

.fi-warp {
    position: relative;
    width: 100%;
}

.fi-warp-stage {
    position: relative;
    width: 100%;
    max-height: var(--fi-warp-height, 75vh);
    overflow: auto;
    outline: none;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
}

/* ステージ自体の枠線は出さない（フォーカス位置は KeyboardFocus が Canvas に描く） */
.fi-warp-stage:focus-visible {
    box-shadow: none;
}

.fi-warp-canvas {
    position: sticky;
    top: 0;
    left: 0;
    display: block;
    z-index: 1;
}

/* ページスクロール（既定）: 枠内スクロールをやめ、Canvas は JS が見えている範囲へ移動させる */
.fi-warp-stage.fi-warp-page {
    max-height: none;
    overflow-y: hidden;
    /* 縦のホイールはページ（やモーダル）に渡す。contain のままだと表の上でホイールを回してもスクロールしない。
       横は contain のまま（横スクロールの端でブラウザの「戻る」ジェスチャーにならないように） */
    overscroll-behavior-y: auto;
}

.fi-warp-stage.fi-warp-page > .fi-warp-canvas {
    position: absolute;
    top: 0;
    left: 0;
}

.fi-warp-spacer {
    position: absolute;
    top: 0;
    left: 0;
    width: 1px;
    height: 1px;
    pointer-events: none;
    visibility: hidden;
}

.fi-warp-overlay {
    position: absolute;
    top: 0;
    left: 0;
    pointer-events: none;
    z-index: 2;
}

.fi-warp-overlay > * {
    position: absolute;
    pointer-events: auto;
    box-sizing: border-box;
}

.fi-warp-editor.fi-input-wrp {
    display: flex;
    align-items: stretch;
}

.fi-warp-editor .fi-input,
.fi-warp-editor .fi-select-input {
    width: 100%;
}

/* 独自の選択 UI（selectTableColumn）の編集: Filament 標準の .fi-ta-select と同じ中身を入力欄の位置に置く。
   標準ではセルの余白（px-3 py-4）が .fi-ta-select に付くが、ここでは入力欄の位置そのものに置くので外す */
.fi-warp-overlay > .fi-warp-custom-select {
    padding: 0;
}

.fi-warp-custom-select > .fi-input-wrp {
    height: 100%;
}

.fi-warp-editor.fi-warp-pending {
    opacity: 0.7;
}

.fi-warp-error {
    position: absolute;
    z-index: 3;
    max-width: 20rem;
    padding: 0.375rem 0.625rem;
    border-radius: 0.5rem;
    background: rgb(220 38 38);
    color: #fff;
    font-size: 0.75rem;
    line-height: 1rem;
    pointer-events: none;
    white-space: normal;
    box-shadow: 0 4px 12px rgb(0 0 0 / 0.15);
}

.fi-warp-html {
    display: flex;
    align-items: center;
    overflow: hidden;
}

.fi-warp-html > .fi-ta-col {
    width: 100%;
}

.fi-warp-dropdown {
    z-index: 4;
    min-width: 12rem;
}

.fi-warp-dropdown .fi-dropdown-list-item {
    width: 100%;
}

.fi-warp-probe {
    position: absolute !important;
    left: -100000px !important;
    top: 0 !important;
    width: 1000px;
    height: 0;
    overflow: hidden;
    visibility: hidden;
    pointer-events: none;
}

/* テーマ切替直後に computedStyle を読むため、プローブでは色のトランジションを無効化する */
.fi-warp-probe,
.fi-warp-probe * {
    transition: none !important;
    animation: none !important;
}

.fi-warp-tooltip {
    position: fixed;
    z-index: 50;
    max-width: 20rem;
    padding: 0.375rem 0.625rem;
    border-radius: 0.5rem;
    background: rgb(17 24 39);
    color: #fff;
    font-size: 0.75rem;
    line-height: 1rem;
    pointer-events: none;
    white-space: pre-line;
    box-shadow: 0 4px 12px rgb(0 0 0 / 0.15);
}

.dark .fi-warp-tooltip {
    background: rgb(243 244 246);
    color: rgb(17 24 39);
}

.fi-warp-group {
    display: flex;
    align-items: center;
    overflow: hidden;
    white-space: nowrap;
}

.fi-warp-group > .fi-ta-group-header-cell {
    display: block;
    width: 100%;
    min-width: 0;
}

.fi-warp-summary {
    left: 0;
    pointer-events: none;
}

/* セルは Filament の td と同じく上下中央に置く */
.fi-warp-summary > .fi-ta-cell {
    position: absolute;
    top: 0;
    bottom: 0;
    display: flex;
    flex-direction: column;
    justify-content: center;
    box-sizing: border-box;
    min-width: 0;
    overflow: hidden;
    /* Filament の tbody は sm 以上で whitespace-nowrap */
    white-space: nowrap;
    pointer-events: auto;
}

/* 値セルは Filament では最後の td にならないので、.fi-ta-cell の last:pe-* を打ち消す */
.fi-warp-summary > .fi-ta-cell:not(:first-child):not(.fi-ta-summary-header-cell) {
    padding-inline-end: 0;
}

.fi-warp-measure {
    position: absolute;
    left: 0;
    top: 0;
    visibility: hidden;
    pointer-events: none;
}

/* 計測時はセルの高さを内容に任せる */
.fi-warp-measure .fi-ta-cell {
    bottom: auto !important;
}

/* 見出しを固定しているあいだ、見出しを描く Canvas（grid.js の updateFixedHeader）。位置と大きさは JS が決める。
   オーバーレイ（z-index: 2、DOM ではこの後ろ）より奥に置き、ドロップダウンなどは見出しの手前に出す */
.fi-warp-stage > .fi-warp-header-canvas {
    position: fixed;
    z-index: 2;
    display: block;
}

/* warpFrozenColumns(): 固定した列の DOM は、横にスクロールした分（grid.js の syncFrozenShift）だけずらす */
.fi-warp-overlay.fi-warp-shifted .fi-warp-frozen {
    transform: translateX(var(--fi-warp-shift, 0px));
}

/* warpCellSelection(): ドラッグで範囲を選んでいる間は、オーバーレイの文字を選択させない */
.fi-warp-stage.fi-warp-selecting,
.fi-warp-stage.fi-warp-selecting * {
    user-select: none;
    -webkit-user-select: none;
    cursor: cell !important;
}

/* ホバー中のリンク用の透明な <a>（grid.js の createLink） */
.fi-warp-overlay > .fi-warp-link {
    display: block;
    background: transparent;
    outline: none;
}

/* display を指定した要素でも hidden 属性を優先する（リンク・サマリーのセルなど） */
.fi-warp [hidden] {
    display: none !important;
}

/* キーボードで移動したときの枠線（グループの開閉ボタン）。Filament 標準の .fi-icon-btn:focus-visible と同じ ring */
.fi-warp .fi-warp-focus-visible {
    box-shadow: 0 0 0 2px var(--primary-500);
}

/* 列幅の測定用の見えない <table>（table-measure.js） */
.fi-warp-measure-table {
    position: absolute;
    left: 0;
    top: 0;
    height: 0;
    overflow: hidden;
    visibility: hidden;
    pointer-events: none;
}

/* ページ内検索用の透明な文字（overlay.js の syncFindLayer）。クリック等は下の Canvas に通す */
.fi-warp-overlay > .fi-warp-find {
    left: 0;
    top: 0;
    pointer-events: none;
}

.fi-warp-find > div {
    position: absolute;
    display: flex;
    flex-direction: column;
    justify-content: center;
    overflow: hidden;
    color: transparent;
}
