/* 管理画面のレイアウトのみ。見た目はbrand.cssに集約する。 */
.admin label { display: block; }
.admin input[type=text], .admin input[type=url], .admin input[type=number],
.admin input[type=datetime-local], .admin textarea, .admin select { display: block; box-sizing: border-box; width: 100%; max-width: 100%; }
.admin textarea { min-height: 120px; }
.admin fieldset, .admin details, .admin-card { min-width: 0; }
.admin pre { white-space: pre-wrap; overflow-wrap: anywhere; }
.admin table { border-collapse: collapse; width: 100%; }
.admin td, .admin th { text-align: left; white-space: pre-wrap; }
.admin .scroll { overflow-x: auto; }
.admin .tools, .admin-nav { display: flex; flex-wrap: wrap; }
.admin nav button { width: auto; }
.admin select[multiple] { min-height: 145px; }
.admin-content { min-width: 0; }
.admin .result-bar { grid-template-columns: minmax(5rem, 1fr) auto; }
.admin .result-bar__track { grid-column: auto; min-width: 0; }
.admin .result-bar__fill { width: 100%; max-width: 100%; }
.admin-filter { display: grid; gap: 12px; grid-template-columns: repeat(auto-fit, minmax(min(100%, 14rem), 1fr)); }
.admin [hidden] { display: none !important; }
.admin-message-editor { display: grid; gap: 16px; min-width: 0; }
.message-preview img { max-width: 100%; height: auto; }
.message-preview .message-card img { width: 100%; aspect-ratio: 151 / 100; object-fit: cover; }
.message-bubble { max-width: 26rem; overflow-wrap: anywhere; }
.message-carousel { display: flex; gap: 12px; overflow-x: auto; }
.message-carousel .message-card { flex: 0 0 18rem; min-width: 0; }
.admin-table-wrap { overflow-x: auto; }
.admin .admin-savebar { position: fixed; left: max(12px, calc((100vw - 800px) / 2)); right: max(12px, calc((100vw - 800px) / 2)); bottom: calc(64px + env(safe-area-inset-bottom)); }
.admin .admin-savebar p { flex-basis: 100%; margin: 0; }
.admin-editor { padding-bottom: 210px; min-width: 0; }
.admin-list-item, .admin-editor-body { overflow-wrap: anywhere; min-width: 0; }
.admin-list-head { flex-wrap: wrap; }
.admin-overview { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 14rem), 1fr)); gap: 12px; }
@media (max-width: 500px) { .admin-list-head { align-items: stretch; flex-direction: column; } }
@media (min-width: 900px) { .admin .admin-savebar { bottom: 0; } }
/* ツリーの配置のみ。色・線の装飾はbrand.cssで調整する。 */
.flow-tools { display:flex; flex-wrap:wrap; gap:8px; justify-content:flex-end; }
.flow-viewport { overflow:auto; max-width:100%; min-width:0; }
.flow-tree { position:relative; display:flex; flex-direction:column; align-items:center; gap:38px; padding:24px 8px; min-width:0; isolation:isolate; }
.flow-column { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:30px 12px; width:min(100%,340px); flex-shrink:0; align-items:start; }
.flow-column > .flow-node { grid-column:1 / -1; }
.flow-column > .flow-cond--yes { grid-column:1; grid-row:2; }
.flow-column > .flow-action { grid-column:1; grid-row:3; }
.flow-column > .flow-cond--no { grid-column:2; grid-row:2 / 4; }
.flow-node { position:relative; z-index:1; min-width:0; max-width:100%; padding:12px; overflow-wrap:anywhere; }
.flow-node button { max-width:100%; white-space:normal; }
.flow-node__open { width:100%; text-align:left; }
.flow-numbers { display:grid; grid-template-columns:1fr auto; gap:4px 8px; margin:8px 0 0; }
.flow-numbers dd { margin:0; }
.flow-lines { position:absolute; inset:0; z-index:0; pointer-events:none; overflow:visible; }
.flow-panel { overflow-wrap:anywhere; }
@media(min-width:900px) {
 .flow-tree { flex-direction:row; align-items:center; width:max-content; min-width:100%; gap:52px; padding:32px 16px; }
 .flow-column { width:240px; grid-template-columns:1fr; align-items:center; }
 .flow-column > .flow-cond--yes { grid-column:1; grid-row:2; }
 .flow-column > .flow-action { grid-column:1; grid-row:3; }
 .flow-column > .flow-cond--no { grid-column:1; grid-row:4; }
}
.admin-menu-period { display:grid; gap:12px; min-width:0; }

/* 16: 配置・大きさのみ。色と装飾はbrand.cssで管理。 */
.tag-picker { display:flex; flex-wrap:wrap; gap:8px; min-width:0; max-width:100%; }
.tag-picker legend { width:100%; }
.admin .tag-chip { display:inline-flex; flex-direction:row; align-items:center; gap:6px; max-width:100%; margin:0; padding:8px; overflow-wrap:anywhere; }
.admin .tag-chip input { width:auto; flex:0 0 auto; margin:0; }
.menu-preview { min-width:0; max-width:100%; overflow-wrap:anywhere; }
.menu-preview svg { display:block; width:100%; height:auto; }
.menu-preview ul { padding-inline-start:1.5em; }
.admin .admin-list-toggle { display:block; width:auto; margin:12px 0 0 auto; padding:6px 12px; }
.admin-list-item { cursor:pointer; }

.admin-booking-settings { display:grid; gap:12px; min-width:0; }
.admin-booking-responses { min-width:0; }

/* 保存結果が表示されたときも375px内に収める。装飾はbrand.cssのまま。 */
.admin p#admin-status { margin-inline:0; max-width:100%; box-sizing:border-box; overflow-wrap:anywhere; }



.admin-booking-responses td { white-space:pre-wrap; }
