@charset "utf-8";

body{
    /* background:red; */
}

header{
    /* border:4px solid #f00 */
}

footer{

}

table{
    width:100%;
    border-collapse: collapse;
}
table th,table td{
    padding:5px;
    border: 1px solid #ddd;
	font-size:0.8rem;
}


/* web fonts
======================================================= */
@import url('https://fonts.googleapis.com/earlyaccess/notosansjp.css');
/*
##########################################################################
タグ初期設定
##########################################################################*/
*{
	margin:0;
	padding:0;
	box-sizing: border-box;
}
html{
	height: 100%;
}
body {
	position: relative;
	text-align:left;
	padding:0;
	margin:0;
	font-family: 'Noto Sans JP', sans-serif;
	color:#727272;
}
.admin-layout{
    min-height: 100vh;
    display: flex;
    flex-direction: column;
}
.admin-content-wrap{
    flex: 1 0 auto;
    margin: 0 0 3rem;
    padding-top: 64px;
}
.admin-columns{
    display: flex;
    align-items: stretch;
    width: 100%;
    min-width: 0;
}

/* ================================================
   Alpine.js ユーティリティ（Tailwind非依存）
   ================================================ */
.hidden      { display: none !important; }
.block       { display: block; }
.inline-flex { display: inline-flex; }

/* ================================================
   管理ナビゲーション（#admin-nav / .admin-nav__*)
   ================================================ */
.admin-nav {
    background: linear-gradient(to right, #f0f9ff, #eff6ff, #e0f2fe);
}

/* メインコンテナ */
.admin-nav__container {
    width: 100%;
    padding: 0 1rem;
}

/* ナビバー（横並びflex行） */
.admin-nav__bar {
    display: flex;
    justify-content: space-between;
    align-items: center;
    height: 64px;
}

/* 左セクション */
.admin-nav__left {
    display: flex;
    align-items: center;
}

/* ナビリンクエリア */
.admin-nav__links {
    display: flex;
    margin-left: 2.5rem;
}

/* ブランドテキスト */
.admin-nav__brand-title {
    font-size: 1.125rem;
}
.admin-nav__brand-sub {
    font-size: 0.75rem;
    margin-left: 0.75rem;
}

/* スタッフ選択 */
.admin-nav__staff {
    display: flex;
    align-items: center;
    margin-left: 1rem;
}
.admin-nav__staff-inner {
    display: flex;
    align-items: center;
    gap: 0.5rem;
}
.admin-nav__staff-label {
    font-size: 0.75rem;
    color: #6b7280;
    white-space: nowrap;
}
.admin-nav__staff-select {
    font-size: 0.875rem;
    border: 1px solid #d1d5db;
    border-radius: 0.375rem;
    padding: 0.375rem 0.5rem;
    background: #fff;
    color: #374151;
    min-width: 120px;
    outline: none;
}
.admin-nav__staff-select:focus {
    border-color: #60a5fa;
    box-shadow: 0 0 0 1px #60a5fa;
}
.admin-nav__staff-indicator {
    font-size: 0.75rem;
    font-weight: 500;
    color: #2563eb;
    white-space: nowrap;
}

/* 設定ドロップダウン */
.admin-nav__dropdown-wrap {
    display: flex;
    align-items: center;
    margin-left: 1.5rem;
}
.admin-nav__dropdown-btn {
    display: inline-flex;
    align-items: center;
    padding: 0.5rem 0.75rem;
    border: 1px solid transparent;
    font-size: 0.875rem;
    line-height: 1rem;
    font-weight: 500;
    border-radius: 0.375rem;
    color: #6b7280;
    background: #fff;
    cursor: pointer;
    transition: color 0.15s ease-in-out;
}
.admin-nav__dropdown-btn:hover { color: #374151; }
.admin-nav__dropdown-btn:focus { outline: none; }
.admin-nav__dropdown-arrow { margin-left: 0.25rem; }
.admin-nav__dropdown-svg {
    fill: currentColor;
    width: 1rem;
    height: 1rem;
}

/* ハンバーガー（モバイル用 / デスクトップでは非表示） */
.admin-nav__hamburger {
    display: none;
    align-items: center;
    margin-right: -0.5rem;
}
.admin-nav__hamburger-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0.5rem;
    border-radius: 0.375rem;
    color: #9ca3af;
    background: transparent;
    border: none;
    cursor: pointer;
    transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out;
}
.admin-nav__hamburger-btn:hover {
    color: #6b7280;
    background: #f3f4f6;
}
.admin-nav__hamburger-svg {
    width: 1.5rem;
    height: 1.5rem;
}

/* モバイルメニュー */
.admin-nav__mobile-links {
    padding: 0.5rem 0 0.75rem;
}
.admin-nav__mobile-settings {
    padding: 1rem 0 0.25rem;
    border-top: 1px solid #e5e7eb;
}
.admin-nav__mobile-settings-inner {
    margin-top: 0.75rem;
}
h1,h2,h3,h4,h5,h6,p,ul,li,dl,dd,dt,table,th,td{
	margin:0;
	padding:0;
}
li{	list-style:none;}
img{max-width:100%;}
/*リンク*/
a{
	text-decoration:none;
}
a:hover{
	text-decoration:underline;
	color: #077bff;
}

/*タイトルタグ*/

h1{
    width:auto;
}
h2{
	margin :0 0 3rem;
	padding:0.8rem;
	font-size: 0.9rem;
    font-weight: bold;
    background:#f2f2f2;
}
h3{
    width:auto;
}

/*
##########################################################################
ユーティリティタグ設定
##########################################################################*/

/*【clearfix決定版】*/
.clearfix:after,
.section:after,
ul:after,
#container:after,
#navi:after,
#pageNavi:after,
#subNavi:after,
.inner:after,
.section:after,
.wrap:after{
	content:url(../../images/spacer.gif);/* 1x1の透過gif */
	display:block;
	clear:both;
	height:0;
}
.clearfix_for_ie7{
	zoom: 1;}

.section{width:auto;}
.box{float:left;}
.left{float:left;}
.right{float:right;}
.clear{clear:both;}
.flexSection{display: flex;justify-content: space-between;}
.flexSection:after{margin-left:auto;}
.hint{font-size: 0.8rem; color: #999;}


/*
##########################################################################
box
##########################################################################*/
.list{
	display: flex;
	flex-wrap: wrap;
	width:100%;
}
.list .box{
    width:160px;
	padding:0.5rem;
	border:1px solid #dfdfdf;
	margin:0 0.2rem 1rem;
	text-align: center;
}
.list .box.active{
    background:#FFF;
}
.list .box.passive{
    background:#555;
    color: #DDD;
}
.list .box .img{
	margin-bottom:1.2rem;
}
.list .box .img img{
	display: block;
}
.list .box .name{
	margin-bottom:0.5rem;
}
.list .box .new{
	font-size: 0.6rem;
	color: #e794c2;
}

/*
##########################################################################
list table
##########################################################################*/
.listTbl{
	width:100%;
    border-collapse: collapse;
}
.listTbl th,.listTbl td{
}
.listTbl thead th{
    background:#eee;
}
.listTbl tbody th,
.listTbl tbody td{
    background:#fff;
}
.listTbl tbody .handle{
    width:65px;
}
.listTbl tbody .action{
    width:150px;
}
.listTbl .size_5{
    width:5%;
}
.listTbl .size_6{
    width:6%;
}
.listTbl .size_7{
    width:7%;
}
.listTbl .size_8{
    width:8%;
}
.listTbl .size_9{
    width:9%;
}
.listTbl .size_10{
    width:10%;
}
.listTbl .size_15{
    width:15%;
}
.listTbl .size_20{
    width:20%;
}
.listTbl .size_25{
    width:25%;
}
.listTbl .size_30{
    width:30%;
}
.listTbl .size_35{
    width:35%;
}
.listTbl .size_40{
    width:40%;
}
.listTbl .size_45{
    width:45%;
}
.listTbl .size_50{
    width:50%;
}
.listTbl .size_55{
    width:55%;
}
.listTbl .size_60{
    width:60%;
}
.listTbl .size_65{
    width:65%;
}
.listTbl .size_70{
    width:70%;
}
.listTbl .size_75{
    width:75%;
}
.listTbl .size_80{
    width:80%;
}
.listTbl .size_85{
    width:85%;
}
.listTbl .size_90{
    width:90%;
}
.listTbl .left{
    text-align:left;
}
.listTbl .center{
    text-align:center;
}
.listTbl .right{
    text-align:right;
}


/*
##########################################################################
レイアウト
##########################################################################*/

#wrapper{
	width:100%;
	min-width: 1260px;
	height: 100%;
}
#container{
	padding-top:100px;
	display:flex;
}
#side{
	width:140px;
	min-width:140px;
	max-width:140px;
	flex:0 0 140px;
	flex-shrink:0;
	padding:0;
	background:#FFF;
}
.admin-main{
    flex: 1 1 auto;
    min-width: 0;
    overflow-x: auto;
}
main {
    width:100%;
    min-height: 1200px;
    margin:0 0 0;
    padding:1rem;
    box-sizing: border-box;
    background:#f3f4f6;
}

/*
##########################################################################
ビヘイビア
##########################################################################*/

/* フェードアウトアニメーションのスタイル */
.fadeOut {
    animation-name: fadeOutEffect;
    animation-duration: 0.5s; /* アニメーションの時間、ここでは0.5秒 */
    animation-fill-mode: forwards; /* アニメーションが終了した状態を保持 */
}

@keyframes fadeOutEffect {
    from {
        opacity: 1;
    }
    to {
        opacity: 0;
        visibility: hidden;
    }
}

/*
##########################################################################
ヘッダー
##########################################################################*/

/* header
===================================================*/
header{
	display: flex;
	align-items: center;
	width:100%;
	margin-bottom:2px;
    border-bottom:1px solid #eee;
}
header .titleArea{
    width:100%;
}
header .titleArea h2{
    text-align: center;
    background:white;
    padding:0 1rem;
    margin:0;
    line-height: 1.8;
}

/* logoArea
===================================================*/
#logoArea{
    width:54px;
}
#logoArea a{
	display: block;
	width:100%;
	height:100%;
	z-index:99;
}

#logoArea a svg#logo{
	display: block;
    padding:0.2rem;
}

/* navi
===================================================*/

ul.navi{
	margin: 0 auto;
}
ul.navi li{

}
ul.navi li a{
    position: relative;
    display:block;
	margin: auto ;
    padding:0.65rem 0.4rem;
	border-bottom:1px solid #eee;
    font-size: 0.84rem;
    color:#545668
}

ul.navi li:nth-last-child(1) a{
    border:none;
}
ul.navi li a:hover{
    background:#f6f6f6;
}
ul.navi li span.badge{
    position: absolute;
    right:2px;
    top:5px;
    display: inline-block;
    width:30px;
    background:#F00;
    padding:0 0.2rem;
    line-height: 30px;
    border-radius:50vmax;
    color: white;
    text-align: center;
    z-index: 9999 !important;
}

ul#settings .setting-title{
    margin: 0;
    padding:0.25rem 0.4rem;
    font-size: 0.70rem;
    color: #d4e5ec;
    background:#04384d;
}

ul#settings li a{
    background:#57add0;
    color: #fff;
}

ul#settings li a:hover{
    background:#6fbdde;
}
ul.setting li.logout{
    margin-top:3rem;
}

/*
##########################################################################
各ページ共通
##########################################################################*/
/* line awesome */
.las{
    font-size: 150%;
}

/* toPageArea */

.toPageArea{
    margin:0 0 2rem;
}
.toPageArea a{
    display: inline-block;
    padding:0.3rem 0;
    margin-right:1rem;
    color: #3f3f6f;
    border-bottom:4px solid #d3d7dd;
}
.toPageArea a:hover{
    border-bottom:4px solid #a0d3ea;
}
.toPageArea a::before{
    font-family: "Line Awesome Brands", "Line Awesome Free";
    margin-right: 0.4rem;
    font-size: 1.4rem;
}
.toPageArea a.create::before{
    content: "\f0fe";
}
.toPageArea a.cate::before{
    content: "\f37f";
    /*content: "\f86d;*/
}
.toPageArea a.lists::before{
    content: "\f15c";
}
.toPageArea a.point::before{
    content: "\f288";
}
.toPageArea a.history::before{
    content: "\f1ea";
}

/* mypageトーンに寄せたページ内ナビ */
.toPageArea{
    display:flex;
    flex-wrap:wrap;
    gap:0.5rem;
    margin:0 0 1.2rem;
    padding:0.25rem 0;
}
.toPageArea a{
    display:inline-flex;
    align-items:center;
    gap:0.35rem;
    padding:0.45rem 0.85rem;
    margin-right:0;
    border:1px solid #ddd6fe;
    border-radius:9999px;
    border-bottom:1px solid #ddd6fe;
    background:#fff;
    color:#4b5563;
    font-size:0.8rem;
    font-weight:600;
    line-height:1.35;
    transition:all .15s ease;
}
.toPageArea a:hover{
    text-decoration:none;
    color:#4c1d95;
    background:#f5f3ff;
    border-color:#c4b5fd;
}
.toPageArea a::before{
    margin-right:0;
    color:#7c3aed;
}

.toPageArea a.create{
    background:#2563eb;
    border-color:#2563eb;
    color:#fff;
}
.toPageArea a.create::before{
    color:#fff;
}
.toPageArea a.create:hover{
    background:#1d4ed8;
    border-color:#1d4ed8;
    color:#fff;
}

.toPageArea a.cate{
    background:#fff;
    border-color:#c4b5fd;
    color:#6d28d9;
}
.toPageArea a.cate:hover{
    background:#ede9fe;
    border-color:#a78bfa;
}




/* contentArea */

.contentArea{
    width:auto;
    padding:1.5rem 0;
}

/* transitionArea */
.PageTransitionArea {
    width:auto;
    margin-bottom:2rem;
}
.back{
    width: auto;
    margin-bottom:15px;
}
.back a {
    display: inline-block;
    padding:8px;
    color: #fff;
    background:rgb(255, 166, 0);
    border-radius:5px;
}
.back a::before{
    content:"〈　";
}
.back a:hover {
    background:rgb(255, 182, 45);
}

/* link */
.link a{
    display: inline-block;
    padding:0.3rem 1rem;
    background:#FFF;
    border:2px  solid #57add0;
    color:#57add0;
    font-size: 0.8rem;
    border-radius:50vmax;
}
.link a:hover{
    background:#57add0;
    color: white;
}
/* message */
.MessageArea {
    margin-bottom:1.5rem;
    color: #f00;
}
.MessageArea .hintArea{
    padding:1.8rem;
    margin:1rem;
    background:#FFF;
    border-radius:8px;
    font-size: 1rem;
    color: #555;
}
.MessageArea .hintArea p::before{
    display: inline-block;
    margin-right: 0.8rem;
    font-family: "Line Awesome Brands", "Line Awesome Free";
    content: "\f075";
    font-size: 1.5rem;
}


/* registerFormArea */

.registerFormArea{
    max-width:450px;
    margin: 0 0 2rem;
    padding:1rem;
    background: #FFF;
    border:2px solid #57add0
}
.registerFormArea h3{
    margin: 0 0 1rem;
    font-size: 1.2rem;
    font-weight: bold;
}
.add{
    width: auto;
}

/* listTableArea  /index */

.listTableArea{

    width:auto;
}

.ListArea{
    width: auto;
}

/* formArea */
.formArea{
    width:auto;

}

/*
##########################################################################
コンポーネント
##########################################################################*/
 .request{
    padding:0.2rem;
    margin-bottom:0.8rem;
    text-align: center;
}
 .request.add{
    border:1px solid #07d385;
    color: #07d385;
}
 .request.delete{
    border:1px solid #c22de7;
    color: #c22de7;
}
 .request.update{
    border:1px solid #3360f5;
    color: #3360f5;
}

/*
##########################################################################
フッター
##########################################################################*/
footer{
	width:100%;
	padding:3rem  ;
    box-sizing: border-box;
	background:#CCC;
}
footer small{
    color: #555;
}





/*
##########################################################################
アイコン　https://design-library.jp/lab/category/icon
##########################################################################*/
/* 矢印 */
/* < */
.pre, .next {
    background:#57add0 !important;
    border: none  !important;
}
.pre::before{
    margin-right:0.5rem;
    content:"\0ab";
}

/* > */
.next::after{
    margin-left:0.5rem;
    content:"\0bb";
}

/* ソートハンドル */
.sort-handle {
    display: inline-block;
    vertical-align: middle;
    color: #333;
    line-height: 1;
    width: 1em;
    cursor: grab;
    font-size: 1.5rem;
  }

  .sort-handle > span {
    display: block;
    height: 1px;
    background: currentColor;
    border-radius: 0.1em;
  }

  .sort-handle > span + span {
    margin-top: 0.22em;
  }

/* navi accordion
===================================================*/
.navi-accordion { list-style: none; }
.navi-accordion-btn {
    position: relative;
    display: block;
    width: 100%;
    text-align: left;
    padding: 0.65rem 0.4rem;
    border: none !important;
    border-bottom: 1px solid rgba(255,255,255,0.25) !important;
    border-radius: 0 !important;
    background: #57add0 !important;
    font-size: 0.84rem;
    color: #fff !important;
    cursor: pointer;
}
.navi-accordion-btn:hover { background: #6fbdde !important; color: #fff !important; }

/* カテゴリ等ナビをマイページと同系色へ */
.navi-accordion-btn {
    background: #1b95c5 !important;
    border-bottom: 1px solid rgba(255,255,255,0.2) !important;
}
.navi-accordion-btn:hover {
    background: rgb(10, 117, 160) !important;
}
.navi-accordion-arrow {
    position: absolute;
    right: 6px;
    top: 50%;
    transform: translateY(-50%);
    font-size: 0.75rem;
    transition: transform 0.2s;
    display: inline-block;
}
.navi-accordion.is-open .navi-accordion-arrow { transform: translateY(-50%) rotate(180deg); }
.navi-accordion-body {
    display: none;
    padding: 0;
    margin: 0;
    background: #359cc5 !important;
    border-bottom: 1px solid rgba(255,255,255,0.15);
}
.navi-accordion.is-open .navi-accordion-body { display: block; }
.navi-accordion-body li a {
    padding-left: 1.4rem !important;
    font-size: 0.8rem;
    color: #ede9fe !important;
    border-bottom: 1px solid rgba(255,255,255,0.12) !important;
    background: #359cc5 !important;
}
.navi-accordion-body li a:hover { background: #359cc5 !important; color: #fff !important; }
.navi-accordion-body li:last-child a { border-bottom: none !important; }
