/* ================= 画面表示（screen） ================= */
:root {
  --qa-gap: 12px;
}

/* 親レイアウトをflexで固定、従来指定を無効化 */
.test_q_a_area {
  display: flex !important;
  gap: var(--qa-gap) !important;
  align-items: flex-start !important;
  width: 100% !important;
  box-sizing: border-box !important;
}

/* 直下の子を“セル化”し、従来のfloat/table影響を無効化 */
.test_q_a_area > * {
  display: block !important;
  float: none !important;
  width: auto !important;
  max-width: none !important;
  margin: 0 !important;
  box-sizing: border-box !important;
}

/* 1) 直下に .test_q_area / .answer_col / .test_a_area がある「通常ケース」 */
.test_q_a_area > .test_q_area { flex: 0 0 75% !important; max-width: 75% !important; }
.test_q_a_area > .answer_col,
.test_q_a_area > .test_a_area { flex: 0 0 25% !important; max-width: 25% !important; }

/* 2) ラッパーが挟まっている「入れ子ケース」：:has() で拾って割当 */
.test_q_a_area > *:has(.test_q_area) { flex: 0 0 75% !important; max-width: 75% !important; }
.test_q_a_area > *:has(.answer_col),
.test_q_a_area > *:has(.test_a_area) { flex: 0 0 25% !important; max-width: 25% !important; }

/* 内部要素の固定幅やtable系の影響を緩和 */
.test_q_a_area :is(.test_q_area, .answer_col, .test_a_area) {
  max-width: 100% !important;
}
.test_q_a_area table {
  width: 100% !important;
  table-layout: auto !important;
}
/* -------------------------------------------
   reset
--------------------------------------------- */
html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
b, u, i, center,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, embed,
figure, figcaption, footer, header, hgroup,
menu, nav, output, ruby, section, summary,
time, mark, audio, video {
  margin: 0;
  padding: 0;
  border: 0;
  font-size: 100%;
  font: inherit;
  vertical-align: baseline;
}

article, aside, details, figcaption, figure,
footer, header, hgroup, menu, nav, section {
  display: block;
}

body {
  color: #333333;
  font-family: "Noto Sans JP", Inter, system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, "Apple Color Emoji", "Segoe UI Emoji", sans-serif;
}

ol, ul {
  list-style: none;
}

blockquote, q {
  quotes: none;
}

blockquote:before, blockquote:after,
q:before, q:after {
  content: '';
  content: none;
}

table {
  border-collapse: collapse;
  border-spacing: 0;
}
td, th {
	vertical-align: middle;
}

p, div {
  word-break: break-all;
}

a, button {
	text-decoration: none;
  transition: .2s;
/*  min-width: 200px;
  padding: 4px;
  margin: 2px;
  border-radius: 30px;*/
  display: inline-block;
}
a:hover, button:hover {
  opacity: .7;
}

.a_button {
	border: 1px solid #59B230;
	border-radius: 30px;
	padding: 4px 25px 3px;
	color: #fff;
}

button {
    text-decoration: none;
    transition: .2s;
    min-width: 200px;
    padding: 4px;
    margin: 2px;
    border-radius: 30px;
    box-sizing: content-box;
    display: inline-block;
}



button, .a_button {
	text-align: center;
	font-size: 12px;
}
button.large, .a_button.large {
    margin: 10px 10px 20px;
    padding: 7px; /* updated */
    border: 1px solid #59B230;
    border-radius: 30px;
    font-size: var(--16px); /* updated */
    letter-spacing: 5px;
    min-width: 160px; /* updated */
    display: inline-block;
}

button.middle.large, .a_button.middle.large {
	min-width: 50px;
  border-radius: 0;
  font-size: 13px;
  padding: 8px 10px;
}


button.detail-mini, button.detail-mini, button.settings-mini, button.pass-mini,
.a_button.delete-mini, .a_button.delete-mini, .a_button.add-min {
	min-width: 6em;
	width: auto;
	border: 1px solid #59B230;
	padding: 5px 10px;
}
button.back-mini {
	min-width: 6em;
	width: auto;
	background: #fbfbfb;
	border: 1px solid #59B230;
	color: #59B230;
	padding: 5px 10px;
}
button.register-mini {
	min-width: 6em;
	width: auto;
	background: #30b2ad;
	border: 1px solid #30b2ad;
	color: #fff;
	padding: 5px 10px;
}
/* 小サイズの削除ボタン（赤） */
button.delete-mini {
	min-width: 6em;
	width: auto;
	background: #ff5757;
	border: 1px solid #ff5757;
	color: #fff;
	padding: 5px 10px;
}

/* ------------------------------
   Pagination (page_area)
-------------------------------- */
.page_area{
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	align-items: center;
	gap: 8px;
	margin: 20px 0 10px;
	font-size: 13px;
}
.page_area a,
.page_area > span{
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 36px;
	height: 30px;
	padding: 0 10px;
	border: 1px solid var(--green);
	border-radius: 6px;
	background: #fff;
	color: var(--green);
	text-decoration: none;
}
.page_area a:hover{
	background: var(--green);
	color: #fff;
}
/* current page (rendered as span.f_bold) */
.page_area span.f_bold{
	background: var(--green);
	color: #fff;
	border-color: var(--green);
	font-weight: 600;
}
/* counter at the beginning: 全：xxx件 */
.page_area > span:first-child{
	min-width: auto;
	padding: 0 14px;
	border-color: #c7c7c7;
	color: #666;
}

/* 次へ（最後のリンク）をアイコン化 */
.page_area a:last-child{
    border: none;
    background: var(--green);
    padding: 0;
    min-width: auto;
    width: 34px;
    height: 34px;
    border-radius: 50%;
    color: #fff;
    font-size: 0; /* テキスト非表示 */
    display: inline-flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 0 0 1px var(--green) inset, 0 2px 4px rgba(0,0,0,.08);
}
.page_area a:last-child::before{
    content: "\f0da"; /* fa-caret-right */
    font-family: "Font Awesome 6 Free";
    font-weight: 900;
    font-size: 20px;
    color: #fff;
}
.page_area a:last-child:hover{ background:#2e8d2a; }

/* 明示的な前後ボタン（位置に依存せず同じ見た目に） */
.page_area a.pager-prev,
.page_area a.pager-next{
    border: none;
    background: var(--green);
    padding: 0;
    min-width: auto;
    width: 34px;
    height: 34px;
    border-radius: 50%;
    color: #fff;
    font-size: 0; /* テキスト非表示 */
    display: inline-flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 0 0 1px var(--green) inset, 0 2px 4px rgba(0,0,0,.08);
}
.page_area a.pager-prev::before{
    content: "\f0d9"; /* fa-caret-left */
    font-family: "Font Awesome 6 Free";
    font-weight: 900;
    font-size: 20px;
    color: #fff;
}
.page_area a.pager-next::before{
    content: "\f0da"; /* fa-caret-right */
    font-family: "Font Awesome 6 Free";
    font-weight: 900;
    font-size: 20px;
    color: #fff;
}
.page_area a.pager-prev:hover,
.page_area a.pager-next:hover{ background:#2e8d2a; }

/* ------------------------------
   TinyMCE toolbar/buttons reset
   Avoid global button styles leaking into editor
-------------------------------- */
.tox button,
.tox .tox-toolbar__primary button,
.tox .tox-toolbar__overflow button,
.tox .tox-statusbar__path-item {
    min-width: auto !important;
    padding: 0 !important;
    margin: 0 !important;
    border-radius: 0 !important;
    box-sizing: border-box !important;
    display: inline-flex !important;
}
.tox .tox-toolbar__primary button,
.tox .tox-toolbar__overflow button {
    background: transparent !important;
}

button.large.search, button.large.add, button.large.create, button.large.download,
button.large.detail, button.detail-mini, button.delete, button.detail-mini, button.settings-mini, button.pass-mini, 
.a_button.large.add, .a_button.large.serch, .a_button.large.register, .a_button.large.settings, .a_button.delete-mini, .a_button.delete-mini, .a_button.add-min {
	background: #59B230;
	border: 1px solid #59B230;
	color: #fff;
}
.a_button.large.register, .a_button.large.settings {
    border: 1px solid #59B230;
}

button.large.back {
	background: #fbfbfb;
  color: #59B230;
}
button.large.confirm {
    background: var(--green);
    color: #fff;
}
button.large.search {
}
button.large.detail {
}
button.delete {
	background: #ff5757;
	color: #fff;
	border: 1px solid #ff5757;
}

input[type="text"], select, input[type="password" i] {
    border-radius: 3px;
    border: 1px solid #c7c7c7;
    font-size: 13px;
    box-sizing: border-box;
    margin: 5px 10px;
    padding: 6px 10px;
}
/* 全フォーム要素にフォントサイズ13pxを統一 */
input,
select{
    font-size: 13px !important;
}
select {
	min-width: 350px;
}

input[type="button"].large {
    margin: 10px;
    padding: 10px;
    border: none;
    border-radius: 4px;
    font-size: var(--15px);
    width: 92%;
    background: #59b230;
    color: #fff;
}

input::placeholder {
  color: #B5B5B5;
  font-size: 12px;
}

textarea {
    width: 98%;
    display: block;
    field-sizing: content;
    padding: 10px;
    line-height: 1.5;
}

pre {
  white-space: pre-wrap;
}

strong {
    font-weight:bold;
}

.clearfix {
  display: block;
}
.clearfix::before {
  content: "";
  display: block;
  clear: both;
}
.clearfix::after {
  content: "";
  display: block;
  clear: both;
}
/* --resetここまで-- */

/* -------------------------------------------
   フォントサイズ大枠
--------------------------------------------- */
:root {
	--12px: 0.75rem;
	--14px: 0.875rem;
	--15px: 0.9375rem;
	--16px: 1rem;
	--17px: 1.0625rem;
	--18px: 1.125rem;
	--19px: 1.1875rem;
	--20px: 1.25rem;
	--21px: 1.3125rem;
	--22px: 1.375rem;
	--23px: 1.4375rem;
	--24px: 1.5rem;
	--28px: 1.75rem;
	--30px: 1.875rem;
	--32px: 2rem;
}
h1, .h1 {
	font-size: var(--16px);
}
h2, .h2 {
	font-size: var(--20px);
}
h3, .h3 {
	font-size: var(--18px);
}
h1, .h1, h2, .h2, h3, .h3, h4, .h4, h5, .h5, h6, .h6 {
    font-weight: 600;
    color: #6d6d6d;
    line-height: 1.3;
    padding: 10px 0px 20px;
    text-align: left;
}

.h1.AccountName, .page_title, .page_title h2, .page_title {
	text-align: left;
	font-size: var(--16px);
	font-weight: 600;
  color: #6d6d6d;
	margin: 0 0 10px;
  padding: 30px 10px 10px;
}

p, .p {
	font-size: var(--15px);
}

/* -------------------------------------------
   共通
--------------------------------------------- */
:root {
	--border-color: #ddd;
	--green: #59b230;
	--pale-green: #afe749;
	--text-sub-color: #444;
}


/* -------------------------------------------
   レイアウト・優先順位
--------------------------------------------- */
/* -- 大枠 -- */
.col_wrap {
	display: flex;
	flex-wrap: wrap;
	align-content: flex-start;
	height: auto;
}
.col_wrap.four-per-row {
	flex-wrap: wrap;
}
.col_wrap.four-per-row .SelectButton {
	flex: 0 0 calc(25% - 10px) !important;
	max-width: calc(25% - 10px) !important;
	width: calc(25% - 10px) !important;
	margin: 0 5px 30px !important;
	box-sizing: border-box !important;
}

/* より具体的なセレクタで強制適用 */
.SelectButton-Wrap.col_wrap.four-per-row .SelectButton.col4 {
	flex: 0 0 calc(25% - 10px) !important;
	max-width: calc(25% - 10px) !important;
	width: calc(25% - 10px) !important;
	margin: 0 5px 30px !important;
	box-sizing: border-box !important;
}

/* 学校DBページのテーブル幅調整 */
body:has(.page_title:contains("学校DB")) table.tbl_result {
	width: 100% !important;
	max-width: 100% !important;
	table-layout: fixed !important;
	overflow: hidden !important;
	box-sizing: border-box !important;
}

body:has(.page_title:contains("学校DB")) table.tbl_result th,
body:has(.page_title:contains("学校DB")) table.tbl_result td {
	overflow: hidden !important;
	text-overflow: ellipsis !important;
	white-space: nowrap !important;
	box-sizing: border-box !important;
}

body:has(.page_title:contains("学校DB")) table.tbl_result td select,
body:has(.page_title:contains("学校DB")) table.tbl_result td input {
	max-width: 100% !important;
	width: 100% !important;
	box-sizing: border-box !important;
}

/* カテゴリ設定ページ専用のテーブル調整 */
.category-setting-table {
	width: 100% !important;
	max-width: 100% !important;
	table-layout: fixed !important;
	overflow: hidden !important;
	box-sizing: border-box !important;
}

.category-setting-table th,
.category-setting-table td {
	overflow: hidden !important;
	text-overflow: ellipsis !important;
	white-space: nowrap !important;
	box-sizing: border-box !important;
}

.category-setting-table td select,
.category-setting-table td input {
	max-width: 100% !important;
	width: 100% !important;
	min-width: auto !important;
	box-sizing: border-box !important;
}

/* カテゴリ設定ページの列幅調整 */
.category-setting-table th:nth-child(1),
.category-setting-table td:nth-child(1) {
	width: 14% !important;
	max-width: 14% !important;
}

.category-setting-table th:nth-child(2),
.category-setting-table td:nth-child(2) {
	width: 14% !important;
	max-width: 14% !important;
}

.category-setting-table th:nth-child(3),
.category-setting-table td:nth-child(3) {
	width: 18% !important;
	max-width: 18% !important;
}

.category-setting-table th:nth-child(4),
.category-setting-table td:nth-child(4) {
	width: 18% !important;
	max-width: 18% !important;
}

.category-setting-table th:nth-child(5),
.category-setting-table td:nth-child(5) {
	width: 18% !important;
	max-width: 18% !important;
}

.category-setting-table th:nth-child(6),
.category-setting-table td:nth-child(6) {
	width: 80px !important;
	max-width: 80px !important;
}

/* カテゴリ設定ページのselect要素のmin-widthを無効化 */
.category-setting-table select {
	min-width: auto !important;
	width: 100% !important;
	max-width: 100% !important;
}

/* カテゴリ設定ページのテーブルを強制的に.content内に収める */
.content .category-setting-table {
	width: 100% !important;
	max-width: 100% !important;
	table-layout: fixed !important;
	overflow: hidden !important;
	box-sizing: border-box !important;
}

.content .category-setting-table th,
.content .category-setting-table td {
	overflow: hidden !important;
	text-overflow: ellipsis !important;
	white-space: nowrap !important;
	box-sizing: border-box !important;
}

.content .category-setting-table select {
	min-width: auto !important;
	width: 100% !important;
	max-width: 100% !important;
	box-sizing: border-box !important;
}

/* カテゴリ設定ページの検索フォームのinput幅調整 */
.content .form_area table.tbl_input input[type="text"] {
	width: 100% !important;
	max-width: 100% !important;
	box-sizing: border-box !important;
	padding: 6px 8px !important;
}

/* カテゴリ設定ページの検索フォームのselectとinputを同じ幅に統一 */
.content .form_area table.tbl_input select,
.content .form_area table.tbl_input input[type="text"] {
	width: calc(100% - 16px) !important;
	max-width: calc(100% - 16px) !important;
	box-sizing: border-box !important;
	padding: 6px 8px !important;
	margin: 0 8px !important;
}

/* カテゴリ設定ページの検索フォームのth要素にボーダーを追加 */
.content .form_area table.tbl_input th {
	border-bottom: 1px solid #ddd !important;
	border-right: 1px solid #ddd !important;
}
/* -- main画面のcol -- */
.col2, .col3, .col4, col5 {
	vertical-align: top;
	box-sizing: border-box;
}
.col2 {
	width: 50%;
}
.col3 {
	width: 32.9%;
}
.col4 {
	width: 25%;
}
.col5 {
	width: 20%;
}
.col4x3 {
	width: 75%;
}

/* --大枠ここまで-- */

/* --優先順位-- */
.P-low {
	background: #dbdbdb;
}
.P-1{
}
.P-2{
}
.P-3{
}
/* --優先順位ここまで-- */

body{
	display: flex;
	min-height: 100vh;
	font-size: 15px;
	background: #F8FAFD
}
#loginpage {
    /*background: url(../images/login_bg.jpg);
    background-size: cover;*/
    background: #fff;
    color: #666;
}
.loginpage {
	margin: auto auto;
	text-align: center;
    padding: 100px 80px 50px;
    border: 1px solid #c7c7c7;
    border-radius: 10px;
    box-shadow: 6px 6px 10px 0px rgba(146, 146, 146, 0.3);
}
.loginpage img {
    margin: 0em auto 3em;
    padding: 0;
    max-width: 300px;
}
.loginpage .pagettl {
    font-size: var(--24px);
    margin: 0em auto 0.5em;
}
.loginpage p {
	margin-bottom: .5em;
}


/* -------------------------------------------
   サイドナビ
--------------------------------------------- */
.leftNavigation{
    width: 250px;
    text-align: left;
    /*background-color: #f9f9f9;*/
    color: #333;
    padding: 0;
    height: 100vh;
    /*border-right: 1px solid #e7e7e7;*/
}
.header{
	display: flex;
	font-size: 20px;
	font-weight: bold;
}
header {
	/*position: relative;*/
	position: fixed;
}
header p{
	font-size: var(--18px);
	padding: 8px;
	color: #333;
}
i {
    margin-right: 0.8rem;
}
header i {
    margin-left: 10px;
}
header.leftNavigation a {
	color: #444;
}

.logo {
    width: auto;
    height: 60px;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-left: 0;
    padding: 10px;
    background: #F8FAFD;
    /*border-right: 1px solid #fff;
    border-bottom: 1px solid var(--border-color);*/
    font-size: var(--12px);
    text-align: left;

}
.logo a:hover {
	opacity: 1;
}
.logo img {
    width: 200px;
    display: block;
    margin: 0 auto;
}
.navigation {
	padding: 30px 0;
}
.navigation li a{
    padding: 10px 8px 12px 50px;
    display: block;
    position: relative;
    min-width: auto;
    border-radius: 0 999px 999px 0; /* 右端の丸みを常時適用してフリッカ回避 */
    margin: 0 15px 0 0; /* 左は画面端まで、右のみ隙間 */
    transition: background-color .15s ease, color .15s ease;
}
.navigation li a:hover {
    display: block;
    background: #59b230; /* 既存のグリーン */
    opacity: 1;
    color: #fff;
}

/* キーボード操作時も同様に */
.navigation li a:focus-visible{
    outline: none;
    background: #59b230;
    color: #fff;
}

/* 選択状態（現在ページ）想定のスタイル。必要に応じてクラスを付与してください */
.navigation li.current a,
.navigation li a[aria-current="page"],
.navigation li a.is-active{
    background: #E8F0FE; /* Gmailの選択色に近い淡いブルー */
    color: #1a73e8;
    font-weight: 600;
}
.navigation li a:before{/*ナビゲーションメニュー共通の設定*/
    font-family: FontAwesome;
    font-size: 18px;
    display: inline-block;
    position: absolute;
    left: 18px;
    bottom: 15px;
    padding-right: 10px;
    background-position: left 16px center;
}

.AdminQuestionApproval> a:before{
	content: '\f058';
}
.AdminQuestionCreate> a:before,
.JukuTestCreate> a:before,
.JukuCreateQuestions> a:before{
	content: '\e494';
}
.AdminQuestionList> a:before,
.JukuQuestionsList> a:before{
	content: '\f03a';
}
.AdminCreateQuestions> a:before{
	content: '\e494';
}
.AdminQuestionsList> a:before{
	content: '\f03a';
}
.AdminCategory> a:before{
	content: '\f802';
}
.AdminOwnerRegister> a:before{
	content: '\f007';
}
.AdminJukuCreate> a:before {
	content: '\e4da';
}
.AdminJukuRegister> a:before{
	content: '\f51c';
}
.AdminJukuList> a:before{
	content: '\f1ad';
}
.AdminAdminList> a:before,
.JukuStaff> a:before{
	content: '\f0c0';
}
.AdminStudentList> a:before,
.JukuStudentList> a:before{
	content: '\e4e1';
}
.AdminSchoolList> a:before{
	content: '\f549';
}
.AdminNotice> a:before{
	content: '\f1ea';
}
.AdminCsvDownload> a:before{
	content: '\f6dd';
}
.AdminContactUs> a:before{
	content: '\f0e0';
}
.JukuTestList> a:before{
	content: '\f15c';
}
.JukuData> a:before{
	content: '\f1ad';
}

header .AccountName_wrap {
    display: none;
}
header .AccountName {
    font-size: var(--12px);
    color: var(--text-sub-color);
    text-align: right;
}
.AccountName p {
	font-size: var(--14px);
	padding: 8px 8px 3px;
}
header button {
    padding: 4px 8px 2px;
    border-radius: 4px;
    margin-left: 5px;
    border: 1px solid #9b9b9b;
    background: #ebebeb;
    font-family: inherit;
    min-width: 8em;
}
.CopyTerms_wrap {
    position: fixed;
    left: 0;
    bottom: 0;
    width: 220px;
    padding: 10px;
}
.Copyright, .TermsOfUse {
	text-align: center;
	font-size: var(--12px);
	margin-bottom: 5px;
}

.content{
	max-width: 100%;
	overflow-x: auto;
  flex: 1;
  text-align: center;
  /*margin-left: 10px;*/
  width: calc(100% - 330px);
  padding: 10px 40px 20px 30px;
  /*background: #ecffe3;*/
  background: #fff;
  border-radius: 16px;
  box-shadow: 0 0 16px rgba(0, 0, 0, 0.08), 0 0 3px rgba(0, 0, 0, 0.01);
  margin: 100px 20px -20px 250px;    
}

/* .content内の全てのtable文字サイズを統一 */
.content table,
.content table th,
.content table td {
	font-size: 13px !important;
}
/* 学校DB 検索フォーム: 学校名入力をプルダウン幅に合わせる */
.content .form_area table.tbl_result input.w100 {
	width: 350px !important;
	max-width: 350px !important;
}

/* 表内ボタンのサイズをカテゴリ設定の編集/削除ボタン相当に統一 */
.content table button,
.content table .a_button {
	min-width: 6em !important;
	width: auto !important;
	padding: 5px 10px !important;
	box-sizing: content-box !important;
}

.SelectButton-Wrap {
}
.SelectButton-WrapBG {
	padding: 10px;
}
.SelectButton-WrapBG.P-low {
	
}
.SelectButton {
    padding: 30px;
    color: #333;
    border: 1px solid var(--border-color);
    border-radius: 10px;
    margin: 0 5px 30px;
    background: #fff;
    display: flex;
    align-content: center;
    justify-content: space-evenly;
    align-items: center;
    box-shadow: 6px 6px 10px 0px rgba(146, 146, 146, 0.3);
}
.SelectButton p {
    font-size: var(--15px);
    display: flex;
    align-items: center;
}

.modal{
	display: none;
	height: 100vh;
	position: fixed;
	top: 0;
	width: 100%;
}
.modal__bg{
	background: rgba(0,0,0,0.8);
	height: 100vh;
	position: absolute;
	width: 100%;
}
.modal__content{
	background: #fff;
	/*left: 50%;*/
	left: 40%;
	padding: 40px;
	position: absolute;
	top: 50%;
	transform: translate(-50%,-50%);
	width: 60%;
	overflow: scroll;
	max-height: 500px;
}
.required{
	color: #FF0000FF;
}
.msg-error{
	color: #FF0000FF;
}
.page_title{
	text-align: left;
	/*font-size: 18px;*/
}
.button_area{
	margin-top: 20px;
}
.none{
	display: none;
}
.f_all {
}
.f_bold{
	font-weight: bold;
}
.tac{
	text-align: center;
}
.tal{
	text-align: left;
}
.tar{
	text-align: right;
}
.form_actions{
	display:flex; justify-content:center; gap:12px; margin:24px 0;
}
.form_actions .large{ min-width:120px; }
.mt10{
	margin-top: 10px;
}
.mt20{
	margin-top: 20px;
}
.mb10{
	margin-bottom: 10px;
}
.mb20{
	margin-bottom: 20px;
}
.form_area{
    margin: 20px 10px;
}
/*input text*/
.input_middle{
	width: 300px;
}
input[type="button"] {
	margin: 3px;
}
input[type="number"].score {
	width: 70px;
}
/* table */
table.tbl_input ,table.tbl_input td {
	border: none;
}

/* SweetAlert2: unify confirm button color globally */
.swal2-styled.swal2-confirm{
  background: #59B230 !important;
  border: 1px solid #59B230 !important;
  color: #fff !important;
}
.swal2-styled.swal2-confirm:hover{
  background: #4aa126 !important;
  border-color: #4aa126 !important;
}
table.tbl_input  {
	width: 100%;
	border: solid 1px var(--border-color);
	border-collapse:  collapse;
}
table.tbl_input td {
    text-align: left;
    border: solid 1px var(--border-color);
    padding: 4px;
}

table.tbl_result, 
table.tbl_file,
table.img_tbl {
    width: 100%;
    /*max-width: 1200px;*/
    border: solid 1px var(--border-color);
    border-collapse: separate;
    margin-bottom: 30px;
    margin-top: 20px;
    border-radius: 10px;
    overflow: hidden;
    box-shadow: 6px 6px 10px 0px rgba(146, 146, 146, 0.1);
	background: #fff;
}
table.tbl_result th,
table.tbl_result td, 
table.tbl_file th,
table.tbl_file td,
table.img_tbl th,
table.img_tbl td {
	padding: 5px 6px;
}
table.tbl_result th{
	border-left: 1px solid var(--border-color);
}
table.tbl_result td.category{
	background-color: #def0ff;
}
table.tbl_result td.subcategory{
	background-color: #fffff0;
}
table.tbl_result th, 
table.tbl_result td,
table.img_tbl th,
table.img_tbl td {
	border-bottom: 1px solid var(--border-color);
} 
table.tbl_result td,
table.img_tbl td {
	border-left: 1px solid var(--border-color);
}
table.img_tbl td:first-child,
table.tbl_result.question td:first-child,
table.tbl_result th:first-child {
	border-left: none;
}
/*
table.tbl_result .omitString{
	text-align: center;
	display: -webkit-box;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 2;
	overflow: hidden;
}*/
table.tbl_result.question{
	font-size: 11px;
}
table.tbl_result tr:last-child th,
table.tbl_result tr:last-child td,
table.img_tbl tr:last-child th,
table.img_tbl tr:last-child td {
	border-bottom: none;
}
.tox-tinymce {
	border: 1px solid var(--border-color) !important;
	box-shadow: 6px 6px 10px 0px rgba(146, 146, 146, 0.1) !important;
}

.th {
	background: #AAE48F;
}
.th-id {
	width: 8%;
}
.th-grade {
	width: 5%;
}
.th-subject {
	width: 8%;
}
.th-name {
	width: 10%;
}
.th-com {
	width: 15%;
}
.th-posi {
	width: 10%;
}
.th-ken {
	width: 8%;
}
.th-tel {
	width: 8%;
}
.th-mail {
	width: 10%;
}
.th-settings {
	width: 5%;
}

/*** カレンダー ***/
table.calendar{
	width: 100%;
}
table.calendar th, table.calendar td{
	padding: 4px;
	background-color: #FFF;
	text-align: center;
	border: 1px solid #CCC;
}
/* 行の最初のtdは日曜日なため赤く */
table.calendar th:first-of-type, table.calendar td:first-of-type{
	background-color: #ffefef;
}
table.calendar th:first-of-type{
	color: #FF0000;
}
/* 行の最後のtdは土曜日なため青く */
table.calendar th:last-of-type, table.calendar td:last-of-type{
	background-color: #ededff;
}
table.calendar th:last-of-type{
	color: #0000FF;
}

/* 今日の日付 */
table.calendar td.today{
	background-color: #fbffe0;
	font-weight: bold;
}

table.calender_column td:first-child{
	height: 20px;
	text-align: center;
}
.chg_ym_btn{
	margin-right: 5px;
	margin-left: 5px;
}

/*ファイル選択*/
.select_file {
    border: 1px solid #7b7b7b;
    display: inline-block;
    padding: 6px 18px 4px;
    position: relative;
    border-radius: 6px;
    background: #f7f7f7;
}
/* --- Upload (test2.html風) --- */
.img_uploader{ gap: 14px; display: flex; flex-wrap: wrap; }
.upload-card{ width: 49%; border: 1px dashed #cfd6e4 !important; }
/* アップロード行のtdパディングを5pxに統一 */
.upload-card td{ padding: 10px !important; }
.upload-cell{ padding: 10px; text-align: center; }
.upload-dropzone{
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
    display: grid;
    place-items: center; /* 中央寄せ（要素の水平・垂直） */
    align-content: center; /* コンテンツ塊を上下中央に集約 */
    justify-content: center;
    gap: 8px; /* ヒントとファイル名の間隔 */
    border: 1px dashed #cfd6e4 !important;
    background: #fbfcff;
    border-radius: 12px;
    padding: 18px; /* 余白をやや増量 */
    min-height: 120px; /* 枠内での中央バランスを取りやすく */
    text-align: center;
    color: #6b7280;
}
.upload-dropzone:hover{ border-color: var(--green) !important; color:#476e45; }
.upload-dropzone input[type="file"]{ position: absolute; inset: 0; width:100%; height:100%; opacity:0; cursor:pointer; }
.upload-hint{ display: block; font-size: 12px; }
.upload-file-info{ margin-top: 6px; font-size: 12px; color:#5f6b7a; }
.upload-dropzone .upload-file-info{ margin-top: 6px; }
.upload-delete{ display: inline-block; margin: 10px 0; font-size: 12px; text-decoration: none; }

/* セクション見出し（大問題/画像アップロード） */
/* セクション見出し（共通） */
.form-section-title,
.form-section-title--lg{
    text-align: left;
    font-weight: 600;
    color: #6d6d6d;
    background: #AAE48F;
    padding: 3px 5px;
    border-radius: 20px;
}
/* 余白のみ差分 */
.form-section-title{ margin: 10px 0 10px 0; }
.form-section-title--lg{ margin: 30px 0 10px 0; }

.select_file input[type="file"]{
	height: 100%;
	left: 0;
	opacity: 0;
	position: absolute;
	top: 0;
	width: 100%;
}
.q_img{
	max-width: 100%;
	height: auto;
	margin: 10px;
}
.q_img img{
    /* width: 100%; */
    /* max-width: 100%; */
    /* height: auto;*/
}
table.img_tbl {
	margin: 5px;
    /* height: 20px; */
    /* border: solid 1px #d6d6d6; */
    /* border-collapse: collapse; */
    width: 49%;
}

table.img_tbl td{
    /* border: solid 1px #d6d6d6; */
    /* border-collapse: collapse; */
    padding: 4px;
}
table.img_tbl.border_one td, table.img_tbl.border_one{
	 border: none;
}

.answer_content{
	background-color: #ffeaea;
}
.answer_area{
	border: solid 1px #d6d6d6;
	padding: 10px;
	text-align: center;
	border-radius: 10px;
}
.text-content{
	background-color: #ffffff;
}
.test_answer_area{
	background-color: #ffffff;
	height: 150px;
}
.question_area{
	border: solid 1px #d6d6d6;
	padding: 10px;
/*	border-radius: 10px;*/
	text-align: center;
}
.file_area{
	text-align: center;
}
.note{
	text-align: center;
}
.note span{
	font-size: 10px;
}
.check_border{
	border: solid 1px #454545;
	width: 30px;
	height: 30px;
}
.print-off {
	display: none;
}
.sub10{
	margin-right: 10px;
	margin-left: 10px;
	white-space: nowrap;
}
.student_label{
	margin-right: 1px;
	margin-left: 1px;
	background-color: antiquewhite;
}
.tgt_year{
	margin: 10px;
}
.tgt_year span{
	font-size: 20px;
}
p.close_date{
	font-weight: bold;
	color: #FF0000;
}
/* TEST */
.name_area{
	width: 60%;
}
.question_num{
	font-weight: bold;
 }
.test_q_a_area{
    display: flex;
	justify-content: center;
    min-height: auto;
    margin: 30px 0 20px;
}
.test_q_area {
    width: 100%;
    /* margin: 0 10px 0 0; */
    text-align: center;
}
.test_a_area{
	width: 30%;
	border: solid 1px #888888;
	padding: 5px 10px;
	text-align: center;
	min-height: 50px;
 }
.test_q_a_area table:first-child {
	width: 68%;
	margin: 0 10px 0 0;
	text-align: center;
}
.test_q_a_area table:last-child {
    width: 30%;
    height: fit-content;
    border-collapse: separate;
    border-spacing: 5px;
    margin-top: -5px;
}
.test_q_a_area table td.tal {
	padding: 0 0 5px 0;
}
.test_q_a_area table:last-child td {
	height: calc(50px - 5px);
}
.test_q_a_area table:last-child td.tal {
	padding: 2.5px;
}
.test_s_font{
    font-size: 12px;
    padding: 5px;
}
.test_img{
	display:flex;
	flex-flow: column;
	width: 100%;
	margin-top: 5px;
	text-align: center;
}
.q_img img{
    width: auto;
    max-height: 250px;
    max-width: 100%;
}
.test_title{
	display: flex;
}
.test_name_logo{
	display: flex;
}

.test_name_area{
    width: 70%;
    text-align: left;
    display: flex;
    align-items: center;
    height: 3em;
}
.test_logo_area{
    text-align: right;
    width: 40%;
    display: flex;
    align-items: center;
    justify-content: center;
}
.test_juku_logo {
    display: flex;
    justify-content: center;
}
.test_juku_logo img{
    width: 90%;
    height: 90%;
}
.question_answer_area{
	display: flex;
}
.question_answer_area > *{
	margin-right: 6px; /* くっつかないよう数pxの余白 */
}
.question_answer_area > *:last-child{
	margin-right: 0;
}
.question_answer_area .area_input{
	width: 20%;
	text-align: center;
}
.question_answer_area .answer_text{
	width: 60%;
}
.question_answer_area input{
	width: 93%;
	margin: 75px 0px;
}

/* 回答形式: ラジオとラベルを横並びにして詰まりを解消 */
.answer-type-inline{
	display: flex; /* 横一列に固定 */
	align-items: center;
	gap: 16px;
	flex-wrap: nowrap;
	white-space: nowrap;
	writing-mode: horizontal-tb;
}
.answer-type-inline .radio-inline{
	display: inline-flex;
	align-items: center;
	gap: 6px; /* ラジオと文字の間 */
	white-space: nowrap;
}
.d_inline{
    display: flex;
    align-items: center;
}
/*.score{
	width: 75px;
}*/
.td_score, .td_answer{
	vertical-align: top;
	text-align: center;
}
table.tbl_score, table.tbl_answer{
	border:0;
	width: 100%;
}
table.tbl_score td, table.tbl_answer td{
	border:0;
	padding: 1px;
}
table.tbl_score td.area1{
	width: 30%;
 }
table.tbl_score td.score{
	width: 70%;
}
.score_input{
	width: 75px;
}

table.tbl_answer td.area1{
	width: 10%;
}
table.tbl_answer td.area2{
	width: 25%;
}
table.tbl_answer td.td_answer_content{
	width: 65%;
}

input[type="text"].text_score {
	width: 60px;
}


/* -------------------------------------------
   トップページ ニュース部分
--------------------------------------------- */
.ToppageNews {
    border-bottom: 1px solid var(--border-color);
    padding: 0 10px 20px;
    margin: 10px 10px 35px;
    text-align: left;
}

/* -------------------------------------------
   問題
--------------------------------------------- */
.tinymce_area {
	/*margin-bottom: 40px;*/
}

.QuestionTbl {
}
.QuestionImg {
	display: flex;
	justify-content: space-around;
	width: 100%;
	margin-bottom: 40px;
}
.QuestionImg table.img_tbl td {
	padding: 15px 4px 4px;
}

/* -------------------------------------------
   FontAwesome
--------------------------------------------- */
.fa-solid, .fas {
    font-size: 45px;
}
/* カテゴリ設定ページのテーブル幅調整 */
table.tbl_result td.category {
}
table.tbl_result td.subcategory {
}

/* カテゴリ設定ページのテーブル幅調整 */
table.tbl_result td.category {
    width: 200px !important;
    max-width: 200px !important;
}
table.tbl_result td.subcategory {
    width: 200px !important;
    max-width: 200px !important;
}

/* カテゴリ設定ページのテーブル幅調整 - より具体的なセレクター */
body .content .form_area table.tbl_result td.category {
    width: 200px !important;
    max-width: 200px !important;
    min-width: 200px !important;
}


body .content .form_area table.tbl_result td a i.fas:hover {
    background-color: #4a9a26;
    color: white;
}

body .content .form_area table.tbl_result td a i.fas:hover {
    color: #4a9a26;
}

/* カテゴリ設定ページの矢印アイコンスタイル - 最終版 */
body .content .form_area table.tbl_result td a i.fas {
    display: inline-block;
    padding: 4px 8px;
    margin: 2px;
    background-color: transparent !important;
    color: #E66690;
    text-decoration: none;
    font-size: 20px;
    border: none !important;
    border-radius: 0 !important;
}
body .content .form_area table.tbl_result td a i.fas:hover {
    color: #4a9a26;
    background-color: transparent !important;
    border: none !important;
    border-radius: 0 !important;
}
body .content .form_area table.tbl_result td a:hover {
    background-color: transparent !important;
    border: none !important;
    border-radius: 0 !important;
}

/* セクション1一覧の上下アイコン色 */
/* 上下アイコン色（青=#61aaeb / オレンジ=#f39984） */
body .content table.section1-list td a.icon-up i.fas{ color:#3a83df !important; }
body .content table.section1-list td a.icon-down i.fas{ color:#fda461 !important; }
body .content table.section1-list td a.icon-up i.fas:hover,
body .content table.section1-list td a.icon-up:hover i.fas{ color:#61aaeb !important; }
body .content table.section1-list td a.icon-down i.fas:hover,
body .content table.section1-list td a.icon-down:hover i.fas{ color:#f39984 !important; }

/* Section1 list: 並び替え列のアイコンを強制横並び */
body .content table.tbl_result.section1-list td:nth-child(6){
  display: flex !important;
  align-items: center;
  gap: 0;
  white-space: nowrap;
}
body .content table.tbl_result.section1-list td:nth-child(6) a{
  display: inline-flex !important;
}

/* rowspanにより列数が減る行に対応：最終列(=並び替え)も横並びを強制 */
body .content table.tbl_result.section1-list td:last-child{
  display: flex !important;
  align-items: center;
  gap: 0;
  white-space: nowrap;
}
body .content table.tbl_result.section1-list td:last-child a{
  display: inline-flex !important;
}

body .content table.category-list td a.icon-up i.fas{ color:#3a83df !important; }
body .content table.category-list td a.icon-down i.fas{ color:#fda461 !important; }
body .content table.category-list td a.icon-up i.fas:hover,
body .content table.category-list td a.icon-up:hover i.fas{ color:#61aaeb !important; }
body .content table.category-list td a.icon-down i.fas:hover,
body .content table.category-list td a.icon-down:hover i.fas{ color:#f39984 !important; }

body .content table.subcategory-list td a.icon-up i.fas{ color:#3a83df !important; }
body .content table.subcategory-list td a.icon-down i.fas{ color:#fda461 !important; }
body .content table.subcategory-list td a.icon-up i.fas:hover,
body .content table.subcategory-list td a.icon-up:hover i.fas{ color:#61aaeb !important; }
body .content table.subcategory-list td a.icon-down i.fas:hover,
body .content table.subcategory-list td a.icon-down:hover i.fas{ color:#f39984 !important; }

body .content table.subcategory2-list td a.icon-up i.fas{ color:#3a83df !important; }
body .content table.subcategory2-list td a.icon-down i.fas{ color:#fda461 !important; }
body .content table.subcategory2-list td a.icon-up i.fas:hover,
body .content table.subcategory2-list td a.icon-up:hover i.fas{ color:#61aaeb !important; }
body .content table.subcategory2-list td a.icon-down i.fas:hover,
body .content table.subcategory2-list td a.icon-down:hover i.fas{ color:#f39984 !important; }

/* 学年ページ（category-list）の列幅を他カテゴリと統一 */
body .content table.category-list th:nth-child(1),
body .content table.category-list td:nth-child(1){
  width: auto !important;
  max-width: none !important;
}
/* 操作列を20%に */
body .content table.category-list th:nth-child(2),
body .content table.category-list td:nth-child(2){
  width: 20% !important;
  max-width: 20% !important;
}
/* 並び替え列を80px固定に */
body .content table.category-list th:nth-child(3),
body .content table.category-list td:nth-child(3),
body .content table.category-list th:last-child,
body .content table.category-list td:last-child{
  width: 80px !important;
  min-width: 80px !important;
  max-width: 80px !important;
}
/* colgroup側も強制（ブラウザ実装差や既存幅の打ち消し） */
body .content table.category-list colgroup col:nth-child(2){ width: 20% !important; }
body .content table.category-list colgroup col:nth-child(3){ width: 80px !important; }
/* 並び替え列の内側余白とアイコン余白を圧縮して80pxに収める */
body .content table.category-list td:nth-child(3),
body .content table.category-list td:last-child{
  display: flex !important;
  align-items: center;
  justify-content: flex-start;
  gap: 0;
  padding-left: 4px !important;
  padding-right: 4px !important;
  text-align: left !important;
}
body .content table.category-list td:nth-child(3) a,
body .content table.category-list td:last-child a{
  display: inline-flex !important;
  align-items: center;
}
/* セルにクラスが付与された場合の最優先ルール */
body .content table.category-list td.sort-col{
  width: 80px !important;
  min-width: 80px !important;
  max-width: 80px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: flex-start !important;
  gap: 0 !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
}
/* アイコン同士の最小余白を付与（重なり防止、80px内で調整） */
body .content table.category-list td.sort-col a + a{
  margin-left: 6px !important;
}
body .content table.category-list td:nth-child(3) a i.fas{
  padding: 0 !important;
  margin: 0 !important;
}

/* 検索フォーム専用: 最小幅でコンパクトに表示 */
.content table.compact-form-table{
    width: auto !important;
    max-width: none !important;
    table-layout: auto !important;
    display: table;
    margin: 12px 0; /* 上下同じに */
}
.content table.compact-form-table th,
.content table.compact-form-table td{
    white-space: nowrap;
}
.content table.compact-form-table th{
    text-align: center !important;
}
.content table.compact-form-table td{
    text-align: left !important;
}
.content table.compact-form-table select:not(.short):not(.long){
	min-width: auto !important;
	width: auto !important;
	max-width: none !important;
}
/* 検索フォーム（compact-form-table）用 幅ユーティリティ */
.content table.compact-form-table input[type="text"].short,
.content table.compact-form-table select.short{
	width: 130px !important;
	min-width: 130px !important;
	max-width: 130px !important;
	box-sizing: border-box !important;
}
.content table.compact-form-table input[type="text"].long,
.content table.compact-form-table select.long{
	width: 350px !important;
	min-width: 350px !important;
	max-width: 350px !important;
	box-sizing: border-box !important;
}
/* qid-6ch との競合を明示的に解消 */
.content table.compact-form-table input.qid-6ch.short{
	width: 130px !important;
	max-width: 130px !important;
	box-sizing: border-box !important;
}
.content table.compact-form-table input.qid-6ch.long{
	width: 350px !important;
	max-width: 350px !important;
	box-sizing: border-box !important;
}
/* 問題IDテキストボックスを6文字幅に */
.content table.compact-form-table input.qid-6ch{
    width: 6ch !important;
    max-width: 6ch !important;
    box-sizing: content-box;
}

/* .content 内のフォーム領域を左寄せ */
.content .form_area{
    text-align: left;
}

/* 検索フォーム（compact-form-table）の枠線を非表示 */
.content .form_area table.compact-form-table{
  border: none !important;
  box-shadow: none !important;
  border-radius: 0 !important;
}
.content .form_area table.compact-form-table th,
.content .form_area table.compact-form-table td{
  border: none !important;
  border-left: none !important;
  border-bottom: none !important;
}
/* 確認画面などの読み取り専用テーブルで th/td 間隔を拡張 */
.content .form_area table.compact-form-table th{ padding-right: 12px !important; white-space: nowrap; }
.content .form_area table.compact-form-table td{ padding-left: 12px !important; }
/* コンパクト検索フォーム: 入力の左端をリストの数値頭に揃える（左マージンを無効化） */
.content .form_area table.compact-form-table input[type="text"],
.content .form_area table.compact-form-table select{
    margin-left: 0 !important;
    margin-right: 0 !important;
}

/* 検索フォーム（compact-form-table）の入力欄フォントサイズ統一 */
.content table.compact-form-table input[type="text"],
.content table.compact-form-table select{
    font-size: 13px !important;
}

.content .form_area > button.large.search{
  display: block;
  margin: 10px 0 36px 0; /* 下の表との間隔を拡張 */
}

/* 承認ステータス内のボタン間マージンを統一 */
.approval-actions{
  display: inline-flex;
  gap: 10px;
  vertical-align: middle;
}
.approval-actions button.large{
  margin: 0; /* 個別マージンを打ち消し、gapで統一 */
}

/* 汎用カードデザイン */
.card-modern{
  background: #fff;
  border: 1px solid var(--border-color);
  border-radius: 12px;
  box-shadow: 6px 6px 10px 0 rgba(146,146,146,.1);
}
.card-modern .card-header{
  font-weight: 600;
  color: #6d6d6d;
  padding: 8px 10px;
  background: #EAF7E3;
  border-bottom: 1px solid var(--border-color);
  border-radius: 12px 12px 0 0;
}
.card-modern .card-body{
  padding: 10px;
}

/* 合計表示全体をやや拡大 */
.total-score{
  font-size: 1.2em;
}

/* 合計点の数字のみフォントサイズを拡大＋左右に余白 */
#total-num{
  font-size: 1.6em;
  line-height: 1;
  margin: 0 0.25em;
}

/* 画像アップロード関連のスタイル */
.upload-group {
  display: flex;
  gap: 16px;
  flex-wrap: wrap;
  margin-bottom: 16px;
}

.upload-group .upload-item {
  flex: 1;
  min-width: 300px;
  max-width: calc(50% - 8px);
}

.upload-item:not(.upload-group .upload-item) {
  width: 100%;
  margin-bottom: 16px;
}

.add-more-section {
  display: flex;
  justify-content: center;
  gap: 16px;
  margin-top: 16px;
}

.add-more-button {
  background-color: #59B230;
  color: white;
  border: none;
  border-radius: 8px;
  padding: 12px 24px;
  font-size: 16px;
  font-weight: 600;
  cursor: pointer;
  transition: background-color 0.2s ease;
  min-width: 60px;
  text-align: center;
}

.add-more-button:hover {
  background-color: #2e8d2a;
}

.add-more-button:active {
  transform: translateY(1px);
}
/* 検索フォーム（compact）内だけ見出しを中央寄せ */
.content table.compact-form-table th{
    text-align: center !important;
}
