@charset "utf-8";

/* -------------------------------------------------------------------------------------- */

/* common */

/* -------------------------------------------------------------------------------------- */


html{
	font-size: 62.5%;
	height: 100%;
	-webkit-text-size-adjust: 100%;
	-moz-text-size-adjust: 100%;
	-ms-text-size-adjust: 100%;
	text-size-adjust: 100%
}
body{
  	height: 100%;
	margin:0 auto ;
	box-sizing: border-box;
	position: relative;
	font-size:1.4rem;/* 14px*/
    line-height: 1.6;
	color: #000;
	font-family:Helvetica,"ヒラギノ角ゴ Pro W3","Hiragino Kaku Gothic Pro","メイリオ",Meiryo,Osaka,"ＭＳ Ｐゴシック","MS PGothic",sans-serif;
	font-weight: 300;
	display: flex;
	flex-flow: column;
	align-items: flex-start;
	background: #5bd0b5 url(logo_m.png) no-repeat bottom 1em right 1em;
	background-attachment: fixed;

}
body>*:not(header){
	display: block;
	min-width:40%;
	margin: auto;
	padding: 2rem;
	box-sizing: border-box;
	border-radius: 2rem;
	background-color: #fff;
}

a{color:#5bd0b5;overflow:hidden;outline:none;text-decoration:none;font-weight: 500;}
a:hover{color:#357a6a;}

img{border: none;
	vertical-align:bottom;
}
.ss{
	width:100%;
	max-width:50rem
}

h2[id] {
  scroll-margin-top: 56px;
}

/* ヘッダー専用：全幅・左寄せ・背景透明 */
header.site-header{
	width: 100%;
	margin: 0;                 /* 中央寄せを無効化 */
	padding: 12px 16px;        /* お好みで */
	background: transparent;   /* ロゴの透過を活かす */
	border-radius: 0;          /* 丸みも不要なら0 */
}

/* ロゴは左寄せでそのまま表示 */
header.site-header .site-logo{
	display: block;
	max-width: 220px;  /* お好みで */
	height: auto;
	margin: 0;
}

footer{
	width: 100%;
	box-sizing: border-box;
	text-align: center;
	padding: 1em 0;
	background-color: #5bd0b5;
}




/* 文字整形用 */
/* -------------------------------------------------------------------------------------- */
.indent-1{/* 先頭に＊や★を入れて、1文字インデント */
	padding-left:1em;
	text-indent:-1em;
	overflow-wrap:break-word;
}

.dl_flat dd{
	margin-left: 0;
}
.ul_flat{
	padding-left: 0;
}
.liststylenone{
	list-style: none;
}

/* 上付き文字 */
.ue{
	font-size: .5rem;
	vertical-align: top;
	margin-right: .4rem;
}
/* ちょっと小さい文字 */
.sub{
	font-size: 0.8rem;
	overflow-wrap:break-word;
}

/* 文字色 */
.red{
	color: #b00112;
	font-weight: 500;
}
.gray{
	color: #666;
}
.green{
	color: #00ffcc;
}

/* コード */
/* -------------------------------------------------------------------------------------- */
.code_black{
	box-sizing: border-box;
	background: #000;
	overflow-x: auto;
	color: #fff;
	display: block;
	padding: .5em 1em;
	white-space: pre;
	overflow-x: auto;
	line-height: 1;
	-webkit-overflow-scrolling: touch;
}

/* 灰色線箱 */
/* -------------------------------------------------------------------------------------- */
.box_grayline{
	box-sizing: border-box;
	padding: .5em 1em;
	border: #ccc solid 1px;
}

/* inputテキスト */
/* -------------------------------------------------------------------------------------- */
input[type="text"],
input[type="password"]{
	width: 100%;
	font-family: inherit;
	min-width: 20em;
    padding: .5em 1em;
    font-size: 16px;
	font-size: 100%; /* 1 */
    border-radius: 3px;
    border: 1px solid #ddd;
    box-sizing: border-box;
	margin-bottom: 0.5em;
	background-color: #F7F5F0;
}

/* select */
select{
	min-width: 20em;
	max-width: 20em;
	border: 1px solid #ddd;
}

/* buttonのスタイルノーマライズ */
/* -------------------------------------------------------------------------------------- */
button,
optgroup,
select,
textarea {
  font-family: inherit; /* 1 */
  font-size: 100%; /* 1 */
  line-height: 1.15; /* 1 */
  margin: 0; /* 2 */
}
/**
 * Show the overflow in IE.
 * 1. Show the overflow in Edge.
 */
button,
input { /* 1 */
  overflow: visible;
}
/**
 * Remove the inheritance of text transform in Edge, Firefox, and IE.
 * 1. Remove the inheritance of text transform in Firefox.
 */
 
button,
select { /* 1 */
  text-transform: none;
}
 
/**
 * Correct the inability to style clickable types in iOS and Safari.
 */
 
button,
[type="button"],
[type="reset"],
[type="submit"] {
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
		  border: 0;
  border-radius: 0;
  background: #ccc;
  display: block;
    width: 100%;
}


/* ボタン装飾 */
/* -------------------------------------------------------------------------------------- */
.btn_blue{
	display: block;
	background-color: #16418B;
	color: #fff;
	text-align: center;
	box-sizing: border-box;
	padding: 1em;
	border-radius: .5rem;
	border: #16418B solid 2px;
}
.btn_blue:hover,
.btn_blue:focus{
	background-color: #26518B;
	color:#fff;
}
.btn_red{
	display: block;
	background-color: #5bd0b5;
	color: #000;
	text-align: center;
	box-sizing: border-box;
	padding: 1em;
	border-radius: .5rem;
	border: #5bd0b5 solid 2px;
}
.btn_red:hover,
.btn_red:focus{
	background-color: #357a6a;
	color:#000;
}
.btn_beige{
	display: block;
	background-color: #dba666;
	color: #000;
	text-align: center;
	box-sizing: border-box;
	padding: 1em;
	border-radius: .5rem;
	border: #dba666 solid 2px;
}
.btn_beige:hover,
.btn_beige:focus{
	background-color: #82633d;
	color:#000;
}

/* .iccid{ */
	/* background-color: #F7F5F0; */
	/* display: flex; */
	/* padding: 1.5em; */
	/* gap:.3em */
/* } */
.names input{
	margin-bottom: 0;
}
.names button{
	border: none;
	background-color: #5bd0b5;
	border-radius: .2em;
}
.names button:hover,
.names button:focus{
	background-color: #357a6a;
	color:#000;
}

.name input{
	margin-bottom: 0;
}
.name button{
	border: none;
	background-color: #dba666;
	border-radius: .2em;
}
.btn_name{
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex: 0 0 32px;
	width: 32px;
	height: 32px;
	padding: 0;
	line-height: 1;
}
.btn_name .gg-sync{
	margin: 0;
}
.name button:hover,
.name button:focus{
	background-color: #82633d;
	color:#000;
}
.input-container {
    display: flex;
	gap:.3em;
    /* align-items: center; */
		/* height: 100%; */
}


/* 表 ピンク */
/* -------------------------------------------------------------------------------------- */
.table_pink{
	margin-left: auto;
    margin-right: auto;
	padding-top: .5em;
	border-spacing: .2em;
	table-layout: fixed;
	text-align: center;
}
.table_pink dt,
.table_pink th{
	text-align: left;
	margin-top: .5em;
	padding-bottom: .2em;
}
.table_pink tr:first-of-type+tr .trip,
.table_pink tr:first-of-type+tr .iccid{
	border-top:#5bd0b5 solid 2px;
}
.table_pink .trip,
.table_pink .iccid{
	background: #ebf9f6;
	padding: .2em;
	min-width: 20em;
	min-height: 1.6em;
}
.table_pink tr:nth-child(odd) td {
	background-color: #fff;
}

/* 表 グレー */
.table_gray{
    /* table-layout: auto;
    width: 100%; */
	table-layout: fixed;
	margin: 1em 0;
	border-collapse: collapse; /* 枠線(ボーダー)を重ねて表示 */
	border-spacing: 0;
}
.table_gray th{
	background-color: #eee;
	padding: .5em;
	border: solid 1px #ccc;
}
.table_gray td{
	border: solid 1px #ccc;
	padding: .5em;
}
.table_gray input{
	margin-bottom: 0;
}
.table_gray td.no-border, 
.table_gray th.no-border {
	background-color: unset;
    border: none;
}
.table_gray td.no-bgcolor, 
.table_gray th.no-bgcolor {
	background-color: unset;
}
.table_gray .num{
    min-width: 30px;
	text-align: right;
}
.table_gray .trip{
    min-width: 300px;
    white-space: nowrap;
}
.table_gray tr.no-border-row td {
    border: none;
}

/* 表 ベージュ */
.table_beige{
    /* table-layout: auto;
    width: 100%; */
	table-layout: fixed;
	margin: 1em 0;
	border-collapse: collapse; /* 枠線(ボーダー)を重ねて表示 */
	border-spacing: 0;
}
.table_beige th{
	background-color: #f6dcbb;
	padding: .5em;
	border: solid 1px #ccc;
}
.table_beige td{
	border: solid 1px #ccc;
	padding: .5em;
}
.table_beige input{
	margin-bottom: 0;
}
.table_beige td.no-border,
.table_beige th.no-border {
	background-color: unset;
    border: none;
}
.table_beige td.no-bgcolor,
.table_beige th.no-bgcolor {
	background-color: unset;
}
.table_beige .num{
    min-width: 30px;
	text-align: right;
}
.table_beige td.center,
.table_beige th.center{
	text-align: center;
	vertical-align: middle;
}
.table_beige td.center button{
	display: inline-block;
	vertical-align: middle;
}
/* .table_beige .name{
    min-width: 300px;
    white-space: nowrap;
} */
.table_beige tr.no-border-row td {
    border: none;
}

/* 表 グリーン */
.table_green{
    /* table-layout: auto;
    width: 100%; */
	table-layout: fixed;
	margin: 1em 0;
	border-collapse: collapse; /* 枠線(ボーダー)を重ねて表示 */
	border-spacing: 0;
}
.table_green th{
	background-color: #cef7ed;
	padding: .5em;
	border: solid 1px #ccc;
}
.table_green td{
	border: solid 1px #ccc;
	padding: .5em;
}
.table_green input{
	margin-bottom: 0;
}
.table_green td.no-border,
.table_green th.no-border {
	background-color: unset;
    border: none;
}
.table_green td.no-bgcolor,
.table_green th.no-bgcolor {
	background-color: unset;
}
.table_green .num{
    min-width: 30px;
	text-align: right;
}
.table_green .trip, .entity{
    min-width: 300px;
    white-space: nowrap;
}
.trip-assignment-table .trip{
	min-width: 420px;
}
.table_green .edit{
	min-width: 60px;
}
.table_green .cause, .effect{
    min-width: 150px;
}
.table_green .check{
    min-width: 60px;
}
.table_green tr.no-border-row td {
    border: none;
}



/* チェックボックス */
.marking {
    appearance: none; /* デフォルトのスタイルを無効化 */
    -webkit-appearance: none;
    -moz-appearance: none;
    
    width: 24px;
    height: 24px;
    
    border: 2px solid #333;
    border-radius: 4px;
    background-color: white;
    cursor: pointer;
    position: relative;
}
.marking:checked {
    background-color: #007bff;
    border-color: #007bff;
}
.marking:checked::after {
    content: "✔";
    font-size: 18px;
    color: white;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
}

.center-container {
    text-align: center;
}



/* 右寄せ */
.align-right {
    display: flex;
    justify-content: flex-end;
    /* align-items: center; */
    gap: 10px;
}

.align-left {
    display: flex;
    /* justify-content: flex-end; */
    align-items: center;
    gap: 10px;
}



/* トグルスイッチ */
.toggle-label {
    display: flex;
    align-items: center; /* 縦方向の中央揃え */
    gap: 10px; /* ラベルとスイッチの間隔 */
    font-size: 16px;
	font-weight: 500;
}

.toggle-switch {
    position: relative;
    display: inline-block;
    width: 50px;
    height: 28px;
}
.toggle-switch input {
    opacity: 0;
    width: 0;
    height: 0;
}

.slider {
    position: absolute;
    cursor: pointer;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-color: #ccc;
    border-radius: 34px;
    transition: 0.4s;
}
.slider::before {
    content: "";
    position: absolute;
    height: 22px;
    width: 22px;
    left: 3px;
    bottom: 3px;
    background-color: white;
    border-radius: 50%;
    transition: 0.4s;
}

.toggle-switch input:checked + .slider {
    background-color: #4cd964;
}
.toggle-switch input:checked + .slider::before {
    transform: translateX(22px);
}



dialog {
    box-sizing: border-box;
    width: min(600px, 100vw);
    padding: 1.5rem 2.0rem;
    border: none;
    border-radius: 12px;
}
dialog::backdrop { background: rgba(0,0,0,.35); }

/* ボタン行の間隔を広げる */
menu {
    display: flex;
    gap: 0.75rem;            /* ← OK とキャンセルの間隔 */
    justify-content: flex-end;
    padding: 0;
    margin-top: 1rem;
}

/* ボタンらしさ＋カーソル（手の形） */
menu button {
    cursor: pointer;         /* ← カーソルを手に */
    min-height: 40px;        /* ← タップしやすいサイズ */
    min-width: 96px;         /* ← 文字が短くても幅を確保 */
    padding: .6rem 1rem;
    border-radius: 10px;
    border: 1px solid #d0d7de;
    background: #fff;
    font-weight: 600;
    transition: background .15s, box-shadow .15s, transform .02s;
}

menu button:hover { background: #f5f5f5; }
menu button:active { transform: translateY(1px); }

/* フォーカス可視化（アクセシビリティ） */
menu button:focus-visible {
    outline: 3px solid #2563eb;
    outline-offset: 2px;
}

/* 主ボタン（OK）を強調、キャンセルは控えめ */
#ok {
    color: #fff;
    background: #0ea5e9;
    border-color: #0ea5e9;
}
#ok:hover { background: #0284c7; }
#ok:disabled {
    opacity: .7;
    cursor: not-allowed;
    background: #93c5fd;
    border-color: #93c5fd;
}

/* 小さい画面では縦並びにして誤タップ防止 */
@media (max-width: 480px) {
    menu { flex-direction: column-reverse; gap: .5rem; }
    menu button { width: 100%; }
}

/* 単一行の入力欄（<input>）を大きく */
.form input[type="text"],
.form input:not([type]) {
    width: 100%;
    min-width: 20em;
    padding: .5em 1em;
    font-size: 16px;
    font-size: 100%; /* 1 */
    border-radius: 3px;
    border: 1px solid #ddd;
    box-sizing: border-box;
    margin-bottom: 0.5em;
    background-color: #F7F5F0;
}

/* 入力欄まわり（任意） */
.form label { display: grid; gap: .5rem; margin-bottom: .75rem; }
.confirm { margin: .25rem 0 .75rem; opacity: .85; }

.trip-id-picker{
	display:grid;
	grid-template-columns:minmax(0, 1fr) auto;
	gap:8px;
	align-items:center;
}

.trip-id-picker input[type="text"]{
	width:100%;
	margin-bottom:0;
	min-width:0;
}

.trip-select-btn{
	display:inline-flex;
	align-items:center;
	justify-content:center;
	width:auto;
	flex:0 0 auto;
	white-space:nowrap;
	min-width:auto;
	padding:0.6em 1.2em;
	background:#e9ecef;
	border:1px solid #ced4da;
	border-radius:.5rem;
	color:#333;
	cursor:pointer;
}

.trip-select-btn:hover,
.trip-select-btn:focus{
	background:#dde2e6;
	color:#111;
}

.trip-select-dialog{
	width:min(72rem, calc(100vw - 32px));
}

.trip-select-summary{
	display:flex;
	align-items:center;
	justify-content:flex-start;
	margin:.25rem 0 .75rem;
	color:#666;
}

.trip-select-summary__toggle{
	display:inline-flex;
	align-items:center;
	gap:.5rem;
	flex:0 0 auto;
	white-space:nowrap;
}

.form .trip-select-summary__toggle{
	display:inline-flex;
	margin-bottom:0;
}

.trip-select-summary__toggle input[type="checkbox"]{
	width:auto;
	min-width:0;
	margin:0;
}

.trip-select-summary__toggle.is-disabled{
	opacity:.55;
}

.trip-select-list{
	max-height:36rem;
	overflow:auto;
	border:1px solid #ddd;
	border-radius:6px;
	background:#F7F5F0;
}

.trip-select-empty{
	padding:1.2rem 1.4rem;
	color:#666;
}

.trip-select-item{
	display:grid;
	grid-template-columns:auto minmax(0, 1fr);
	column-gap:10px;
	row-gap:.25rem;
	align-items:center;
	padding:1.1rem 1.4rem;
	border-bottom:1px solid #e5e5e5;
	cursor:pointer;
}

.trip-select-item:last-child{
	border-bottom:0;
}

.trip-select-item.is-disabled{
	cursor:default;
	opacity:.55;
}

.trip-select-item input[type="checkbox"]{
	grid-column:1;
	grid-row:1;
	width:auto;
	min-width:0;
	margin:0;
}

.trip-select-item__id{
	display:flex;
	align-items:center;
	gap:.6rem;
	grid-column:2;
	grid-row:1;
	font-weight:600;
	word-break:break-all;
}

.trip-select-item__badge{
	display:inline-flex;
	align-items:center;
	justify-content:center;
	padding:.15rem .6rem;
	border-radius:999px;
	background:#e9ecef;
	color:#495057;
	font-size:1.1rem;
	font-weight:500;
	line-height:1.2;
	white-space:nowrap;
}

.trip-select-item__meta{
	grid-column:2;
	grid-row:2;
	color:#666;
	font-size:1.2rem;
	word-break:break-word;
}




.icon-popover{
  position:absolute;
  z-index:9999;
  background:#fff;
  border:1px solid #ddd;
  border-radius:10px;
  box-shadow:0 10px 25px rgba(0,0,0,.15);
  padding:10px;

  min-width: 480px;
  max-width: 92vw;
}

.icon-popover__grid{
  display:grid;
  grid-template-columns: repeat(auto-fill, 40px);
  gap:8px;
  justify-content:start;
}

.icon-popover__cell{
  border:1px solid #eee;
  border-radius:8px;
  padding:6px;
  cursor:pointer;
  display:flex;
  align-items:center;
  justify-content:center;
}

.icon-popover__cell img{
  width:32px;
  height:32px;
  object-fit:contain;
}

.icon-popover__cell.is-selected{
  outline:2px solid #3b82f6;
  outline-offset:1px;
  background:#eff6ff;
}

.icon-popover__cell:focus{
  box-shadow: 0 0 0 2px rgba(37, 99, 235, .35);
}

.icon-btn{
  position: relative;
  width: 40px; height: 40px;
  padding: 0;
  border: 1px solid #d0d7de;
  border-radius: 8px;
  background: #fff;
  cursor: pointer;
}
.icon-img{
  width: 100%; height: 100%;
  object-fit: contain;
  display: block;
}



.linklike {
  background: none;
  border: none;
  padding: 0;
  margin: 0;
  color: #888888;
  text-decoration: underline;
  cursor: pointer;
  font: inherit;
}
.linklike:hover { text-decoration: none; }
.linklike:focus-visible {
  outline: 2px solid currentColor;
  outline-offset: 2px;
}
.linklike:disabled { color: #9aa0a6; cursor: not-allowed; text-decoration: none; }



/* icon */
/* -------------------------------------------------------------------------------------- */
/*-----------------------------*/
/* Copyright © 2019-2020 css.gg */
/* Released under the MIT license */
/* https://css.gg/doc/licence */
/*-----------------------------*/
.gg-sync {
    box-sizing: border-box;
    position: relative;
    display: block;
    transform: scale(var(--ggs,1));
    border-radius: 40px;
    border: 2px solid;
    margin: 1px;
    border-left-color: transparent;
    border-right-color: transparent;
    width: 18px;
    height: 18px
}
.gg-sync::after,
.gg-sync::before {
    content: "";
    display: block;
    box-sizing: border-box;
    position: absolute;
    width: 0;
    height: 0;
    border-top: 4px solid transparent;
    border-bottom: 4px solid transparent;
    transform: rotate(-45deg)
}
.gg-sync::before {
    border-left: 6px solid;
    bottom: -1px;
    right: -3px
}
.gg-sync::after {
    border-right: 6px solid;
    top: -1px;
    left: -3px
}

/* .hidden{ display:none; } */
[hidden] { display: none !important; }



tr.pending {
    opacity: 0.55;
}

tr.pending input,
tr.pending button {
    pointer-events: none;
}

tr.pending .input-container,
tr.pending .icon-btn,
tr.pending .btn_name {
    cursor: not-allowed;
}

tr.pending .marking {
    pointer-events: none;
}

.badge {
    display: inline-block;
    margin-left: 8px;
    padding: 2px 6px;
    font-size: 12px;
    border-radius: 999px;
    border: 1px solid;
    vertical-align: middle;
}
.badge-pending{
    display:inline-block;
    padding: 3px 10px;
    border-radius: 999px;
    border: 2px solid currentColor;
    font-weight: 700;
    letter-spacing: .05em;
    font-size: 12px;
    line-height: 1.4;
    text-transform: none;
}

tr.pending .badge-pending{
    opacity: 1;
}



.billing-box {
    margin-top: 8px;
}

.billing-summary {
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 4px 0;
    list-style: none;
}

.billing-summary::-webkit-details-marker {
    display: none;
}

.billing-summary::before {
    content: "▶";
    font-size: 10px;
    color: #888;
}

.billing-box[open] > .billing-summary::before {
    content: "▼";
}

.billing-summary__label,
.billing-summary__count,
.billing-price {
    font-size: 13px;
}

.billing-detail-body {
    margin-top: 4px;
    padding-left: 16px;
}

.billing-summary__count,
.billing-price strong {
    font-weight: 700;
}

.billing-period,
.billing-note,
.billing-price-detail {
    font-size: 12px;
    color: #777;
}

.step-links {
  position: sticky;
  top: 0;
  z-index: 100;
  padding: 8px 0;
  margin: 0 0 16px;
  background: rgba(255, 255, 255, 0.95);
  border-bottom: 1px solid #ddd;
  font-size: 14px;
  color: #666;
}

.step-links a {
  color: inherit;
  text-decoration: none;
}

.step-links a:hover {
  text-decoration: underline;
}

.step-separator {
  margin: 0 6px;
  color: #aaa;
}

.step-divider {
  margin: 0 10px;
  color: #999;
  white-space: nowrap;
}

.section-label {
  display: inline-block;
  margin-right: 10px;
  padding: 2px 8px;
  border: 1px solid #d8d8d8;
  border-radius: 999px;
  background: #f7f7f7;
  color: #666;
  font-size: 0.8em;
  font-weight: 700;
  line-height: 1.3;
  vertical-align: middle;
}
