/*
----------------------------------------------------------------------
  PKOBO_BBS front style
  シンプルなHTML構造のまま、CSSだけで見た目を調整しています。
  以前の見た目に戻す場合は style_original.css の内容をこのファイルへ戻してください。
----------------------------------------------------------------------
*/
html{
	background:#eef2f5;
}
body{
	margin:0;
	color:#1f2933;
	line-height:1.7;
	font-size:15px;
	font-family:"メイリオ",Meiryo,Osaka,"ＭＳ Ｐゴシック","MS PGothic",sans-serif;
	background:#eef2f5;
}
body.bbsFront #wrap,body.bbsViewPassword #wrap{
	box-sizing:border-box;
	width:960px;
	max-width:calc(100% - 32px);
	margin:24px auto 42px;
	padding:26px;
	background:#fff;
	border:1px solid #dce4ec;
	border-radius:8px;
	box-shadow:0 12px 32px rgba(31,41,51,0.09);
}
body.bbsViewPassword #wrap{
	width:560px;
	margin-top:64px;
}
h1{
	font-weight:700;
	font-size:26px;
	line-height:1.35;
	letter-spacing:0;
	margin:0 0 22px;
	padding:0 0 14px;
	border-bottom:3px solid #1f2933;
}

/* HistGraph Archive visitor counter */
body.bbsFront .bbsTitleRow{
	display:flex;
	align-items:flex-start;
	justify-content:space-between;
	gap:18px;
	margin:0 0 22px;
	padding:0 0 14px;
	border-bottom:3px solid #1f2933;
}
body.bbsFront .bbsTitleRow h1{
	min-width:0;
	flex:1 1 auto;
	margin:0;
	padding:0;
	border:0;
}
.archiveVisitorCounter{
	flex:0 0 auto;
	padding-top:2px;
	color:#77828c;
	font-size:11px;
	line-height:1.45;
	text-align:right;
	font-variant-numeric:tabular-nums;
	white-space:nowrap;
}
.archiveVisitorMain,.archiveVisitorSub{display:block}
@media(max-width:640px){
	body.bbsFront .bbsTitleRow{display:block}
	.archiveVisitorCounter{margin-top:7px;text-align:left;font-size:10.5px}
	.archiveVisitorMain,.archiveVisitorSub{display:inline}
	.archiveVisitorSub::before{content:" / ";}
}

h2{
	font-weight:700;
	font-size:20px;
	line-height:1.45;
	letter-spacing:0;
	margin:28px 0 14px;
	padding:0 0 8px;
	border-bottom:1px solid #cbd5df;
}
a{
	color:#1f4e79;
}
a:hover{
	color:#0f766e;
}
.thread{
	border:1px solid #dce4ec;
	border-left:5px solid #1f4e79;
	border-radius:8px;
	padding:16px 18px;
	margin:14px 0;
	background:#fff;
	box-shadow:0 4px 14px rgba(31,41,51,0.05);
}
.thread h2{
	border:0;
	margin:0 0 8px;
	padding:0;
	font-size:19px;
}
.thread h2 a{
	text-decoration:none;
}
.reply{
	margin:14px 0 14px 34px;
	padding:14px 16px;
	border:1px solid #d8e4e0;
	border-left:5px solid #0f766e;
	border-radius:8px;
	background:#f8fbfa;
}
.meta{
	font-size:12px;
	color:#637083;
}
.comment{
	margin:12px 0;
}
.bbs_file{
	margin:12px 0;
}
.bbs_file img{
	max-width:100%;
	height:auto;
	border-radius:8px;
	border:1px solid #dce4ec;
}
.bbs_file_meta{
	margin-top:6px;
	font-size:0.92em;
	word-break:break-all;
}
.bbs_file_name{
	margin-right:10px;
}
.bbs_preview_download{
    display:block;
    text-decoration:none;
}
.bbs_preview_download img{
    cursor:pointer;
}
.bbs_preview_unavailable{
    margin-bottom:8px;
    padding:12px;
    border:1px solid #ddd;
    background:#fafafa;
    color:#777;
    font-size:0.9rem;
}

.bbs_download_link{
	display:inline-block;
	margin-left:4px;
	font-weight:700;
	text-decoration:none;
	white-space:nowrap;
}
.formTable{
	border-collapse:separate;
	border-spacing:0;
	width:100%;
	margin:12px 0 26px;
	border:1px solid #dce4ec;
	border-radius:8px;
	overflow:hidden;
}
.formTable th,.formTable td{
	border-bottom:1px solid #dce4ec;
	padding:12px;
	text-align:left;
	vertical-align:top;
}
.formTable tr:last-child th,.formTable tr:last-child td{
	border-bottom:0;
}
.formTable th{
	width:24%;
	background:#f4f7fa;
	font-weight:700;
	color:#334155;
}
input[type="text"],input[type="password"],textarea{
	box-sizing:border-box;
	padding:9px 10px;
	border:1px solid #b7c3d0;
	border-radius:6px;
	background:#fff;
	width:96%;
	font:inherit;
}
input[type="text"]:focus,input[type="password"]:focus,textarea:focus{
	outline:0;
	border-color:#1f4e79;
	box-shadow:0 0 0 3px rgba(31,78,121,0.14);
}
input[type="file"]{
	max-width:100%;
}
textarea{
	width:90%;
	min-height:150px;
}
input[type="submit"],button{
	font:inherit;
}
input[type="submit"],.btn,.bbsModalClose{
	display:inline-block;
	border:1px solid #1f4e79;
	border-radius:6px;
	background:#1f4e79;
	padding:7px 16px;
	text-decoration:none;
	color:#fff;
	line-height:1.5;
	cursor:pointer;
}
input[type="submit"]:hover,.btn:hover,.bbsModalClose:hover{
	background:#173c5e;
	color:#fff;
}
.btn + .btn{
	margin-left:10px;
}
.frontNavi{
	display:table;
	width:100%;
	margin:0 0 18px;
}
.frontNaviLeft{
	display:table-cell;
	text-align:left;
}
.frontNaviRight{
	display:table-cell;
	text-align:right;
}
.frontNavi p{
	margin:0;
}
.frontNaviRight .btn{
	border-color:#7b8794;
	background:#fff;
	color:#334155;
}
.frontNaviRight .btn:hover{
	background:#edf2f7;
	color:#1f2933;
}
.error{
	color:#b42318;
}
.formErrorBox{
	border:1px solid #f0b8b4;
	border-radius:6px;
	background:#fff5f5;
	color:#b42318;
	padding:10px 12px;
	margin:12px 0;
}
.errorMsg{
	display:block;
	color:#b42318;
	font-size:12px;
	margin-top:4px;
}
.inputError{
	background:#fff8f8;
	border-color:#d92d20!important;
}
.viewCookie{
	margin:12px 0;
}
.viewCookie input{
	padding:0;
	border:none;
}
.viewCookieNote{
	display:block;
	font-size:12px;
	color:#637083;
	margin-top:4px;
}
.bbsModalOverlay{
	position:fixed;
	left:0;
	top:0;
	right:0;
	bottom:0;
	background:rgba(15,23,42,0.46);
	z-index:1000;
}
.bbsModal{
	position:fixed;
	left:50%;
	top:50%;
	width:340px;
	max-width:86%;
	background:#fff;
	border-top:5px solid #0f766e;
	border-radius:8px;
	box-shadow:0 18px 48px rgba(15,23,42,0.24);
	z-index:1001;
	transform:translate(-50%,-50%);
}
.bbsModalInner{
	padding:24px 26px;
	text-align:center;
}
.bbsModalTitle{
	font-size:18px;
	font-weight:700;
	margin:0 0 16px;
}
.pager{
	text-align:right;
	padding:16px 0;
}
.pager a,.pager span{
	display:inline-block;
	border:1px solid #b7c3d0;
	border-radius:6px;
	color:#334155;
	background:#fff;
	font-size:13px;
	padding:4px 9px;
	text-decoration:none;
	margin:0 1px;
}
.pager a:hover{
	background:#edf2f7;
	color:#1f2933;
}
.pager span{
	background:#1f4e79;
	border-color:#1f4e79;
	color:#fff;
}
body.bbsViewPassword p{
	margin:12px 0;
}
body.bbsViewPassword input[type="text"]{
	width:260px;
}

/* HistGraph v3: 概要・検索・ソート */
.boardIntro{
	margin:0 0 20px;
	padding:16px 18px;
	border:1px solid #dce4ec;
	border-left:5px solid #637083;
	border-radius:8px;
	background:#f8fafc;
}
.boardIntro h2{
	margin:0 0 8px;
	padding:0;
	border:0;
	font-size:18px;
}
.boardIntroText{ color:#334155; }


/* HistGraph V12：長いスレッド用のページ末尾ナビゲーション */
.threadBottomNav{
	margin:32px 0 8px;
	text-align:center;
}
.threadBottomNav .btn{
	min-width:120px;
}
.threadTools{
	display:flex;
	align-items:flex-end;
	gap:12px;
	flex-wrap:wrap;
	margin:20px 0 24px;
	padding:14px 16px;
	border:1px solid #dce4ec;
	border-radius:8px;
	background:#f8fafc;
}
.threadTools label{
	display:block;
	margin-bottom:4px;
	font-size:12px;
	font-weight:700;
	color:#475569;
}
.threadSearch{ flex:1 1 340px; }
.threadSearch input[type="text"]{ width:100%; }
.threadSort{ flex:0 1 210px; }
.threadSort select{
	box-sizing:border-box;
	width:100%;
	padding:9px 10px;
	border:1px solid #b7c3d0;
	border-radius:6px;
	background:#fff;
	font:inherit;
}
.threadToolsSubmit button{
	border:1px solid #1f4e79;
	border-radius:6px;
	background:#1f4e79;
	padding:7px 16px;
	color:#fff;
	cursor:pointer;
}
.threadToolsSubmit button:hover{ background:#173c5e; }
.threadToolsClear{ padding-bottom:7px; font-size:13px; }
.searchSummary{ margin:0 0 14px; color:#475569; font-size:13px; }
.noThreads{ padding:22px 0; color:#637083; }

@media screen and (max-width:572px){
.threadTools{ display:block; }
.threadSearch,.threadSort,.threadToolsSubmit,.threadToolsClear{ width:100%; margin:0 0 10px; }
.threadToolsSubmit button{ width:100%; min-height:42px; }
.threadToolsClear{ padding-bottom:0; text-align:center; }

body.bbsFront #wrap,body.bbsViewPassword #wrap{
	width:auto;
	max-width:none;
	margin:12px;
	padding:18px;
}
h1{
	font-size:22px;
}
h2{
	font-size:18px;
}
.reply{
	margin-left:10px;
	padding-left:12px;
}
.formTable{
	display:block;
	border:0;
}
.formTable tbody,.formTable tr,.formTable th,.formTable td{
	display:block;
	width:auto;
}
.formTable th,.formTable td{
	border:1px solid #dce4ec;
}
.formTable th{
	border-bottom:0;
	border-radius:8px 8px 0 0;
}
.formTable td{
	border-radius:0 0 8px 8px;
	margin:0 0 12px;
}
input[type="text"],input[type="password"],textarea{
	width:100%;
	max-width:100%;
	font-size:16px;
}
input[type="submit"]{
	width:100%;
	min-height:42px;
}
.btn{
	display:block;
	text-align:center;
}
.btn + .btn{
	margin-left:0;
	margin-top:8px;
}
.frontNavi{
	display:block;
}
.frontNaviLeft,.frontNaviRight{
	display:block;
	text-align:left;
}
.frontNaviRight{
	margin-top:10px;
}
body.bbsViewPassword input[type="text"]{
	width:100%;
}
}

/* HistGraph v4-v7: スレッド一覧を1スレッド1行の表形式にする */
.threadTableWrap{
    width:100%;
    overflow-x:auto;
    margin:10px 0 8px;
    border:1px solid #dce4ec;
    border-radius:7px;
    background:#fff;
}
.threadTable{
    width:100%;
    min-width:860px;
    border-collapse:collapse;
    table-layout:fixed;
    font-size:14px;
}
.threadTable .threadColTitle{ width:52%; }
.threadTable .threadColReplies{ width:8%; }
.threadTable .threadColDate{ width:20%; }
.threadTable .threadColUpdated{ width:20%; }
.threadTable th,
.threadTable td{
    height:42px;
    padding:7px 12px;
    border-bottom:1px solid #e4e9ef;
    text-align:left;
    vertical-align:middle;
    white-space:nowrap;
}
.threadTable thead th{
    background:#f4f7fa;
    color:#334155;
    font-size:12px;
    font-weight:700;
}
.threadTable tbody tr:last-child td{
    border-bottom:0;
}
.threadTable .threadRepliesCell{
    text-align:center;
    white-space:nowrap;
}

.threadTable tbody tr:hover{
    background:#f8fafc;
}
.threadTitleCell{
    overflow:hidden;
}
.threadTitleCell a{
    display:block;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
    color:#1f4e79;
    font-weight:700;
    text-decoration:none;
}
.threadTitleCell a:hover{
    text-decoration:underline;
}
.threadAuthorCell,
.threadDateCell,
.threadUpdatedCell{
    overflow:hidden;
    text-overflow:ellipsis;
    color:#475569;
}
@media screen and (max-width:572px){
    .threadTableWrap{
        margin-left:0;
        margin-right:0;
    }
    .threadTable{
        min-width:820px;
    }
}

/* HistGraph v8: スレッド表示 / サムネ表示 切替 */
.viewModeSwitch{
    display:flex;
    justify-content:flex-end;
    gap:6px;
    margin:4px 0 12px;
}
.viewModeButton{
    display:inline-block;
    padding:6px 12px;
    border:1px solid #b7c3d0;
    border-radius:6px;
    background:#fff;
    color:#334155;
    font-size:13px;
    line-height:1.4;
    text-decoration:none;
}
a.viewModeButton:hover{
    background:#edf2f7;
    color:#1f2933;
}
.viewModeButton.active{
    border-color:#1f4e79;
    background:#1f4e79;
    color:#fff;
    font-weight:700;
}

/* HistGraph v8: 代表画像サムネイル一覧 */
.thumbGrid{
    display:grid;
    grid-template-columns:repeat(auto-fill,minmax(150px,1fr));
    gap:14px;
    margin:10px 0 8px;
}
.thumbCard{
    min-width:0;
    border:1px solid #dce4ec;
    border-radius:8px;
    background:#fff;
    overflow:hidden;
    box-shadow:0 3px 10px rgba(31,41,51,0.05);
}
.thumbCardLink{
    display:block;
    color:#1f2933;
    text-decoration:none;
}
.thumbCardLink:hover{
    color:#1f4e79;
}
.thumbImageBox{
    display:flex;
    align-items:center;
    justify-content:center;
    width:100%;
    aspect-ratio:1 / 1;
    overflow:hidden;
    background:#f4f7fa;
    border-bottom:1px solid #e4e9ef;
}
.thumbImageBox img{
    display:block;
    max-width:100%;
    max-height:100%;
    width:auto;
    height:auto;
    object-fit:contain;
}
.thumbNoImage{
    color:#94a3b8;
    font-size:12px;
    font-weight:700;
    letter-spacing:0.08em;
}
.thumbTitle{
    min-height:46px;
    padding:9px 10px 10px;
    font-size:13px;
    font-weight:700;
    line-height:1.45;
    overflow-wrap:anywhere;
}

@media screen and (max-width:572px){
    .viewModeSwitch{
        justify-content:stretch;
    }
    .viewModeButton{
        flex:1 1 50%;
        text-align:center;
    }
    .thumbGrid{
        grid-template-columns:repeat(2,minmax(0,1fr));
        gap:10px;
    }
    .thumbTitle{
        min-height:44px;
        padding:8px;
        font-size:12px;
    }
}


/* HistGraph v10: 3表示切替・説明ツールチップ */
.viewModeItem{
    display:flex;
    align-items:center;
    gap:3px;
    position:relative;
}
.viewModeInfo{
    position:relative;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:22px;
    height:22px;
    border-radius:50%;
    color:#64748b;
    font-size:14px;
    line-height:1;
    cursor:help;
    outline:none;
}
.viewModeInfo:hover,
.viewModeInfo:focus{
    color:#1f4e79;
    background:#edf2f7;
}
.viewModeTooltip{
    position:absolute;
    z-index:50;
    right:0;
    top:calc(100% + 8px);
    width:260px;
    padding:9px 11px;
    border:1px solid #cbd5e1;
    border-radius:7px;
    background:#fff;
    box-shadow:0 6px 18px rgba(15,23,42,0.14);
    color:#334155;
    font-size:12px;
    font-weight:400;
    line-height:1.6;
    text-align:left;
    visibility:hidden;
    opacity:0;
    pointer-events:none;
    transform:translateY(-3px);
    transition:opacity .12s ease, transform .12s ease, visibility .12s;
}
.viewModeTooltip:before{
    content:"";
    position:absolute;
    right:7px;
    top:-6px;
    width:10px;
    height:10px;
    border-left:1px solid #cbd5e1;
    border-top:1px solid #cbd5e1;
    background:#fff;
    transform:rotate(45deg);
}
.viewModeInfo:hover .viewModeTooltip,
.viewModeInfo:focus .viewModeTooltip,
.viewModeInfo:focus-within .viewModeTooltip{
    visibility:visible;
    opacity:1;
    transform:translateY(0);
}
.thumbSub{
    display:block;
    margin-top:3px;
    color:#64748b;
    font-size:11px;
    font-weight:400;
}
.threadAnchor{
    scroll-margin-top:12px;
}
.allThumbSummary{
    margin-top:-8px;
}

@media screen and (max-width:572px){
    .viewModeSwitch{
        flex-wrap:wrap;
    }
    .viewModeItem{
        flex:1 1 100%;
    }
    .viewModeItem .viewModeButton{
        flex:1 1 auto;
    }
    .viewModeInfo{
        flex:0 0 30px;
        min-width:30px;
        min-height:30px;
    }
    .viewModeTooltip{
        right:0;
        width:min(260px, calc(100vw - 72px));
    }
}

/* =========================================================
   HistGraph V11 ダウンロードランキング
   ========================================================= */
.rankingSummary{
    color:#64748b;
    font-size:13px;
    margin:-4px 0 14px;
}
.rankingCard{
    position:relative;
}
.rankingPosition{
    position:absolute;
    z-index:2;
    top:7px;
    left:7px;
    padding:3px 8px;
    border-radius:999px;
    background:rgba(31,41,51,.86);
    color:#fff;
    font-size:12px;
    font-weight:700;
    line-height:1.4;
}
.rankingCount{
    display:block;
    margin-top:6px;
    color:#0f766e;
    font-size:12px;
    font-weight:700;
}
.rankingButton{
    font-weight:700;
}
@media screen and (max-width:572px){
    .rankingPosition{font-size:11px;}
}
