@charset "utf-8";

/*----------------------------------------------------------
	reset
--------------------------------------------------------- */
* {
	margin: 0;
	padding: 0;
}

*,
*::before,
*::after {
	box-sizing: border-box;
}

body,
dl,
dt,
dd,
ul,
li,
h1,
h2,
h3,
h4,
form,
p,
th,
td,
input,
textarea,
select {
	margin: 0px;
	padding: 0px;
}

img {
	margin: 0;
	padding: 0;
	border: 0;
	vertical-align: top;
}

ul,
dl {
	list-style-type: none;
}

button,
input,
textarea {
	font-family: inherit;
}

/* iOSでのデフォルトスタイルをリセット */
input {
	border-radius: 0;
	-webkit-box-sizing: content-box;
	-webkit-appearance: none;
	appearance: none;
	box-sizing: border-box;
	border: 1px solid #b1b1b1;
	padding: 8px;
}

input::-webkit-search-decoration {
	display: none;
}

input:focus {
	outline-offset: -2px;
}

textarea {
	border-radius: 0;
	-webkit-appearance: none;
	appearance: none;
	border: none;
	box-sizing: border-box;
	font-size: smaller;
}

select {
	color: var(--text-color);
}

button {
	background-color: transparent;
	border: none;
	cursor: pointer;
	outline: none;
	padding: 0;
	appearance: none;
	font-size: 1rem;
	transition: 0.3s;
}

button:hover {
	opacity: .7;
}


/*-----------------------------------------
	共通
------------------------------------------*/

body {
	margin: 0;
	padding: 0;
	background-color: #e4f0ff;
	background-image: none;
	color: #333333;
	font-family: "游ゴシック体", YuGothic, "游ゴシック", "Yu Gothic", "メイリオ", "Hiragino Kaku Gothic ProN", "Hiragino Sans", sans-serif;
	font-weight: 500;
	line-height: 1.5;
	overflow-wrap: break-word;
	word-break: initial;
	text-align: left;
	background-repeat: initial;
}

@media screen and (max-width: 850px) {
	* {
		-webkit-text-size-adjust: 100%;
		word-break: normal;
	}
}

* {
	-webkit-box-sizing: border-box;
	-moz-box-sizing: border-box;
	-o-box-sizing: border-box;
	-ms-box-sizing: border-box;
	box-sizing: border-box;
	word-break: normal;
}

img {
	max-width: 100%;
	height: auto;
	width: auto;
}

p {
	line-height: 1.5;
}

a {
	-webkit-tap-highlight-color: transparent;
	transition: 0.3s;
	color: #2c5282;
	text-decoration: underline;
}

a:hover {
	opacity: 0.7;
	cursor: pointer;
	text-decoration: none;
	color: #1a365d;
}

a:visited {
	text-decoration: underline;
	color: #0b426a;
}

.align-c {
	text-align: center;
}

.mt-20 {
	margin-top: 20px!important;
}

.pb-20 {
	padding-bottom: 20px;
}

/* -----------------------------------------------------------------------
	全体
------------------------------------------------------------------------ */
#wrapper {
	display: flex;
	flex-direction: column;
	align-items: center;
	align-content: center;
	min-height: calc(100vh - 54px);
	width: initial;
	background-color: initial;
	margin: initial;
	padding: initial;
}

.h-style {
	font-size: 1.2rem;
	font-weight: bold;
	margin: 0;
	color: #FFF;
}

.search-header h3.h-style2::before {
	display: none;/*検索の虫メガネアイコン削除*/
}

.h-style3 {
	font-size: 1.2rem;
	font-weight: bold;
	color: #1573B8;
	margin-bottom: 1rem;
}


/* ------------------------------------------------------------------------
        ログインエリア
------------------------------------------------------------------------ */
#loginArea-wrap {
	display: flex;
	align-items: center;
	align-content: center;
	min-height: calc(100vh - 54px);
}

#loginArea {
	margin: 25px auto;
	padding: 2%;
	width: 100%;
	max-width: 800px;
	background-color: #fff;
	box-shadow: 2px 2px 10px 0px rgba(187, 187, 187, 0.4);
	text-align: center;
}

.loginbox {
	display: flex;
	flex-direction: column;
	margin-bottom: 20px;
}

.loginbox label {
	display: flex;
	align-items: center;
	justify-content: center;
	margin-bottom: 20px;
	width: 100%;
}

.loginbox input[type="text"],
.loginbox input[type="password"] {
	width: 100%;
	max-width: 220px;
}

.pwbox {
	padding-left: 170px;
	padding-bottom: 20px;
}

.ckbox {
	padding-bottom: 10px;
}

.ckbox input[type="checkbox"] {
	opacity: 0;
	-webkit-appearance: none;
	appearance: none;
	position: absolute;
}

.ckbox input[type="checkbox"]+span::before {
	display: inline-block;
	content: '';
	width: 1.2rem;
	height: 1.2rem;
	border: 2px solid #ccc;
	border-radius: 5px;
	margin-right: .5rem;
	vertical-align: text-top;
}

/* Checked Style */
input[type="checkbox"]:checked+span::before {
	background-image: url('data:image/svg+xml;charset=utf8,%3Csvg%20version%3D%221.1%22%20id%3D%22_x32_%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20x%3D%220px%22%20y%3D%220px%22%20viewBox%3D%220%200%20512%20512%22%20style%3D%22width%3A%20256px%3B%20height%3A%20256px%3B%20opacity%3A%201%3B%22%20xml%3Aspace%3D%22preserve%22%3E%3Cstyle%20type%3D%22text%2Fcss%22%3E%20.st0%7Bfill%3A%234B4B4B%3B%7D%3C%2Fstyle%3E%3Cg%3E%20%3Cpolygon%20class%3D%22st0%22%20points%3D%22440.469%2C73.413%20218.357%2C295.525%2071.531%2C148.709%200%2C220.229%20146.826%2C367.055%20218.357%2C438.587%20289.878%2C367.055%20512%2C144.945%20%22%20style%3D%22fill%3A%20rgb(21%2C%20115%2C%20184)%3B%22%3E%3C%2Fpolygon%3E%3C%2Fg%3E%3C%2Fsvg%3E');
	background-repeat: no-repeat;
	background-position: 0 1px;
}

/* Focused Style */
input[type="checkbox"]:focus+span::before {
	border-color: #0bd;
}

.btbox {
	margin: 0 auto;
}

.btn {
	display: inline-block;
	padding: 12px 60px 10px;
	background-color: #ea8706;
	color: #FFF;
	font-weight: bold;
	text-decoration: none;
	position: relative;
	min-width: 200px;
	text-align: center;
}

.btn::after {
	content: "";
	border-right: 2px solid #FFF;
	border-top: 2px solid #FFF;
	position: absolute;
	bottom: 0;
	right: 20px;
	top: 0;
	height: 10px;
	width: 10px;
	margin: auto;
	transform: rotate(45deg);
	transition: right .3s;
}

.btn:hover {
	opacity: .7;
	color: #FFF;
}

.btn:hover::after {
	right: 15px;
}

.btn:visited {
	color: #FFF;
}

.error {
	padding: 16px 0;
	color: #CC0000;
	font-weight: bold;
}

.back {
	padding-top: 20px;
	text-align: center;
}

.btn-back {
	display: inline-block;
	padding: 12px 60px 10px;
	background-color: #022a70;
	color: #FFF;
	font-weight: bold;
	text-decoration: none;
	position: relative;
	min-width: 200px;
	text-align: center;
	font-size: 1rem;
}

.btn-back::after {
	content: "";
	border-left: 2px solid #FFF;
	border-bottom: 2px solid #FFF;
	position: absolute;
	bottom: 0;
	left: 20px;
	top: 0;
	height: 10px;
	width: 10px;
	margin: auto;
	transform: rotate(45deg);
	transition: left .3s;
}

.btn-back:hover {
	color: #FFF;
}

.btn-back:hover::after {
	left: 15px;
}

.btn-back:visited {
	color: #FFF;
}

.btn-area {
	padding-top: 20px;
	text-align: center;
}

.btn-sub {
	display: inline-block;
	padding: 12px 60px 10px;
	background-color: #ea8706;
	color: #FFF;
	font-weight: bold;
	text-decoration: none;
	min-width: 200px;
	text-align: center;
}

.btn-check {
	color: #FFF;
	background-color: #139428;
	border: 1px solid #139428;
	padding: 10px;
	font-size: .9rem;
	display: block;
}

#usernaviAll_box {
	width: 100%;
	background-color: #1573b8;
}

#infotext {
	margin: 0 auto;
	padding-top: 40px;
	color: #333333;
	font-size: 1.25em;
}

.mailadress {
	display: flex;
	flex-direction: column;
	padding: 0 0 20px 0;
}

.title {
	display: inline-block;
	color: #999999;
	font-size: 0.9rem;
	font-weight: bold;
}

.info-inner {
	display: flex;
	justify-content: center;
}

.info-inner dt {
	width: 150px;
	text-align: right;
	font-weight: bold;
}

.info-inner dd {
	width: 230px;
	text-align: left;
	padding-left: 1rem;
}

#header {
	width: 100%;
	background-color: #FFF;
	margin: initial;
}

#headerArea {
	width: 100%;
	display: flex;
	justify-content: space-between;
	margin: 0 auto;
	max-width: 1200px;
}

#headerleft {
	float: initial;
	width: initial;
}

#headerright {
	float: initial;
	width: initial;
	height: initial;
}

#headerMenu {
	display: flex;
	justify-content: flex-end;
	/* 右寄せに統一 */
	align-items: flex-end;
	padding: 10px 20px;
	margin: 0;
	height: 100%;
}

#headerMenu ul {
	display: flex;
	align-items: baseline;
	list-style: none;
	margin: 0;
	padding: 0;
	gap: 20px;
	/* リンク間の間隔 */
}

#headerMenu li {
	margin: 0;
}

#headerMenu a {
	text-decoration: none;
	padding: 5px 10px;
}

#head00 a,
#head01 a,
#head04 a {
	background-image: none;
	width: initial;
	height: initial;
	margin-left: initial;
}

#head00 a:hover,
#head01 a:hover,
#head04 a:hover {
	background-image: none;
}

#head00 a::before,
#head01 a::before,
#head04 a::before {
	content: "";
	display: inline-block;
	width: 24px;
	height: 24px;
	vertical-align: bottom;
	filter: invert(34%) sepia(38%) saturate(1872%) hue-rotate(175deg) brightness(98%) contrast(93%);
}

#head00 a::before {
	background-image: url(../images/common/icon_setting.svg);
}

#head01 a::before {
	background-image: url(../images/common/icon_help.svg);
}

#head04 a::before {
	background-image: url(../images/common/icon_logout.svg);
}

#all01_on a,
#all02_on a,
#all03_on a,
#all99_on a,
#all04_on a,
#all05_on a,
#all06_on a {
	background-image: none;
	width: initial;
	height: initial;
	background-color: #348FD2;
}

#all01 a,
#all02 a,
#all03 a,
#all99 a,
#all04 a,
#all05 a,
#all06 a {
	background-image: none;
	width: initial;
	height: initial;
}

#all01 a:hover,
#all02 a:hover,
#all03 a:hover,
#all99 a:hover,
#all04 a:hover,
#all05 a:hover,
#all06 a:hover {
	background-image: none;
}

.header {
	position: relative;
	padding: 1rem;
	background: #fff;
	box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}

.header-menu {
	margin-bottom: 1rem;
}

.header-nav {
	display: flex;
	gap: 1rem;
	justify-content: flex-end;
	list-style: none;
	padding: 0;
	margin: 0;
}

.hamburger {
	display: none;
	position: fixed;
	top: 1rem;
	right: 1rem;
	z-index: 1000;
	background: none;
	border: none;
	cursor: pointer;
	padding: 0.5rem;
}

.hamburger span {
	display: block;
	width: 25px;
	height: 2px;
	background: #333;
	margin: 5px 0;
	transition: all 0.3s;
}

.global-nav {
	background: #fff;
}

.nav-list {
	display: flex;
	list-style: none;
	padding: 0;
	margin: 0;
	gap: 1rem;
}

.nav-item a {
	display: block;
	padding: 0.75rem 1rem;
	color: #333;
	text-decoration: none;
	transition: all 0.3s;
}

.nav-item.active a {
	background: #3498db;
	color: #fff;
	border-radius: 4px;
}

.nav-item a:hover {
	background: #f5f5f5;
	border-radius: 4px;
}

.nav-item.active a:hover {
	background: #2980b9;
}

/* レスポンシブ対応 */
@media (max-width: 768px) {
	.hamburger {
		display: block;
	}

	.hamburger.active span:nth-child(1) {
		transform: rotate(45deg) translate(5px, 5px);
	}

	.hamburger.active span:nth-child(2) {
		opacity: 0;
	}

	.hamburger.active span:nth-child(3) {
		transform: rotate(-45deg) translate(7px, -6px);
	}

	.global-nav {
		position: fixed;
		top: 0;
		right: -100%;
		width: 80%;
		height: 100vh;
		background: #fff;
		transition: all 0.3s;
		box-shadow: -2px 0 4px rgba(0, 0, 0, 0.1);
		z-index: 999;
	}

	.global-nav.active {
		right: 0;
	}

	.nav-list {
		flex-direction: column;
		padding: 4rem 1rem 1rem;
	}

	.nav-item a {
		padding: 1rem;
		border-bottom: 1px solid #eee;
	}
}


/* 全体のレイアウト */
.container {
	width: 100%;
	max-width: 1200px;
	margin: 0 auto;
	padding: 20px;
}

/* セクション共通スタイル */
.content-section {
	background: #fff;
	border-radius: 8px;
	box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
	margin-bottom: 24px;
}

.section-header {
	padding: 8px 20px;
	border-bottom: 1px solid #95bad5;
	background-color: #1573B8;
	border-radius: 8px 8px 0 0;
}

.section-content {
	padding: 20px;
}

/* テーブル共通スタイル */
.table-responsive {
	overflow-x: auto;
	width: 100%;
	margin: 0;
	padding: 0;
	-webkit-overflow-scrolling: touch;
}

.data-table {
	width: 100%;
	min-width: 780px;
	border-collapse: collapse;
	background-color: #FFFFFF;
	margin-top: 0;
	margin-bottom: 1px;
	font-size: 85%;
}

.data-table th {
	background: #f5f7fa;
	padding: 8px;
	font-weight: bold;
	color: #333;
	white-space: nowrap;
	font-size: 1rem;
	border: 1px solid #b0b0b0;
	text-align: center;
}

.data-table td {
	padding: 12px;
	border: 1px solid #b0b0b0;
	vertical-align: middle;
	font-size: 0.9rem;
}

@media screen and (max-width: 768px) {
	.data-table {
		font-size: 13px;
	}

	.data-table th,
	.data-table td {
		padding: 8px;
	}
}

/* チケットインフォメーション */
.t-forum {
	width: 100% !important;
	border-collapse: collapse;
}

/* 発文書テーブル */
table.ichiran {
	width: 100% !important;
	min-width: 800px !important;
	border-collapse: collapse;
	border: solid 1px #CCCCCC;
	background-color: #FFFFFF;
	table-layout: auto;
	margin-top: 0px;
	margin-bottom: 1px;
	font-size: 85%;
	padding: 5px;
}

table.ichiran td {
	padding: 8px;
	border: 1px solid #ddd;
}

table.ichiran img {
	vertical-align: baseline;
}
table.ichiran a > img {
	border-bottom: 1px solid #2c5282;
	padding-bottom: 2px;
}

table.ichiran a:hover > img {
	border-bottom: none;
}

.data-table.ichiran.ver2 {
    width: 100%;
    margin-bottom: 20px;
    border-collapse: collapse;
    background: #fff;
}

.data-table.ichiran.ver2 th,
.data-table.ichiran.ver2 td {
    padding: 12px;
    border: 1px solid #ddd;
}

.data-table.ichiran.ver2 th {
    background: #f5f5f5;
	border: 1px solid #ccc;
}

.data-table.ichiran.ver2 .tag03 {
    text-align: center;
    font-size: 1.2em;
	background-color: #EEEEEE;
}

.data-table.ichiran.ver2 .bc {
    background: #f5f7fa;
    font-weight: bold;
	text-align: center;
}

.data-table.ichiran.ver2 ul {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

.data-table.ichiran.ver2 ul li {
    margin-right: 20px;
}

.data-table.ichiran.ver2 ul li span {
    font-weight: bold;
    color: #666;
}

.data-table.ichiran.ver2 td.tf04, .data-table.ichiran.ver2 td.tf05 {
    vertical-align: top;
}

.data-table.ichiran.ver2 td.tf04 {
	text-align: center;
}

.data-table.ichiran.ver2 td.tf04 p {
    margin: 8px 0;
}

.data-table.ichiran.ver2 td.tf04 hr {
    margin: 10px 0;
    border: none;
    border-top: 1px solid #eee;
}

/* アクティブなタブのスタイル */
.tab-item.active {
	color: #333;
	border-bottom: 2px solid #333;
	font-weight: 500;
}

/* タブホバー時のスタイル */
.tab-item:hover {
	color: #333;
	border-bottom-color: #999;
}

.t-forum th {
	border: 1px solid #b0b0b0;
}

.data-table th {
	background: #f5f7fa;
	padding: 8px;
	font-weight: bold;
	color: #333;
	white-space: nowrap;
	font-size: 1rem;
	border: 1px solid #b0b0b0;
}

.data-table td {
	padding: 12px;
	border-bottom: 1px solid #b0b0b0;
	vertical-align: middle;
	font-size: 1rem;
}

.data-table td hr {
	border-color: #b0b0b0;
}

/* セル幅の調整用クラス */
.data-table th.w-80 { width: 80px!important; }
.data-table th.w-120 { width: 120px!important; }
.data-table th.w-130 { width: 130px!important; }
.data-table th.w-160 { width: 160px!important; }
.data-table th.w-200 { width: 200px!important; }
.data-table th.w-300 { width: 300px!important; }

/* 幅指定がないthは残りの幅いっぱいに */
.data-table th:not([class*="w-"]) {
    min-width: 200px;
}

/* テーブル内の画像サイズ調整 */
.data-table img {
	max-width: 100%;
	height: auto;
	vertical-align: middle;
}

/* リスト表示のスタイル */
.update-list {
	list-style: none;
	padding: 0;
}

.update-list li {
	padding: 10px 0;
	border-bottom: 1px solid #b0b0b0;
}

.update-list li:last-child {
	border-bottom: none;
}

.update-list a {
	display: flex;
	align-items: center;
	text-decoration: none;
	color: #333;
}

.update-list .date {
	min-width: 140px;
	color: #333;
}

#hatubun_tab {
	margin: 0;
}

/* タブのスタイル */
.tab-list {
	list-style: none;
	display: flex;
	margin-bottom: 8px !important;
	position: relative;
}

.tab-list::before {
	position: absolute;
	bottom: 0;
	left: 0;
	display: block;
	width: 100%;
	height: 2px;
	background-color: #CCC;
	content: "";
}

.tab-list li {
	margin: 0;
	padding: 16px 0;
}

#hatubun_tab li {
	float: left;
	list-style: none;
	margin: 0;
	padding: 0;
}

.tab-list li a {
	color: #333 !important;
	text-decoration: none !important;
	padding: 8px 30px !important;
	background-image: none !important;
	font-size: 1rem !important;
	height: auto !important;
	text-align: center !important;
	display: block !important;
	text-indent: initial !important;
	width: auto !important;
}
.tab-list li a:hover {
	background-color: #e4f0ff;
}

/* アクティブタブのスタイル */
.htab01_on a,
.htab02_on a,
.stab01_on a,
.stab02_on a,
.stab03_on a,
.stab04_on a {
	color: #333;
	border-bottom: 2px solid #1573b8;
	background-color: #e4f0ff;
	font-weight: bold;
	position: relative;
}

/* データテーブルの表示制御 */
[id$="_data"] {
	display: none;
}

#hatsubun1_data,
#schedule1_data {
	display: table;
}

/* スケジュール専用スタイル */
.schedule-grid {
	width: 100%;
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
	/* iOSでのスムーズスクロール */
	margin-bottom: 20px;
	position: relative;
}

.schedule-grid table {
	width: 100%;
}

.schedule-grid th,
.schedule-grid td {
	width: calc(100% / 7);
	padding: 12px;
	border: 1px solid #b0b0b0;
}

.schedule-grid .weekday {
	background: #f5f7fa;
}

.schedule-grid .sat {
	background: #f5f5ff;
}

.schedule-grid .sun {
	background: #fff5f5;
}

.schedule-grid .today {
	font-weight: bold;
}

table.sch_ichiran {
	min-width: 800px;
	/* テーブルの最小幅を設定 */
	width: 100% !important;
	table-layout: fixed;
	border-collapse: collapse;
}

table.sch_ichiran td {
	font-size: 1rem;
	padding: 8px;
	border: 1px solid #ddd;
	text-align: center;
	min-width: 115px;
	word-break : break-all;
}

/* カレンダー */
.schedule-grid-list {
	width: 100%;
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
	/* iOSでのスムーズスクロール */
	margin-bottom: 20px;
	position: relative;
}

.schedule-grid-list table {
	width: 100%;
}

.schedule-grid-list th,
.schedule-grid-list td {
	padding: 12px;
	border: 1px solid #b0b0b0;
}

.schedule-grid-list .weekday {
	background: #f5f7fa;
}

.schedule-grid-list th {
	background: #f5f7fa;
	text-align: center;
	padding: 8px;
	border: 1px solid #ddd;
}

.schedule-grid-list .sat {
	background: #f5f5ff;
}

.schedule-grid-list .sun {
	background: #fff5f5;
}

.schedule-grid-list .today {
	font-weight: bold;
}

.sch_ichiran_list {
	min-width: 800px;
	/* テーブルの最小幅を設定 */
	width: 100% !important;
	border-collapse: collapse;
}

.sch_ichiran_list td {
	font-size: 1rem;
	padding: 8px;
	border: 1px solid #ddd;
	text-align: center;
	white-space: nowrap;
	/* テキストの折り返しを防ぐ */
	min-width: 80px;
}

.sch_ichiran_list td.ketuji {
	width: 100px;
}

/* 検索リンク */
.search-link {
	display: inline-flex;
	align-items: center;
	margin-left: 10px;
	font-size: .8rem;
	padding: 4px;
	text-decoration: none;
	vertical-align: sub;
	background-color: #FFFFFF;
	border-radius: 25px;
}

.search-link::before {
	content: "";
	background-image: url(../images/common/icon_search.svg);
	display: inline-block;
	width: 24px;
	height: 24px;
	filter: invert(34%) sepia(38%) saturate(1872%) hue-rotate(175deg) brightness(98%) contrast(93%);
}


/* ドキュメントリスト */
.document-title {
	display: flex;
	align-items: center;
	gap: 8px;
}

/* タブ切り替え用 */
[data-tab-content] {
	display: none;
}

[data-tab-content].active {
	display: block;
}

/* ステータスアイコン */
.status-icon {
	display: inline-block;
	width: 16px;
	height: 16px;
	margin-right: 8px;
	vertical-align: middle;
}

/* ユーティリティクラス */
.text-center {
	text-align: center;
}

.text-right {
	text-align: right;
}

.text-left {
	text-align: left;
}

.new-badge {
	display: inline-block;
	padding: 2px 6px;
	background: #e53e3e;
	color: white;
	border-radius: 4px;
	font-size: 12px;
	margin-left: 8px;
}

#panArea {
	width: 100%;
	max-width: 1200px;
	background-color: initial;
}

/* フッターのスタイル */
.footer {
	width: 100%;
	padding: 40px 0 20px;
	margin-top: 60px;
	border-top: 1px solid #eee;
}

.footer-container {
	max-width: 1200px;
	margin: 0 auto;
	padding: 0 20px;
}

/* フッターナビゲーション */
.footer-menu {
	display: flex;
	flex-wrap: wrap;
	gap: 24px;
	list-style: none;
	padding: 0;
	margin: 0;
	justify-content: center;
}

.footer-menu li a {
	color: #333;
	text-decoration: none;
	font-size: 14px;
	transition: color 0.2s;
}

.footer-menu li a:hover {
	color: #333;
}

/* フッター下部 */
.footer-bottom {
	text-align: center;
	padding-top: 20px;
	border-top: 1px solid #eee;
}

.version {
	color: #333;
	font-size: 13px;
	margin: 0 0 8px;
}

.copyright {
	color: #999;
	font-size: 12px;
	margin: 0;
}

.pagetop {
	position: fixed;
	display: flex;
	align-items: center;
	justify-content: center;
	right: 20px;
	bottom: 20px;
	width: 60px;
	height: 60px;
	font-size: 20px;
	font-weight: bold;
	color: #fff;
	background: #1573b8;
	border: none;
	border-radius: 50%;
	cursor: pointer;
	opacity: 0;
	visibility: hidden;
	transition: .3s;
}

.pagetop::after {
	content: "";
	display: inline-block;
	background-image: url(../images/common/icon_arrow_up.svg);
	filter: invert(100%) sepia(100%) saturate(0%) hue-rotate(273deg) brightness(101%) contrast(102%);
	width: 24px;
	height: 24px;
}

.pagetop:hover {
	opacity: .7;
}

/* クラス付与時の指定 */
.is-active {
	opacity: 1;
	visibility: visible;
}

#usernaviAll_box ul {
	max-width: 1200px;
	width: 100%;
	margin: 0 auto;
	list-style: none !important;
	display: flex;
	justify-content: center;
}

#usernaviAll_box li a {
	color: #FFF;
	font-weight: bold;
	text-decoration: none;
	padding: 10px 40px;
	display: block;
}

#usernaviAll_box li a:hover {
	background-color: #348FD2;
	opacity: 1;
}

.search-container {
	background: #fff;
	border-radius: 12px;
	box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
	margin: 24px auto;
	max-width: 1200px;
}

.search-area-open .search-header {
	border-radius: 12px 12px 0 0;
}

.search-header {
	background: #f8fafc;
	border-bottom: 1px solid #e2e8f0;
	border-radius: 12px;
	padding: 4px 24px;
	display: flex;
	align-items: center;
	justify-content: space-between;
	transition: .5s;
}

.search-header h3 {
	font-size: 1.2rem;
}

.search-header h3::before {
	content: "";
	display: inline-block;
	width: 24px;
	height: 24px;
	background-image: url(../images/common/icon_search.svg);
	vertical-align: middle;
	filter: invert(34%) sepia(38%) saturate(1872%) hue-rotate(175deg) brightness(98%) contrast(93%);
}

.form-row {
	display: grid;
	grid-template-columns: 140px 1fr;
	gap: 16px;
	padding: 12px;
	border-bottom: 1px solid #ccc;
}

.form-label {
	color: #41454a;
	font-weight: 700;
	display: flex;
	align-items: center;
}

.form-field {
	text-align: left;
}

.form-input select,
.form-input input,
.form-input textarea {
	width: 100%;
	padding: 4px 12px;
	border: 1px solid #e2e8f0;
	border-radius: 6px;
	font-size: 14px;
	transition: all 0.2s;
}

.form-input select:hover,
.form-input input:hover,
.form-input textarea:hover {
	border-color: #94a3b8;
}

.form-input select:focus,
.form-input input:focus,
.form-input textarea:focus {
	border-color: #3b82f6;
	outline: none;
	box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.1);
}

/* 年月日セレクトボックスのスタイル */
select#s_year, select#e_year {
    min-width: 80px; /* 西暦用の最小幅を設定 */
    width: auto;      /* コンテンツに合わせて自動調整 */
}

select#s_month, select#s_day, select#e_month, select#e_day {
    min-width: 70px;  /* 月日用の最小幅を設定 */
    width: auto;
}

/* フォームコンテナ */
.form-container {
	margin: 0 auto;
}

.field-content {
	text-align: left;
}

/* パスワード入力コンテナ */
.password-container {
	position: relative;
	display: flex;
	align-items: center;
	width: initial;
	max-width: initial;
}

.password-container .textArea {
	width: 100%;
}

/* 入力フィールド */
.input-field {
	width: 100%;
	max-width: 300px;
	padding: 10px;
	border: 1px solid #ddd;
	border-radius: 4px;
	font-size: 16px;
	margin-right: 16px;
}

.input-field:focus {
	border-color: #4A90E2;
	outline: none;
	box-shadow: 0 0 0 2px rgba(74, 144, 226, 0.2);
}

/* 必須マーク */
.required {
	color: #ff4444;
	margin-left: 5px;
	font-size: 0.9em;
	display: block;
	text-align: left;
}

/* エラーメッセージ */
.error-message {
	color: #ff4444;
	font-size: 0.9em;
	margin-bottom: 5px;
}

.suc-message {
	color: #07863d;
	font-size: 0.9em;
	margin-bottom: 5px;
}

/* ヘルプテキスト */
.help-text {
	color: #FF0000;
	font-size: 0.9em;
	margin-top: 5px;
}

#contentsBox {
	background-color: transparent;
	border: none;
	width: 100%;
	font-size: 1rem;
}

.message01 {
	width: 100%;
	height: auto;
	background-image: none;
	color: #139428;
	font-size: 16px;
	font-weight: normal;
	padding: 10px 15px;
	margin-left: 0;
	text-align: left;
	border: 1px solid #139428;
	background-color: #eefcf0;
	border-radius: 4px;
}


/* 日付範囲選択のスタイル */
.date-range {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px;
}

.date-field {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 4px;
}

.date-select {
	padding: 6px;
	border: 1px solid #e2e8f0;
	border-radius: 4px;
	font-size: 14px;
	width: auto;
}

.date-separator {
	margin: 0 8px;
	color: #64748b;
}

.calendar-icon {
	position: relative;
	width: 24px;
	height: 24px;
	display: inline-flex;
	align-items: center;
	margin-left: 4px;
}

.calendar-icon::before {
	content: "";
	display: block;
	width: 20px;
	height: 20px;
}

.calendar-icon:hover::before {
	opacity: 1;
}

.calendar-icon input {
	position: absolute;
	top: 0;
	left: 0;
	opacity: 0;
	width: 100%;
	height: 100%;
	cursor: pointer;
}

/* datepickerのボタンスタイル調整 */
.ui-datepicker-trigger {
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	width: 20px;
	height: 20px;
	padding: 0;
	border: none;
	background: transparent;
	cursor: pointer;
}

.search-buttons {
	display: flex;
	justify-content: center;
	gap: 12px;
	padding: 24px;
	border-radius: 0 0 12px 12px;
}

.search-btn {
	padding: 8px 24px;
	font-weight: 700;
	transition: all 0.2s;
	text-decoration: none;
	border: none;
	display: flex;
	align-items: center;
}

.search-btn.primary {
	background: #1573b8;
	color: white;
}

.search-btn.secondary {
	background: #ccc;
	color: #41454a;
}

.search-btn.orange {
	background: #ea8706;
	color: white;
}

.search-btn.green {
	background: #139428;
	color: white;
}

.search-toggle {
	display: flex;
	justify-content: center;
}

.toggle-btn {
	background: none;
	border: none;
	padding: 6px;
	cursor: pointer;
	width: 32px;
	height: 32px;
	border-radius: 50%;
	position: relative;
	transition: background-color 0.2s;
}

.toggle-btn:hover {
	background-color: rgba(0, 0, 0, 0.05);
}

.toggle-icon {
	position: relative;
	display: block;
	width: 20px;
	height: 20px;
}

.toggle-icon::before,
.toggle-icon::after {
	content: '';
	position: absolute;
	top: 50%;
	left: 50%;
	width: 20px;
	height: 2px;
	background-color: #64748b;
	transition: transform 0.3s ease;
}

.toggle-icon::before {
	transform: translate(-50%, -50%) rotate(90deg);
}

.toggle-icon::after {
	transform: translate(-50%, -50%);
}

/* 開いているときの状態 */
.search-area-open .toggle-icon::before {
	transform: translate(-50%, -50%) rotate(45deg);
}

.search-area-open .toggle-icon::after {
	transform: translate(-50%, -50%) rotate(-45deg);
}

.sort-container {
    margin-bottom: 20px;
	padding: 0 1rem;
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 0.75rem;
}

.sort-container span {
    color: #333;
    font-weight: bold;
}

.sort-container select {
    padding: 8px;
    border: 1px solid #dee2e6;
    border-radius: 4px;
    margin-right: 10px;
    min-width: 150px;
}

.sort-container select:hover {
    border-color: #4a90e2;
}

#panBox {
	margin-top: 0;
	margin-bottom: 24px;
	font-size: 14px;
}

/* 各種文書パンくずリスト */
.breadCrumb {
	border: none;
	width: 100%;
	height: auto !important;
	margin-bottom: 8px;
}

.breadCrumb ul {
	display: flex;
	flex-wrap: wrap;
	list-style: none;
	padding: 0;
	margin: 0;
	width: 100% !important;
}

.breadCrumb ul li {
	font-size: .9rem;
}

.breadCrumb.list ul li {
	font-size: 1rem !important;
	line-height: 1.5 !important;
	background-image: none;
	position: relative;
	padding-left: 12px;
	color: #333;
}

.breadCrumb.list ul li::before {
	content: "";
	display: inline-block;
	background-image: url(../images/Chevron.gif);
	background-repeat: no-repeat;
	width: 8px;
	height: 21px;
	position: absolute;
	left: 0;
}

.breadCrumb.list ul li.first {
	display: none;
}

.document-container {
	display: flex;
	gap: 20px;
}

.treeview-wrap {
	display: flex;
	flex-direction: column;
}

/* jqueryFiletree上書き */
UL.jqueryFileTree {
	font-family: "游ゴシック体", YuGothic, "游ゴシック", "Yu Gothic", "メイリオ", "Hiragino Kaku Gothic ProN", "Hiragino Sans", sans-serif !important;
	font-size: .9rem !important;
	line-height: 1.5 !important;
}


#contentsArea2 {
	border: none;
	width: 100%;
}

.view_folder2 {
	height: auto;
	font-size: 1.2rem;
}

#MainTbl {
	width: 100%;
}

#view_folderHead {
	margin-top: 0px;
	margin-bottom: 0px;
	margin-left: 4px;
	text-align: left;
	width: 100%;
}

#view_folder_title {
	padding: 10px;
	text-align: center;
	background: #f5f5f5;
	border-radius: 4px;
}

#view_file {
	margin: 0;
}

#view_file table {
	text-align: left;
	width: 100%;
}

#view_file th {
	background: #f5f7fa;
	padding: 8px;
	font-weight: bold;
	color: #333;
	white-space: nowrap;
	font-size: 1rem;
	border-bottom: 1px solid #b0b0b0;
}

#view_file td {
	font-size: 1rem;
	line-height: 1.5;
	border-bottom: 1px solid #ddd;
	vertical-align: middle;
}

#view_file input[type="checkbox"] {
	-webkit-appearance: auto;
	appearance: auto;
}

#qrArea {
	width: initial;
	height: initial;
	border: none;
	background-color: transparent;
}

#qrArea .txt {
	float: initial;
	width: 100%;
}

.mailto_img {
	float: initial;
}

.link-item {
	border-bottom: 1px solid #eee;
}

.link-item:last-child {
	border-bottom: none;
}

.link-item a {
	display: block;
	padding: 1rem;
	color: #333;
	text-decoration: none;
	transition: background-color 0.2s ease;
}

.link-item a:hover {
	background-color: #f5f5f5;
}

.link-content {
	display: flex;
	align-items: center;
	justify-content: space-between;
}

.link-title {
	font-size: 1rem;
	line-height: 1.5;
}

.link-icon {
	margin-left: 1rem;
	flex-shrink: 0;
}

.link-icon::before {
	content: "";
	display: inline-block;
	width: 20px;
	height: 20px;
	filter: invert(34%) sepia(38%) saturate(1872%) hue-rotate(175deg) brightness(98%) contrast(93%);
	background-image: url(../images/common/icon_open.svg);
	background-size: contain;
}

.frozen-table {
	width: 100% !important;
	min-width: 800px;
	border-collapse: collapse;
	border: solid 1px #CCCCCC;
	background-color: #FFFFFF;
	table-layout: auto;
	margin-top: 0px;
	margin-bottom: 1px;
	font-size: 85%;
	padding: 5px;
}

.frozen-table th {
	background: #e9ecef;
	padding: 8px;
	text-align: left;
	font-weight: bold;
	color: #333;
	white-space: nowrap;
	font-size: 1rem;
	border: 1px solid #b0b0b0;
}

.frozen-table td {
	padding: 12px;
	border: 1px solid #CCCCCC;
	vertical-align: middle;
	font-size: 0.9rem;
}

.frozen-table td hr {
	border-color: #b0b0b0;
}


.meeting-title {
	display: flex;
	align-items: center;
	gap: 0.5rem;
}

.frozen-title {
	margin: 2rem 0 1rem;
	color: #495057;
	font-size: 1.2rem;
	font-weight: bold;
}

p.notice {
	font-size: .9em;
	padding-top: 40px;
}

#p_title_none {
	width: initial;
	height: initial;
	background-image: none;
}

.search-box {
	display: flex;
	flex-direction: column;
	gap: .5rem;
}

.current-date {
	font-size: 1.5rem;
	font-weight: 600;
	color: #2c3e50;
}

.control-wrapper {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1.2rem;
	flex-wrap: wrap;
}

.control-wrapper-foot {
	display: flex;
	justify-content: flex-end;
}

.search-controls {
	display: flex;
	align-items: center;
	padding: 0.5rem 1rem;
	min-width: 300px;
}

.date-title {
	font-weight: bold;
}

.date-selector {
	display: flex;
	align-items: center;
	gap: 0.75rem;
}

.btn-current {
	padding: 0.5rem 1rem;
	background-color: #3498db;
	color: white;
	border: none;
	border-radius: 4px;
	cursor: pointer;
	transition: background-color 0.2s;
}

.btn-current:hover {
	background-color: #2980b9;
}

.month-select {
	padding: 0.5rem;
	border: 1px solid #dee2e6;
	border-radius: 4px;
	font-size: 0.875rem;
	min-width: 150px;
}

.action-buttons {
	display: flex;
	align-items: center;
	gap: 0.75rem;
}

.action-buttons a {
	display: flex;
	align-items: center;
}

.nav-button,
.print-button,
.dl-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 0.5rem 1rem;
	border-radius: 4px;
	text-decoration: none;
	transition: all 0.2s;
	min-height: 37px;
}

.nav-button {
	background-color: #f8f9fa;
	color: #495057;
	min-width: 128px;
}

.nav-button:hover {
	background-color: #e9ecef;
}

.nav-button.prev::before,
.nav-button.next::after {
	content: "";
	display: inline-block;
	width: 24px;
	height: 24px;
	filter: invert(34%) sepia(38%) saturate(1872%) hue-rotate(175deg) brightness(98%) contrast(93%);
}

.nav-button.prev::before {
	background-image: url(../images/common/icon_arrow_prev.svg);
	margin-right: 10px;
}

.nav-button.next::after {
	background-image: url(../images/common/icon_arrow_next.svg);
	margin-left: 10px;
}

.print-button {
	background-color: #139428;
	color: white;
	min-width: 70px;
}

.print-button:hover {
	opacity: .7;
	color: #FFF;
}

.print-button:visited {
	color: #fff;
}

.print-button::before {
	content: "";
	display: inline-block;
	background-image: url(../images/common/icon_print.svg);
	width: 24px;
	height: 24px;
	margin-right: 10px;
	filter: invert(92%) sepia(100%) saturate(0%) hue-rotate(202deg) brightness(106%) contrast(106%);
}

.dl-button {
	background-color: #139428;
	color: white;
	min-width: 70px;
}

.dl-button:hover {
	opacity: .7;
	color: #FFF;
}

.dl-button:visited {
	color: #fff;
}

.dl-button::before {
	content: "";
	display: inline-block;
	background-image: url(../images/common/icon_dl.svg);
	width: 24px;
	height: 24px;
	margin-right: 10px;
	filter: invert(92%) sepia(100%) saturate(0%) hue-rotate(202deg) brightness(106%) contrast(106%);
}

.hib-text {
	color: #333;
}

/* スクロール案内のスタイル */
.scroll-notice {
	display: none;
	align-items: center;
	gap: 8px;
	padding: 8px 12px;
	border-radius: 4px;
	font-size: .9rem;
	color: #666;
}

.scroll-notice::before {
	content: "";
	display: inline-block;
	width: 24px;
	height: 24px;
	background: url('../images/common/icon_swipe.svg') no-repeat center;
	background-size: contain;
	filter: invert(43%) sepia(6%) saturate(7%) hue-rotate(28deg) brightness(95%) contrast(87%);
}

.notice {
	margin: 0 auto;
	margin-bottom: 0px;
	margin-bottom: 20px;
	width: 100%;
	padding: 32px 16px 16px 16px;
	margin-bottom: 15px;
	background-color: #D8E7F8;
	border: none;
	text-align: left;
	background-image: url(../images/icon_login_notice.gif);
	background-repeat: no-repeat;
	background-position: 16px 16px;
}

.icon {
	margin-left: 0;
	margin-right: 0;
}

#TreeView a {
	overflow: initial!important;
}

.sort {
	margin:0 auto;
	text-align: left;
	width: auto;
	margin-top: 0;
	margin-bottom: 0;
}

@media screen and (max-width: 900px) {
	.loginbox label {
		align-items: flex-start;
		flex-direction: column;
		margin: 0 auto 20px;
		max-width: 260px;
	}

	.info-inner {
		flex-direction: column;
	}

	.container {
		padding: 16px;
	}

	.section-header {
		padding: 12px 16px;
	}

	.section-content {
		padding: 16px;
	}

	.tab-list {
		gap: 4px;
	}

	.data-table {
		font-size: 13px;
	}

	.data-table th,
	.data-table td {
		padding: 8px;
	}
}


@media screen and (min-width: 769px) {

	.hamburger,
	.sp-nav {
		display: none;
	}
}

@media screen and (max-width: 768px) {
	#header {
		box-shadow: 0px 1px 5px rgba(0, 0, 0, 0.3);
	}

	#headerMenu {
		padding: 10px;
	}

	#headerMenu ul {
		gap: 10px;
	}

	#headerMenu a {
		font-size: 14px;
		padding: 5px;
	}

	#headerArea {
		position: relative;
	}

	#headerright {
		display: none;
	}

	.hamburger {
		position: relative;
		top: 10px;
		right: 10px;
		z-index: 1000;
		width: 44px;
		height: 44px;
		background: transparent;
		border: none;
		cursor: pointer;
		padding: 0;
	}

	.hamburger span {
		display: block;
		width: 28px;
		height: 2px;
		margin: 8px auto;
		background: #333;
		transition: all 0.3s;
	}

	.hamburger.active span:nth-child(1) {
		transform: translateY(10px) rotate(45deg);
		background-color: #FFF;
	}

	.hamburger.active span:nth-child(2) {
		opacity: 0;
	}

	.hamburger.active span:nth-child(3) {
		transform: translateY(-10px) rotate(-45deg);
		background-color: #FFF;
	}

	#usernaviAll_box {
		position: fixed;
		top: 0;
		right: -100%;
		width: 50%;
		height: 100vh;
		background: #1573b8;
		transition: all 0.3s ease;
		z-index: 999;
		padding-top: 60px;
	}

	#usernaviAll_box.active {
		right: 0;
	}

	#usernaviAll_box ul {
		flex-direction: column;
		width: 100%;
		padding: 0;
	}

	#usernaviAll_box li {
		width: 100%;
		border-bottom: 1px solid rgba(255, 255, 255, 0.1);
	}

	#usernaviAll_box li a {
		display: block;
		padding: 15px 20px;
	}

	table.ichiran {
		min-width: 780px!important;
	}

	.sch_ichiran td,
	.ichiran td {
		font-size: 14px;
		/* 文字サイズを少し小さく */
	}

	.footer {
		padding: 30px 0 15px;
		margin-top: 40px;
	}

	.footer-menu {
		gap: 16px;
		padding: 0 16px;
	}

	.footer-menu li a {
		font-size: 13px;
	}

	.footer-bottom {
		padding-top: 15px;
	}

	.breadCrumb {
		width: auto !important;
		margin-bottom: 0;
	}

	.form-row {
		display: flex;
		flex-direction: column;
		gap: 8px;
	}

	.form-label {
		flex: none;
		margin-bottom: 0;
	}

	.form-input {
		margin-bottom: 10px;
	}

	.form-field {
		flex: none;
	}

	.control-wrapper {
		flex-direction: column;
		align-items: stretch;
	}

	.search-controls {
		background: none;
		padding: 0;
	}

	.date-selector {
		flex-direction: column;
		width: 100%;
	}

	.btn-current,
	.month-select {
		width: 100%;
	}

	.action-buttons {
		flex-wrap: wrap;
		justify-content: center;
		width: 100%;
		margin-bottom: 10px;
	}

	.nav-button,
	.print-button,
	.dl-button {
		width: 100%;
	}

	.tab-list li a {
		padding: 8px 10px!important;
	}

	.document-container {
		flex-direction: column;
	}

	.treeview-wrap {
		width: 100%;
		max-height: 300px;
		overflow-y: auto;
		margin-bottom: 15px;
	}

	#TreeView {
		width: 100% !important;
		height: auto !important;
		min-height: 200px;
	}

	/* ドラッグバーを非表示 */
	#h_bar,
	.treeinfo {
		display: none;
	}

	#MainTbl {
		width: 100% !important;
		margin-left: 0;
	}

	/* コントロール部分 */
	#view_fileArea .control-wrapper {
		flex-direction: column;
		gap: 10px;
	}

	#view_fileArea .search-controls,
	#view_fileArea .action-buttons {
		width: 100%;
		justify-content: center;
		text-align: center;
	}

	/* 表示切り替えボタン */
	#view_fileArea .action-buttons {
		padding: 10px 0;
		border-top: 1px solid #eee;
	}

	.table-responsive {
		position: relative;
	}

	.scroll-notice {
		display: flex;
	}

	#view_file table {
		min-width: 800px;
	}

	.sort-container {
		flex-direction: column;
		padding: 0;
	}
	
	.sort-container select {
		width: 100%;
		margin-right: 0;
	}
}