a{
text-decoration:none;
color:#1a1a1a;
}
a:visited{
text-decoration:none;
color:#1a1a1a;
}
a:hover{
text-decoration:underline;
color:#333333;
}

a i{
margin-right:6px;
}
@import url('https://fonts.googleapis.com/css2?family=Josefin+Sans:wght@300;400&family=M+PLUS+1p:wght@400;700;800&display=swap');
html{
width:100%;
height:100%;
margin:0;
padding:0;
scroll-behavior:smooth;
}

body{
color:#1a1a1a;
font-family : -apple-system, BlinkMacSystemFont, "Segoe UI", "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Noto Sans JP", Meiryo, sans-serif;
background:#ffffff;
margin:0;
padding:0;
width:100%;
min-height:100vh;
display:flex;
flex-direction:column;
font-size:clamp(14px, 3.5vw, 16px);
line-height:1.6;
}

div#container{
text-align:center;
width:100%;
margin:0;
padding:0;
flex:1;
display:flex;
flex-direction:column;
border:none !important;
border-width:0 !important;
outline:none !important;
box-shadow:none !important;
}

#box_table{
border:none !important;
border-width:0 !important;
outline:none;
margin:0 auto;
margin-bottom:2rem;
padding:none;
width:100%;
max-width:1200px;
background:#ffffff;
flex:1;
}

#box_table_report{
border:none;
margin:0 auto;
padding:none;
width:80%;
max-width:80%;
background:transparent;
}

table#main{
width:100%;
border-collapse:collapse;
border-spacing:0;
border:none;
border-width:0;
outline:none;
padding:none;
word-break:break-all;
background-color:#ffffff;
}

div#report_box{
margin:10px auto;
width:80%;
max-width:80%;
text-align:center;
background:#ffffff;
padding:12px 0;
box-sizing:border-box;
}

table#report{
width:100%;
max-width:100%;
text-align:left;
border-collapse: collapse;
padding:none;
word-break:break-all;
font-size:85%;
background:#ffffff;
color:#1a1a1a;
}

table#report tr td{
padding:8px 12px;
line-height:1.4;
vertical-align:middle;
box-sizing:border-box;
color:#1a1a1a;
background:#ffffff;
}

table#report tr.boke_info td{
color:#1a1a1a;
background:#ffffff;
border-bottom:1px solid #e0e0e0;
}

table#report tr.list,
table#report tr.list td{
background-color:#ffffff !important;
border-bottom:1px solid #f0f0f0;
}

table#report a{
color:#1a1a1a;
}
table#report a:hover{
color:#00053a;
text-decoration:underline;
}

td{
padding:8px 12px;
font-size:clamp(14px, 3.5vw, 16px);
font-weight:normal;
text-align:center;
vertical-align:middle;
background-color:#ffffff;
border:none;
}

td.titlelist{
text-align:left;
vertical-align:top;
}
td.titlelist a{
font-size:1.5em;
}
/* 一覧：シーズンバッジとお題本文（または画像）の間隔 */
td.titlelist .season_badge{
display:inline-block;
margin-bottom:0.65em;
}
/* 一覧：お題セル（画像左・本文右） */
.index-odai-link{
text-decoration:none;
color:inherit;
display:block;
}
.index-odai-link:hover{
text-decoration:none;
}
.index-odai-cell{
display:flex;
align-items:center;
gap:0.75em;
}
.index-odai-cell-text-only{
display:block;
}
.index-odai-image{
flex-shrink:0;
}
.index-odai-image img{
max-height:160px;
width:auto;
height:auto;
object-fit:contain;
vertical-align:middle;
}
.index-odai-text{
flex:1;
min-width:0;
}

td.nolist{
width:40px;
}

td.infolist{
width:90px;
}

td.infolist i{
margin-right:4px;
}

/* 状態バッジ：アイコンと文字を正円で囲む */
span.status-circle{
display:inline-flex;
align-items:center;
justify-content:center;
min-width:4.8em;
min-height:4.8em;
width:4.8em;
height:4.8em;
padding:4px;
border:none;
border-radius:50%;
box-sizing:border-box;
font-size:clamp(12px, 2.8vw, 14px);
white-space:nowrap;
color:#ffffff;
}
span.status-circle i{
margin-right:3px;
margin-left:1px;
color:#ffffff;
}
/* 準備：濃いグレー */
span.status-circle.status-prep{ background-color:#555555; }
/* 投稿：青 */
span.status-circle.status-post{ background-color:#2563eb; }
/* 投票：緑 */
span.status-circle.status-vote{ background-color:#16a34a; }
/* 結果：オレンジ */
span.status-circle.status-result{ background-color:#ea580c; }
/* 掲示：赤 */
span.status-circle.status-display{ background-color:#dc2626; }
/* 凍結：濃い水色 */
span.status-circle.status-freeze{ background-color:#0d9488; }

td.limitlist{
width:140px;
color:#AAAAAA;
}

tr.header_title{
position:sticky;
top:0;
z-index:100;
}

tr.header_title td{
background-color:#1a1a1a;
color:#ffffff;
font-weight:600;
font-size:clamp(26px, 6.5vw, 34px);
text-align:left;
padding-top:18px;
padding-bottom:18px;
padding-left:30px;
padding-right:24px;
/* スマホでタイトルバー下の白い隙間が出ないよう同色で下に伸ばす */
box-shadow:0 2px 0 0 #1a1a1a;
}

/* #site_header：タイトルバーをdivで出力する場合（PCでzoom外・画面幅100%）・背景は#00053aで固定 */
#site_header.site_header,
.site_header{
position:sticky;
top:0;
z-index:100;
width:100%;
box-sizing:border-box;
background-color:#00053a !important;
color:#ffffff;
font-weight:600;
font-size:clamp(26px, 6.5vw, 34px);
text-align:left;
padding-top:18px;
padding-bottom:18px;
padding-left:max(30px, env(safe-area-inset-left));
padding-right:max(24px, env(safe-area-inset-right));
box-shadow:0 2px 0 0 #00053a !important;
}
.site_header .header_title_wrapper{
display:flex;
justify-content:space-between;
align-items:center;
width:100%;
max-width:1200px;
margin:0 auto;
box-sizing:border-box;
}
.site_header .header_title_left{ flex:0 1 auto; min-width:0; }
.site_header .header_title_right{ flex-shrink:0; position:relative; margin-left:12px; }
.site_header a{ color:#FFFFFF; }
.site_header a:hover{ text-decoration:none; }
.site_header .header_logo{ max-height:60px; height:auto; width:auto; vertical-align:middle; display:inline-block; margin-left:0; margin-right:6px; }
/* サイトタイトル（Adobe Fonts キット tld5vai：makinas-4-flat）＋ルビでOogiri Observatory */
.site_header .header_site_title{
display:inline-block;
vertical-align:middle;
font-family:"makinas-4-flat",sans-serif;
font-weight:400;
font-style:normal;
font-size:clamp(18px, 4.5vw, 26px);
font-weight:600;
margin-left:6px;
opacity:0.95;
color:#fff;
text-decoration:none;
}
.site_header .header_site_title ruby{ ruby-position:under; ruby-align:center; }
.site_header .header_site_title rt{ font-size:clamp(8px, 1.6vw, 10px); font-weight:400; letter-spacing:0.1em; opacity:0.85; }
.site_header .header_site_title:hover{
color:#fff;
text-decoration:none;
opacity:1;
}
.site_header .header_subtitle{ display:inline-block; vertical-align:middle; font-size:clamp(14px, 3.5vw, 20px); font-weight:300; margin-left:12px; opacity:0.95; }
.site_header .header_hamburger{ display:flex; align-items:center; justify-content:center; width:56px; height:56px; padding:0; border:none; background:transparent; color:inherit; cursor:pointer; border-radius:10px; -webkit-tap-highlight-color:transparent; }
.site_header .header_hamburger:hover,
.site_header .header_hamburger:focus{ background:rgba(255,255,255,0.12); outline:none; }
.site_header .header_hamburger_icon{ display:block; width:38px; height:20px; position:relative; }
.site_header .header_login_name{ display:inline-flex; align-items:center; gap:6px; }
.site_header .header_avatar{ width:24px; height:24px; border-radius:50%; object-fit:cover; vertical-align:middle; }
.site_header .header_nav_dropdown{
position:fixed;
left:50%;
width:100%;
max-width:1200px;
top:96px;
margin:0;
min-width:0;
background:#00053a;
border:none;
border-top:1px solid rgba(255,255,255,.08);
border-radius:0;
box-shadow:0 8px 32px rgba(10,20,40,.5);
padding:16px 0 24px;
padding-left:max(28px, env(safe-area-inset-left));
padding-right:max(28px, env(safe-area-inset-right));
visibility:hidden;
opacity:0;
transform:translateX(-50%) scaleY(0);
transform-origin:top;
transition:transform .28s cubic-bezier(0.33,1,0.68,1), opacity .25s ease, visibility 0s linear .28s;
z-index:99;
list-style:none;
box-sizing:border-box;
font-size:19px;
}
.site_header .header_nav_dropdown.is-open{
visibility:visible;
opacity:1;
transform:translateX(-50%) scaleY(1);
transition:transform .28s cubic-bezier(0.33,1,0.68,1), opacity .25s ease, visibility 0s linear 0s;
}
.site_header .header_nav_dropdown a{
display:block;
width:100%;
box-sizing:border-box;
padding:18px 0;
padding-left:max(24px, env(safe-area-inset-left));
padding-right:max(24px, env(safe-area-inset-right));
color:#e8e6e3;
text-decoration:none;
border-bottom:2px solid rgba(255,255,255,.12);
font-size:19px;
line-height:1.4;
white-space:nowrap;
letter-spacing:0.02em;
transition:background .2s ease, color .2s ease;
text-align:left;
}
.site_header .header_nav_dropdown a:last-child{ border-bottom:none; }
.site_header .header_nav_dropdown a:hover{ background:rgba(255,255,255,.12); color:#fff; }
.site_header .header_nav_dropdown a:active{ background:rgba(255,255,255,.18); }
.site_header .header_nav_dropdown a.current{ background:rgba(255,255,255,.14); color:#fff; }
.site_header .header_nav_dropdown a i{ margin-right:14px; width:22px; text-align:left; font-size:1.05em; opacity:0.95; }
.site_header .header_nav_sublinks{ display:block; padding:0 0 4px 0; }
.site_header .header_nav_sublinks a{ padding:10px 0 10px 42px; font-size:14px; border-bottom:1px solid rgba(255,255,255,.08); }
.site_header .header_nav_sublinks a:last-child{ border-bottom:none; }
.site_header .header_nav_label{
display:block;
box-sizing:border-box;
padding:18px 0;
padding-left:max(24px, env(safe-area-inset-left));
padding-right:max(24px, env(safe-area-inset-right));
color:#e8e6e3;
border-bottom:2px solid rgba(255,255,255,.12);
font-size:19px;
line-height:1.4;
letter-spacing:0.02em;
text-align:left;
cursor:default;
}
.site_header .header_nav_label i{ margin-right:14px; width:22px; text-align:left; }
.site_header .header_nav_dropdown .sidebar_copyright{ display:none; }
.site_header .header_hamburger_icon::before,
.site_header .header_hamburger_icon::after{
content:"";
position:absolute;
left:0;
width:100%;
height:3px;
background:currentColor;
border-radius:2px;
transition:transform .2s ease, top .2s ease;
}
.site_header .header_hamburger_icon::before{ top:0; }
.site_header .header_hamburger_icon{ background:linear-gradient(to bottom, transparent 8.5px, currentColor 8.5px, currentColor 11.5px, transparent 11.5px); background-origin:border-box; }
.site_header .header_hamburger_icon::after{ top:17px; }
.site_header .header_hamburger[aria-expanded="true"] .header_hamburger_icon::before{ top:8.5px; transform:rotate(45deg); }
.site_header .header_hamburger[aria-expanded="true"] .header_hamburger_icon::after{ top:8.5px; transform:rotate(-45deg); }
.site_header .header_hamburger[aria-expanded="true"] .header_hamburger_icon{ background:transparent; }
.site_header .header_external_link{ flex-shrink:0; color:#FFFFFF; margin-left:12px; }
.site_header .header_external_link:hover{ opacity:0.9; color:#FFFFFF; }

/* タイトルバー内のラッパー：flexで左にタイトル・右にアイコンを配置（tdにflexを当てると表レイアウトが崩れるため） */
tr.header_title td .header_title_wrapper{
display:flex;
justify-content:space-between;
align-items:center;
width:100%;
box-sizing:border-box;
}

tr.header_title td a{
color:#FFFFFF;
}
tr.header_title td a:hover{
text-decoration:none;
}

/* タイトルバーロゴ画像：高さに収まるよう自動調整（スマホ・PC共通） */
tr.header_title td .header_logo{
max-height:60px;
height:auto;
width:auto;
vertical-align:middle;
display:inline-block;
margin-left:0;
margin-right:6px;
}

/* タイトルバー：ロゴ右横のサイトタイトル（Adobe Fonts：makinas-4-flat）＋ルビでOogiri Observatory */
tr.header_title td .header_site_title{
display:inline-block;
vertical-align:middle;
font-family:"makinas-4-flat",sans-serif;
font-weight:400;
font-style:normal;
font-size:clamp(18px, 4.5vw, 26px);
font-weight:600;
margin-left:6px;
opacity:0.95;
color:#fff;
text-decoration:none;
}
tr.header_title td .header_site_title ruby{ ruby-position:under; ruby-align:center; }
tr.header_title td .header_site_title rt{ font-size:clamp(8px, 1.6vw, 10px); font-weight:400; letter-spacing:0.1em; opacity:0.85; }
tr.header_title td .header_site_title:hover{
color:#fff;
text-decoration:none;
opacity:1;
}
/* タイトルバー：ロゴ右横のサブタイトル */
tr.header_title td .header_subtitle{
display:inline-block;
vertical-align:middle;
font-size:clamp(14px, 3.5vw, 20px);
font-weight:300;
margin-left:12px;
opacity:0.95;
}

/* タイトルバー：左側（サイト名・サブタイトル）のラッパー */
tr.header_title td .header_title_left{
flex:0 1 auto;
min-width:0;
}

/* タイトルバー右側：ハンバーガーメニュー */
tr.header_title td .header_title_right{
flex-shrink:0;
position:relative;
margin-left:12px;
}
tr.header_title td .header_hamburger{
display:flex;
align-items:center;
justify-content:center;
width:56px;
height:56px;
padding:0;
border:none;
background:transparent;
color:inherit;
cursor:pointer;
border-radius:10px;
-webkit-tap-highlight-color:transparent;
}
tr.header_title td .header_hamburger:hover,
tr.header_title td .header_hamburger:focus{
background:rgba(255,255,255,0.12);
outline:none;
}
tr.header_title td .header_hamburger_icon{
display:block;
width:38px;
height:20px;
position:relative;
}
tr.header_title td .header_hamburger_icon::before,
tr.header_title td .header_hamburger_icon::after{
content:"";
position:absolute;
left:0;
width:100%;
height:3px;
background:currentColor;
border-radius:2px;
transition:transform .2s ease, top .2s ease;
}
tr.header_title td .header_hamburger_icon::before{
top:0;
}
tr.header_title td .header_hamburger_icon{
background:linear-gradient(to bottom, transparent 8.5px, currentColor 8.5px, currentColor 11.5px, transparent 11.5px);
background-origin:border-box;
}
tr.header_title td .header_hamburger_icon::after{
top:17px;
}
tr.header_title td .header_hamburger[aria-expanded="true"] .header_hamburger_icon::before{
top:8.5px;
transform:rotate(45deg);
}
tr.header_title td .header_hamburger[aria-expanded="true"] .header_hamburger_icon::after{
top:8.5px;
transform:rotate(-45deg);
}
tr.header_title td .header_hamburger[aria-expanded="true"] .header_hamburger_icon{
background:transparent;
}
/* ヘッダー内ログイン表示：プロフィール画像（丸型） */
tr.header_title td .header_login_name{
display:inline-flex;
align-items:center;
gap:6px;
}
tr.header_title td .header_avatar{
width:24px;
height:24px;
border-radius:50%;
object-fit:cover;
vertical-align:middle;
}
/* ドロップダウンメニュー（最大1200px・中央寄せ・ネイビー基調・カーテン表示） */
tr.header_title td .header_nav_dropdown{
position:fixed;
left:50%;
width:100%;
max-width:1200px;
top:96px;
margin:0;
min-width:0;
background:#00053a;
border:none;
border-top:1px solid rgba(255,255,255,.08);
border-radius:0;
box-shadow:0 8px 32px rgba(10,20,40,.5);
padding:16px 0 24px;
padding-left:max(28px, env(safe-area-inset-left));
padding-right:max(28px, env(safe-area-inset-right));
visibility:hidden;
opacity:0;
transform:translateX(-50%) scaleY(0);
transform-origin:top;
transition:transform .28s cubic-bezier(0.33,1,0.68,1), opacity .25s ease, visibility 0s linear .28s;
z-index:99;
list-style:none;
box-sizing:border-box;
font-size:19px;
}
tr.header_title td .header_nav_dropdown.is-open{
visibility:visible;
opacity:1;
transform:translateX(-50%) scaleY(1);
transition:transform .28s cubic-bezier(0.33,1,0.68,1), opacity .25s ease, visibility 0s linear 0s;
}
tr.header_title td .header_nav_dropdown a{
display:block;
width:100%;
box-sizing:border-box;
padding:18px 0;
padding-left:max(24px, env(safe-area-inset-left));
padding-right:max(24px, env(safe-area-inset-right));
color:#e8e6e3;
text-decoration:none;
border-bottom:2px solid rgba(255,255,255,.12);
font-size:19px;
line-height:1.4;
white-space:nowrap;
letter-spacing:0.02em;
transition:background .2s ease, color .2s ease;
text-align:left;
}
tr.header_title td .header_nav_dropdown a:last-child{
border-bottom:none;
}
tr.header_title td .header_nav_dropdown a:hover{
background:rgba(255,255,255,.12);
color:#fff;
}
tr.header_title td .header_nav_dropdown a:active{
background:rgba(255,255,255,.18);
}
tr.header_title td .header_nav_dropdown a.current{
background:rgba(255,255,255,.14);
color:#fff;
}
tr.header_title td .header_nav_dropdown a i{
margin-right:14px;
width:22px;
text-align:left;
font-size:1.05em;
opacity:0.95;
}

/* アコーディオン内の小見出し＋サブリンク用（将来用に残置） */
tr.header_title td .header_nav_sublinks{
display:block;
padding:0 0 4px 0;
}
tr.header_title td .header_nav_sublinks a{
padding:10px 0 10px 42px;
font-size:14px;
border-bottom:1px solid rgba(255,255,255,.08);
}
tr.header_title td .header_nav_sublinks a:last-child{
border-bottom:none;
}
tr.header_title td .header_nav_label{
display:block;
box-sizing:border-box;
padding:18px 0;
padding-left:max(24px, env(safe-area-inset-left));
padding-right:max(24px, env(safe-area-inset-right));
color:#e8e6e3;
border-bottom:2px solid rgba(255,255,255,.12);
font-size:19px;
line-height:1.4;
letter-spacing:0.02em;
text-align:left;
cursor:default;
}
tr.header_title td .header_nav_label i{
margin-right:14px;
width:22px;
text-align:left;
font-size:1.05em;
opacity:0.95;
}

/* タイトルバー：外部リンク（大喜利天文台2部）アイコン */
tr.header_title td .header_external_link{
flex-shrink:0;
color:#FFFFFF;
margin-left:12px;
}
tr.header_title td .header_external_link:hover{
opacity:0.9;
color:#FFFFFF;
}

/* 設定画面のロゴプレビュー用 */
img.setting_logo_preview{
max-height:40px;
height:auto;
width:auto;
vertical-align:middle;
}

tr.header_info td{
text-align:center;
background-color:#B0D0E6;
font-weight:bold;
font-size:clamp(14px, 3.5vw, 16px);
padding:14px 20px;
}

tr.header_description td{
text-align:left;
background-color:#FFFFF0;
font-weight:bold;
font-size:clamp(13px, 3.2vw, 15px);
padding:14px 20px;
}

tr.header_description td table{
border-collapse: collapse;
border:2px solid #444444;
}

tr.header1 td{
text-align:left;
background-color:#f5f5f5;
font-weight:500;
font-size:clamp(13px, 3.5vw, 16px);
color:#1a1a1a;
padding:16px 20px;
}

tr.header1 td i{
margin-right:8px;
color:#1a1a1a;
}

tr.header1_report td{
text-align:center;
background-color:#B0D0E6;
font-weight:bold;
font-size:90%;
}

tr.header2 td{
text-align:left;
background-color:#fafafa;
font-weight:500;
font-size:clamp(14px, 3.5vw, 17px);
color:#1a1a1a;
padding:16px 20px;
}

/* お題見出し行：背景を白に */
tr.header2.header_odai td{
background-color:#fff;
}

td.menutab{
padding-top:16px;
padding-bottom:16px;
line-height:2.5;
}

td.menubody{
text-align:left;
font-weight:bold;
font-size:clamp(14px, 3.5vw, 16px);
padding:8px 0;
}

.header_tweet{
margin:5px 0;
}

tr.odai td{
text-align:center;
padding:72px 20px;
font-weight:400;
color:#1a1a1a;
font-size:1.9em;
line-height:1.6;
word-wrap:break-word;
overflow-wrap:break-word;
}

tr.odai.odai_left td{
text-align:left;
font-size:1.9em;
line-height:1.7;
}

tr.odai td img{
margin:24px 0;
}

/* マイページ：1部在籍シーズン・成績の見出しと内容をやや小さく */
tr.header1.mypage-section-header td{
font-size:clamp(11px, 2.8vw, 14px);
}
tr.odai.mypage-profile-card td{
font-size:1em;
}

/* 結果フェーズ：お題と作品の間に区切り線（作品行と同じ） */
#box_table.result-phase table#main tr.odai td{
border-bottom:1px solid #f0f0f0;
}

/* 結果フェーズ：各作品を3段カード表示（ヘッダー・本文・フッター） */
#box_table.result-phase table#main tr.result-work-row td.result-work-cell{
vertical-align:top;
padding:0;
border-bottom:1px solid #f0f0f0;
}
#box_table.result-phase .result-work{
padding:16px 28px 20px;
text-align:left;
}
#box_table.result-phase .result-work-header{
display:flex;
align-items:center;
justify-content:space-between;
flex-wrap:wrap;
gap:8px 12px;
margin-bottom:12px;
}
#box_table.result-phase .result-work-header .result-rank-badge{
display:inline-flex;
align-items:center;
justify-content:center;
min-width:3em;
height:2em;
padding:0 10px;
border-radius:6px;
color:#fff;
font-weight:600;
font-size:1.1em;
line-height:1;
flex-shrink:0;
}
#box_table.result-phase .result-work-header .result-rank-badge.result-rank-1{
background-color:#d4af37;
color:#fff;
}
#box_table.result-phase .result-work-header .result-rank-badge.result-rank-2{
background-color:#a8a8a8;
}
#box_table.result-phase .result-work-header .result-rank-badge.result-rank-3{
background-color:#b87333;
}
#box_table.result-phase .result-work-header .result-rank-badge.result-rank-4{
background-color:#00053a;
}
#box_table.result-phase .result-work-author{
flex:1;
min-width:0;
display:flex;
align-items:center;
}
#box_table.result-phase .result-work-author .result-author-with-avatar{
gap:8px;
font-size:1.35em;
}
#box_table.result-phase .result-work-author .result-author-avatar{
width:40px;
height:40px;
border-radius:50%;
object-fit:cover;
}
#box_table.result-phase .result-work-actions{
display:flex;
align-items:center;
gap:6px;
flex-shrink:0;
}
#box_table.result-phase .result-work-actions .boke-like-btn{
margin-right:0;
font-size:1.45em;
}
#box_table.result-phase .result-work-actions .screenshot-btn{
position:static;
width:44px;
height:44px;
border-radius:8px;
background:rgba(0,0,0,0.06);
font-size:1.2em;
}
#box_table.result-phase .result-work-body{
margin-bottom:12px;
}
#box_table.result-phase .result-work-body .bokebody{
font-size:1.9em;
font-weight:500;
line-height:1.5;
color:#1a1a1a;
}
#box_table.result-phase .result-work-footer{
display:flex;
align-items:center;
justify-content:flex-start;
flex-wrap:wrap;
gap:0;
font-size:1.25em;
color:#555;
}
#box_table.result-phase .result-work-footer .result-point-line{
display:inline;
font-size:1em;
padding-right:0.35em;
}
#box_table.result-phase .result-point-sep{
padding:0 0.35em;
}
#box_table.result-phase .result-point-breakdown{
display:flex;
align-items:center;
flex-wrap:wrap;
gap:4px 10px;
font-size:1em;
margin-left:0;
}
#box_table.result-phase .result-point-breakdown::before{
content:"｜";
padding:0 0.35em;
}
#box_table.result-phase .result-work .cmt_name,
#box_table.result-phase .result-work .cmt_body,
#box_table.result-phase .result-work .result-voters-accordion{
margin-top:8px;
font-size:0.9em;
}
#box_table.result-phase .result-work.grayout .result-work-body .bokebody,
#box_table.result-phase td.result-work-cell.grayout .result-work-body .bokebody{
opacity:0.6;
}

/* 投票フェーズ途中経過：結果フェーズと同じ順位・得点デザイン＋名前はやや大きく左寄せ */
#box_table_report td.result-phase-point-wrap{
width:1%;
max-width:6.5em;
vertical-align:middle;
}
#box_table_report .result-rank-line{
display:block;
margin-bottom:0.2em;
}
#box_table_report .result-rank-badge{
display:inline-flex;
align-items:center;
justify-content:center;
width:2em;
height:2em;
border-radius:50%;
color:#ffffff;
font-weight:600;
font-size:1.1em;
line-height:1;
}
#box_table_report .result-rank-badge.result-rank-1{ background-color:#d4af37; }
#box_table_report .result-rank-badge.result-rank-2{ background-color:#a8a8a8; }
#box_table_report .result-rank-badge.result-rank-3{ background-color:#b87333; }
#box_table_report .result-rank-badge.result-rank-4{ background-color:#00053a; }
#box_table_report .result-point-line{
display:block;
font-size:0.9em;
color:#1a1a1a;
}
#box_table_report .result-point-sep{
padding:0 0.35em;
}
#box_table_report .result-point-line .num1,
#box_table_report .num1{
color:#1a1a1a;
}
#box_table_report td.report-name-cell{
text-align:left;
font-size:1.35em;
padding:10px 12px;
color:#1a1a1a;
}
#box_table_report td.report-name-cell .result-author-with-avatar{
font-size:1.25em;
gap:10px;
}
#box_table_report td.report-name-cell .result-author-avatar{
width:40px;
height:40px;
}

tr.postcell td{
padding:none;
background-color:#ffffff;
}

tr.postcell td table{
margin:10px 0px !important;
border:none;
width:100%;
}

tr.postform td{
border:none;
padding:16px 20px;
font-weight:normal;
background-color:#ffffff;
}

td.form_l{
text-align:right;
width:130px;
}

td.form_r{
text-align:left;
}

td.form_center{
text-align:center;
width:100%;
}

.form_label{
font-weight:500;
margin-bottom:10px;
color:#1a1a1a;
font-size:clamp(14px, 3.5vw, 16px);
}

/* 投稿フェーズ：自分の投稿済み作品一覧（名前とボケの間）・テキストボックス幅に揃える */
ul.my-posted-bokes{
list-style:none;
margin:8px auto 16px auto;
padding:12px 16px;
width:800px;
max-width:100%;
box-sizing:border-box;
background:#f5f5f5;
border-radius:8px;
border:1px solid #e0e0e0;
text-align:left;
}
ul.my-posted-bokes li{
margin:6px 0;
padding:4px 0;
font-size:clamp(13px, 3vw, 15px);
word-break:break-word;
}

input.inputform{
color:#1a1a1a;
border:1px solid #e0e0e0;
border-radius:8px;
width:70%;
max-width:500px;
margin:0 auto;
display:block;
padding:14px 18px;
font-size:clamp(16px, 4vw, 18px);
background-color:#ffffff;
transition:border-color 0.2s;
}

input.inputform:focus{
outline:none;
border-color:#1a1a1a;
}

input.inputform2{
color:#222222;
border:1px solid #777777;
width:70px;
}

input.inputpass{
color:#222222;
border:1px solid #777777;
width:100px;
}

input.inputbodyform{
color:#1a1a1a;
border:1px solid #e0e0e0;
border-radius:8px;
width:70%;
max-width:500px;
margin:0 auto;
display:block;
padding:14px 18px;
font-size:clamp(16px, 4vw, 18px);
background-color:#ffffff;
transition:border-color 0.2s;
}

input.inputbodyform:focus{
outline:none;
border-color:#1a1a1a;
}

input.inputfile{
margin:3px 0;
width:200px;
}

tr.postednamecell td{
font-weight:normal;
background-color:#fafafa;
color:#1a1a1a;
}

div.postedname{
text-align:left;
font-size:clamp(14px, 3.5vw, 16px);
word-break:break-all;
color:#1a1a1a;
padding:4px 0;
}

div.postednum{
text-align:center;
font-size:clamp(14px, 3.5vw, 16px);
color:#1a1a1a;
font-weight:500;
padding:4px 0;
}

textarea{
width:70%;
max-width:500px;
height:200px;
color:#1a1a1a;
border:1px solid #e0e0e0;
border-radius:8px;
margin:0 auto;
display:block;
padding:14px 18px;
font-size:clamp(16px, 4vw, 18px);
background-color:#ffffff;
font-family:inherit;
resize:vertical;
transition:border-color 0.2s;
line-height:1.6;
}

textarea:focus{
outline:none;
border-color:#1a1a1a;
}

.pre_textarea{
width:350px;
height:100px;
color:#222222;
border:1px solid #777777;
}

input.button,
button.button,
a.button{
color:#ffffff;
background-color:#1a1a1a;
border:none;
border-radius:8px;
margin:0 auto;
padding:16px 40px;
font-size:clamp(16px, 4vw, 18px);
font-weight:500;
cursor:pointer;
transition:background-color 0.2s, transform 0.1s;
min-width:140px;
text-decoration:none;
}
input.button{ display:block; }
button.button,
a.button{ display:inline-block; }
a.button:hover,
button.button:hover{
background-color:#333333;
transform:translateY(-1px);
}

/* 投稿・投票フェーズのテキストボックスおよびボタン：横幅800px */
tr.postcell input.inputform{
width:800px;
max-width:100%;
}
tr.postcell input.inputbodyform{
width:800px;
max-width:100%;
}
tr.postcell textarea{
width:800px;
max-width:100%;
}
tr.postcell input.button{
width:800px;
max-width:100%;
box-sizing:border-box;
}

.button-wrapper{
display:inline-flex;
align-items:center;
justify-content:center;
}

.button-wrapper i{
margin-right:8px;
color:#ffffff;
font-size:1.1em;
vertical-align:middle;
}

.button-wrapper input.button{
margin:0;
}

input.button:hover{
background-color:#333333;
transform:translateY(-1px);
}

input.button:active{
transform:translateY(0);
}

/* 危険操作用ボタン（削除など） */
button.button-danger,
a.button-danger,
input.button-danger{
background-color:#c00;
color:#fff;
border-radius:8px;
padding:8px 16px;
text-decoration:none;
display:inline-block;
cursor:pointer;
font-size:inherit;
border:none;
font-weight:500;
}
button.button-danger:hover,
a.button-danger:hover,
input.button-danger:hover{
background-color:#e00;
}

/* ユーザー一覧：操作列（編集＝アコーディオン開閉のみ） */
td.user_actions_cell button.button{
padding:16px 40px;
min-width:140px;
font-size:clamp(16px, 4vw, 18px);
box-sizing:border-box;
}

/* ユーザー一覧：アコーディオン（成績・パスワードは通常時非表示） */
tr.admin-user-detail{
display:none;
}
tr.admin-user-detail.is-open{
display:table-row;
}
td.admin-user-detail-cell{
background:rgba(0,0,0,0.04);
padding:1rem 1.25rem;
vertical-align:top;
}
.admin-user-detail-inner{
max-width:600px;
}
.admin-user-detail-inner .admin-user-detail-label{
display:block;
font-weight:600;
font-size:0.9em;
margin-bottom:0.25rem;
}
.admin-user-detail-inner .admin-user-detail-form{
display:flex;
flex-wrap:wrap;
align-items:flex-start;
gap:0.5rem;
margin-top:0.75rem;
}
.admin-user-detail-inner .admin-user-detail-form:first-child{
margin-top:0;
}
.admin-user-detail-inner .admin-user-detail-form .admin-user-seiseki-textarea{
flex:1 1 100%;
width:100%;
min-width:200px;
max-width:100%;
box-sizing:border-box;
resize:vertical;
}
.admin-user-detail-inner .admin-user-detail-form .admin-user-seiseki-textarea + .button{
flex-shrink:0;
}
/* パスワード変更：入力欄は成績と同じ幅・変更ボタンは入力欄の下 */
.admin-user-detail-inner .admin-user-password-form{
flex-direction:column;
align-items:stretch;
}
.admin-user-detail-inner .admin-user-password-input{
width:100%;
min-width:200px;
max-width:100%;
box-sizing:border-box;
}
.admin-user-detail-inner .admin-user-password-form .button{
align-self:flex-start;
margin-top:0.35rem;
}
/* 削除ボタンは変更ボタンの下 */
.admin-user-detail-inner .admin-user-delete-wrap{
margin:0.75rem 0 0;
padding:0;
}
.admin-user-detail-inner .admin-user-delete-wrap .button-danger{
display:inline-block;
}

div.footer_f form input.button.admin-button{
display:inline-block;
padding:6px 12px;
font-size:12px;
min-width:auto;
margin:0;
}

form.inlineform{
display:inline;
margin-right:10px;
}

/* 管理人モード：お題一覧・新規お題作成等のボタンを横並びにする */
td.menutab form.inlineform input.button{
display:inline-block;
margin:0;
min-width:auto;
}

/* 管理人モード：お題編集・新規お題作成フォーム（table直下にformを置かないよう内側テーブルでラップ） */
td.odai-edit-cell{
padding:0;
vertical-align:top;
}
table.odai-edit-table{
width:100%;
border-collapse:collapse;
}
table.odai-edit-table tr{
border-bottom:1px solid #e0e0e0;
}
table.odai-edit-table td{
padding:8px 12px;
vertical-align:top;
}
table.odai-edit-table .edit_l,
table.odai-edit-table .edit_r{
padding:8px 12px;
}

/* 管理人モード：部の管理 削除確認 */
.division-delete-confirm{
margin:0.5em 0 1em;
padding:1em;
background:#fff8f8;
border:1px solid #f0c0c0;
border-radius:8px;
}
.division-delete-confirm p:first-child{ margin-top:0; }
.division-delete-confirm p:last-child{ margin-bottom:0; }
.hero-upload-cell .hero-upload-note{ margin:0.3em 0 0; font-size:0.9em; }
.division-delete-confirm input.odai-list-btn-danger{
background:#c00;
color:#fff;
border:1px solid #a00;
padding:0.35em 0.8em;
cursor:pointer;
border-radius:4px;
}
.division-delete-confirm input.odai-list-btn-danger:hover{
background:#e00;
color:#fff;
border-color:#c00;
}
/* 部の管理：一覧の「削除」リンク（文字白抜き赤ボタン） */
a.odai-list-btn-danger{
display:inline-block;
background:#c00;
color:#fff;
border:1px solid #a00;
padding:0.35em 0.8em;
border-radius:4px;
text-decoration:none;
}
a.odai-list-btn-danger:hover{
background:#e00;
color:#fff;
border-color:#c00;
}

/* 管理人モード：お題一覧の1部・2部タブ */
tr.admin_odai_tabs_row td.admin_odai_tabs_cell{
padding:10px 0;
vertical-align:middle;
border-bottom:1px solid #ccc;
}
a.admin_odai_tab{
display:inline-block;
padding:10px 24px;
margin:0 4px;
background:#e0e0e0;
color:#333;
border-radius:4px;
text-decoration:none;
font-weight:normal;
}
a.admin_odai_tab:hover{
background:#d0d0d0;
text-decoration:none;
color:#333;
}
a.admin_odai_tab.current{
background:#333;
color:#fff;
font-weight:bold;
}

span.odaidata{
font-size:75%;
padding:0;
margin:0;
border-right:none;
font-weight:normal;
display:inline-block;
}

span.odaidata a{
color:#888888;
}

/* お題一覧の操作リンクをボタン風に */
span.odaidata a.odai-list-btn{
display:inline-block;
padding:8px 16px;
margin:4px;
background:#e8e8e8;
color:#333;
border:1px solid #ccc;
border-radius:4px;
text-decoration:none;
font-size:15px;
line-height:1.3;
}
span.odaidata a.odai-list-btn:hover{
background:#d0d0d0;
border-color:#aaa;
color:#222;
text-decoration:none;
}
span.odaidata a.odai-list-btn:active{
background:#c0c0c0;
}
/* お題一覧の削除ボタン（赤） */
span.odaidata a.odai-list-btn-danger{
background:#c00;
color:#fff;
border-color:#a00;
}
span.odaidata a.odai-list-btn-danger:hover{
background:#e00;
color:#fff;
border-color:#c00;
}
span.odaidata a.odai-list-btn-danger:active{
background:#a00;
}

tr.footer_pagenav td{
text-align:left;
background-color:#ffffff;
}

tr.footer_menu td{
text-align:center;
background-color:#1a1a1a;
color:#ffffff;
border-top:1px solid #333333;
padding:12px;
}

tr.footer_menu td a{
color:#ffffff;
}

tr.footer_menu td a:hover{
color:#cccccc;
}

.limit{
color:#1a1a1a;
font-weight:500;
}

td.limitlist .limit{
color:#AAAAAA;
}

.rank{
font-size:clamp(12px, 3vw, 14px);
}

/* 一言・穴埋めお題：参加者が入力した部分の文字色（オレンジ） */
.anaume{
color:#e67e22;
font-weight:500;
}

tr.boke_info td{
background-color:#f5f5f5;
font-size:clamp(13px, 3.2vw, 15px);
color:#1a1a1a;
font-weight:500;
padding:14px 16px;
}

tr.boke_info td i{
margin-right:8px;
color:#1a1a1a;
}

td.point_info{
width:30px;
}

td.boke_cell{
text-align:left;
font-size:clamp(14px, 3.5vw, 16px);
padding:40px 20px;
color:#1a1a1a;
background-color:#ffffff;
line-height:1.6;
}

td.boke_cell a{
color:#1a1a1a;
text-decoration:none;
}

td.boke_cell a:hover{
color:#333333;
}

td.boke_cell2{
text-align:left;
background-color:#ffffff;
padding:24px 20px;
font-size:clamp(14px, 3.5vw, 16px);
color:#1a1a1a;
line-height:1.7;
}

/* 作品セル：いいね＋スクリーンショット用アイコンを右上に配置（ハートがスクリーンショットの左） */
.boke_cell_inner{
position:relative;
}
.boke_cell_top_right{
position:absolute;
top:8px;
right:8px;
display:flex;
align-items:center;
gap:6px;
z-index:1;
}
/* 結果フェーズ：ハート・スクリーンショット用アイコンを1行上に配置 */
#box_table.result-phase .boke_cell_top_right{
top:calc(8px - 1.7em);
}
.boke_cell_top_right .boke-like-btn{
font-size:1.25em;
}
.boke_cell_top_right .screenshot-btn{
position:static;
}
.screenshot-btn{
position:absolute;
top:8px;
right:8px;
width:36px;
height:36px;
padding:0;
border:none;
border-radius:8px;
background:rgba(0,0,0,0.06);
color:#555;
cursor:pointer;
display:flex;
align-items:center;
justify-content:center;
font-size:16px;
-webkit-tap-highlight-color:transparent;
z-index:1;
}
.screenshot-btn:hover{
background:rgba(0,0,0,0.12);
color:#1a1a1a;
}
.screenshot-btn:focus{
outline:2px solid #1a1a1a;
outline-offset:2px;
}

/* スクリーンショット用モーダル：タイトルバー・お題見出し・お題・作品セルを表示 */
.screenshot_modal{
position:fixed;
inset:0;
z-index:10000;
display:flex;
align-items:flex-start;
justify-content:center;
padding:0;
box-sizing:border-box;
overflow-y:auto;
}
.screenshot_modal[hidden]{
display:none !important;
}
.screenshot_modal_backdrop{
position:fixed;
inset:0;
background:rgba(0,0,0,0.6);
z-index:10001;
opacity:0;
transition:opacity 0.25s ease;
}
.screenshot_modal.is-open .screenshot_modal_backdrop{
opacity:1;
}
.screenshot_modal_content{
position:relative;
z-index:10002;
width:100%;
max-width:100%;
margin:0 auto;
background:#fff;
box-shadow:0 8px 32px rgba(0,0,0,0.25);
border-radius:8px;
overflow:hidden;
opacity:0;
transform:scale(0.97);
transition:opacity 0.25s ease, transform 0.25s ease;
}
.screenshot_modal.is-open .screenshot_modal_content{
opacity:1;
transform:scale(1);
}
.screenshot_modal_close{
position:absolute;
top:12px;
right:12px;
width:40px;
height:40px;
padding:0;
border:none;
border-radius:8px;
background:rgba(0,0,0,0.08);
color:#1a1a1a;
cursor:pointer;
display:flex;
align-items:center;
justify-content:center;
font-size:18px;
z-index:10;
}
.screenshot_modal_close:hover{
background:rgba(0,0,0,0.15);
}
.screenshot_table{
width:100%;
border-collapse:collapse;
border:none;
}
.screenshot_table tr.header_title td,
.screenshot_table tr.header2 td,
.screenshot_table tr.odai td,
.screenshot_table tr td.boke_cell2{
border:1px solid #e0e0e0;
}
.screenshot_table tr.odai td{
padding:72px 20px;
}
/* モーダル内：結果フェーズと同じ3段カードレイアウト */
.screenshot_table tr.screenshot_modal_work_row td.screenshot_modal_work_cell{
vertical-align:top;
padding:0;
border:1px solid #e0e0e0;
}
#screenshot_work_slot{
padding:0;
}
#screenshot_work_slot .result-work-modal{
padding:24px 32px 28px;
text-align:left;
}
#screenshot_work_slot .result-work-header{
display:flex;
align-items:center;
justify-content:space-between;
flex-wrap:wrap;
gap:8px 12px;
margin-bottom:14px;
}
#screenshot_work_slot .result-rank-badge{
display:inline-flex;
align-items:center;
justify-content:center;
min-width:3em;
height:2em;
padding:0 10px;
border-radius:6px;
color:#1a1a1a;
font-weight:600;
font-size:1.1em;
line-height:1;
}
#screenshot_work_slot .result-rank-badge.result-rank-1{
background-color:#d4af37;
color:#fff;
}
#screenshot_work_slot .result-rank-badge.result-rank-2{
background-color:#a8a8a8;
color:#fff;
}
#screenshot_work_slot .result-rank-badge.result-rank-3{
background-color:#b87333;
color:#fff;
}
#screenshot_work_slot .result-rank-badge.result-rank-4{
background-color:#00053a;
color:#fff;
}
#screenshot_work_slot .result-work-author{
flex:1;
min-width:0;
font-size:1.35em;
}
#screenshot_work_slot .result-work-author .result-author-avatar{
width:40px;
height:40px;
}
#screenshot_work_slot .result-work-body .bokebody{
margin:0;
padding:0;
font-size:1.9em;
line-height:1.6;
font-weight:500;
color:#1a1a1a;
}
#screenshot_work_slot .result-work-footer{
display:flex;
align-items:center;
justify-content:flex-start;
flex-wrap:wrap;
gap:0;
font-size:1.25em;
color:#555;
margin-top:12px;
}
#screenshot_work_slot .result-work-footer .result-point-line{
display:inline;
font-size:1em;
padding-right:0.35em;
}
#screenshot_work_slot .result-point-sep{
padding:0 0.35em;
}
#screenshot_work_slot .result-point-breakdown{
display:flex;
align-items:center;
flex-wrap:wrap;
gap:4px 10px;
font-size:1em;
margin-left:0;
}
#screenshot_work_slot .result-point-breakdown::before{
content:"｜";
padding:0 0.35em;
}

/* 投票内容の確認：お名前・投票ボタンを中央寄せ */
tr.bottom_cell.vote_confirm_cell td.boke_cell2{
text-align:center;
}
tr.bottom_cell.vote_confirm_cell td.boke_cell2 table{
margin-left:auto;
margin-right:auto;
}
tr.bottom_cell.vote_confirm_cell td.form_center{
text-align:center;
}

/* 投稿内容の確認：お名前・投稿ボタンを中央寄せ */
tr.bottom_cell.post_confirm_cell td.boke_cell2{
text-align:center;
}
tr.bottom_cell.post_confirm_cell td.boke_cell2 table{
margin-left:auto;
margin-right:auto;
}
tr.bottom_cell.post_confirm_cell td.form_center{
text-align:center;
}

/* 削除内容の確認：お題を削除するボタンを中央寄せ */
tr.bottom_cell.delete_confirm_cell td.boke_cell2{
text-align:center;
}
tr.bottom_cell.delete_confirm_cell td.boke_cell2 table{
margin-left:auto;
margin-right:auto;
}

.meta{
font-size:clamp(12px, 3vw, 14px);
font-weight:normal;
font-family : 'Tahoma','Verdana',sans-serif;
word-break:break-all;
padding:4px 0;
}

/* 結果フェーズ：投稿者名の左にプロフィール画像 */
.result-author-with-avatar{
display:inline-flex;
align-items:center;
gap:6px;
vertical-align:middle;
}
.result-author-avatar{
width:24px;
height:24px;
border-radius:50%;
object-fit:cover;
flex-shrink:0;
vertical-align:middle;
}
/* 結果フェーズの参加者・アバターを大きく、[No.]の左に表示 */
.meta.result-phase-meta{
display:inline-flex;
align-items:center;
flex-wrap:nowrap;
gap:0;
}
.meta.result-phase-meta .result-author-with-avatar{
gap:8px;
font-size:1.9em;
margin-right:1em;
}
.meta.result-phase-meta .result-author-suffix{
font-size:0.6em;
}
.meta.result-phase-meta .result-author-avatar{
width:40px;
height:40px;
}

/* いいねボタン（作品のアイコン左横） */
.boke-like-btn{
background:none;
border:none;
cursor:pointer;
color:#999;
padding:0;
margin-right:6px;
vertical-align:middle;
font-size:1em;
}
.boke-like-btn:hover{
color:#c00;
}
.boke-like-btn.liked,
.boke-like-btn.liked:hover{
color:#c00;
}
.boke-cell-with-like{
display:inline-flex;
align-items:flex-start;
gap:6px;
}
.boke-cell-with-like .boke-cell-body{
flex:1;
min-width:0;
}

div.bokebody{
padding:10px 0px 5px;
word-break:break-all;
}

.num1{
font-family : -apple-system, BlinkMacSystemFont, "Segoe UI", "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Noto Sans JP", Meiryo, sans-serif;
color:#1a1a1a;
font-weight:600;
}

/* 1位の王冠アイコン */
i.rank_crown{
color:#d4a017;
font-size:1.1em;
display:block;
margin-top:2px;
}

.box1{
padding:4px 8px;
font-size:12px;
background-color:#f5f5f5;
border:1px solid #e0e0e0;
border-radius:4px;
color:#1a1a1a;
font-weight:500;
font-family : -apple-system, BlinkMacSystemFont, "Segoe UI", "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Noto Sans JP", Meiryo, sans-serif;
}

/* 結果フェーズ：投票者一覧アコーディオン（得点・得票率・4点・3点・2点をクリックで開閉） */
.result-voters-accordion{
margin-top:0;
}
#box_table.result-phase .result-work-footer .result-voters-accordion{
margin-top:0;
}
.result-voters-toggle{
display:flex;
align-items:center;
flex-wrap:wrap;
gap:0;
padding:0;
font:inherit;
font-size:inherit;
background:transparent;
border:none;
border-radius:0;
cursor:pointer;
color:inherit;
text-align:left;
}
.result-voters-toggle:hover{
opacity:0.85;
}
.result-voters-panel{
margin-top:8px;
padding:8px 0;
}
.result-voters-compact{
font-size:14px;
line-height:1.6;
color:#333;
}
.result-voters-group{
display:inline;
}
.result-voters-group + .result-voters-group{
margin-left:0.25em;
}

.cmt_name{
font-size:clamp(13px, 3.2vw, 15px);
font-weight:500;
color:#1a1a1a;
padding:12px 0 4px;
}

.cmt_body{
font-size:clamp(13px, 3.2vw, 15px);
font-weight:normal;
color:#1a1a1a;
padding:4px 1em 12px;
width:400px;
line-height:1.6;
overflow:auto;
}

tr.voterlist td{
font-size:small;
color:#1a1a1a;
background-color:#ffffff;
border-bottom:1px solid #f0f0f0;
}

div.footer{
text-align:center;
background-color:#00053a !important;
color:rgba(255,255,255,0.9);
padding:24px 16px;
flex-shrink:0;
margin-top:auto;
}

/* 拡張した部：参加登録ページ 見出し行（背景白・テキスト中央） */
body.page-division-register tr.division-register-header td{
background:#fff;
text-align:center;
}
/* 参加登録ページのコンテンツ部分（背景#fefefe・中央寄せ） */
body.page-division-register td.division-register-content{
background:#fefefe;
text-align:center;
}
body.page-division-register td.division-register-content p,
body.page-division-register td.division-register-content h3,
body.page-division-register td.division-register-content form{
margin-left:auto;
margin-right:auto;
}
/* 参加登録済みユーザー一覧（standings風テーブル・プロフィール画像付き） */
body.page-division-register .division-register-participants-wrap{
max-width:480px;
margin:1rem auto 0;
}
body.page-division-register .division-register-participants-table{
width:100%;
border-collapse:separate;
border-spacing:0;
border-radius:12px;
overflow:hidden;
box-shadow:0 4px 20px rgba(0,0,0,0.08);
}
body.page-division-register .division-register-participants-table th,
body.page-division-register .division-register-participants-table td{
padding:0.5rem 0.75rem;
}
body.page-division-register .division-register-participants-table thead th{
font-weight:700;
font-size:0.95em;
text-align:center;
background:#00053a;
color:#fff;
border:none;
}
body.page-division-register .division-register-participants-table tbody td{
background:#fff;
border-bottom:1px solid #e8ecf0;
vertical-align:middle;
}
body.page-division-register .division-register-participants-table tbody tr:nth-child(even) td{
background:#f8fafc;
}
body.page-division-register .division-register-participants-table tbody tr:hover td{
background:#f0f4f8;
}
body.page-division-register .division-register-participants-table tbody tr:last-child td{
border-bottom:none;
}
body.page-division-register .division-register-name-cell{
text-align:left;
}
body.page-division-register .division-register-author-with-avatar{
display:inline-flex;
align-items:center;
gap:8px;
}
body.page-division-register .division-register-author-avatar{
width:32px;
height:32px;
border-radius:50%;
object-fit:cover;
flex-shrink:0;
}
body.page-division-register .division-register-empty{
margin:1rem 0;
color:#666;
text-align:center;
font-size:0.95em;
}
body.page-division-register .division-register-registered-msg{
color:#e67e22;
}

/* 成績・ルール・利用規約・プライバシーポリシー・イベント・過去お題・マイページ：コンテンツとフッターの間に余白（ページ背景色を見せる） */
body.page_rules .container-zoomed,
body.standings_page .container-zoomed,
body.page_events .container-zoomed,
body.mypage-page .container-zoomed{
margin-bottom:2.5rem;
}

div.footer_f{
color:#ffffff;
}

div.footer_f input[type="password"],
div.footer_f input[type="text"],
div.footer_f textarea{
background-color:#ffffff !important;
color:#222222 !important;
border-color:#777777;
}

div.footer_f form input.button.admin-button{
background-color:#ffffff;
color:#1a1a1a;
}

div.footer_f form input.button.admin-button:hover{
background-color:#e0e0e0;
color:#1a1a1a;
}

div.footer_c{
clear:both;
font-size:12px;
font-family : -apple-system, BlinkMacSystemFont, "Segoe UI", "Hiragino Sans", "Noto Sans JP", Meiryo, sans-serif;
color:rgba(255,255,255,0.9);
max-width:1200px;
margin:0 auto;
}

.footer_links{
margin:0 0 12px 0;
padding:0;
display:flex;
flex-wrap:wrap;
justify-content:center;
gap:0 1.25em;
list-style:none;
}

.footer_links a{
color:rgba(255,255,255,0.95);
text-decoration:none;
}

.footer_links a:hover{
color:#fff;
text-decoration:underline;
}

.footer_copyright{
margin:0;
font-size:11px;
color:rgba(255,255,255,0.75);
}

div.footer_c a{
color:rgba(255,255,255,0.95);
}

div.footer_c a:hover{
color:#fff;
}

.edit_l{
text-align:right;
font-size:small;
width:120px;
}

.edit_r{
text-align:left;
font-size:small;
width:580px;
}

/* 管理用ページ：タイトルバーの色 */
#admin-page tr.header_title td{
background-color:#00053a;
}

/* 管理用ページ：テキストボックスを左寄せ */
#admin-page input.inputform,
#admin-page input.inputform2,
#admin-page input.inputbodyform,
#admin-page textarea,
#admin-page .pre_textarea{
margin:0;
text-align:left;
}

.edit_chk{
text-align:center;
font-size:small;
width:20px;
}

.edit_r ul,ul.admin{
margin:3px;
padding-left:20px;
}

.edit_r span{
line-height:2;
}

.pagenav{
text-align:center;
}

.filepagenav .pagenav{
text-align:center;
font-size:small;
}

.pagenav a{
display:inline-flex;
align-items:center;
justify-content:center;
text-decoration:none;
color:#1a1a1a;
padding:8px;
min-width:2.5em;
min-height:2.5em;
margin:2px;
font-weight:normal;
border:none;
border-radius:50%;
background-color:#ffffff;
box-sizing:border-box;
transition:background-color 0.2s, color 0.2s;
}

.pagenav a:hover{
background-color:#f0f0f0;
color:#1a1a1a;
}

.pagenav a.current{
background:#ffffff;
color:#1a1a1a;
border:1px solid #1a1a1a;
}

.pagenav a.current:hover{
background:#f0f0f0;
color:#1a1a1a;
border:1px solid #1a1a1a;
}

.pagenav a i{
margin:0;
}

#caution{
color:#FF0000;
font-size:small;
font-weight:normal;
}

table.cmt_box{
border-collapse:collapse;
margin:0 0 5px;
}

td.cmt_l{
border:none;
text-align:right;
margin-bottom:3px;
font-size:small;
font-weight:normal;
background-color:#f5f5f5;
border:1px solid #e0e0e0;
border-radius:4px;
width:100px;
margin:0;
color:#1a1a1a;
}

td.cmt_r{
border:none;
text-align:left;
margin-bottom:3px;
font-size:small;
font-weight:normal;
border:1px solid #e0e0e0;
border-radius:4px;
margin:0;
color:#1a1a1a;
background-color:#ffffff;
}

div.wordbreak_cmt{
width:300px;
overflow:auto;
word-break:break-all;
}

.note{
color: #FF0000;
font-size: 85%;
}

table.error{
margin:100px auto;
width:450px;
border:1px solid #e0e0e0;
border-radius:8px;
border-collapse: collapse;
padding:none;
overflow:hidden;
}

.error_header{
background-color:#1a1a1a;
font-weight:600;
text-align:center;
color:#ffffff;
padding:12px;
}

.error_body{
padding:20px;
font-weight:normal;
text-align:center;
background-color:#ffffff;
color:#1a1a1a;
}

.error_body a i{
margin-right:4px;
}

table.thanks{
margin:100px auto;
width:450px;
border:1px solid #e0e0e0;
border-radius:8px;
border-collapse: collapse;
padding:none;
overflow:hidden;
}

.thanks_body{
padding:20px;
font-weight:normal;
text-align:center;
background-color:#ffffff;
color:#1a1a1a;
}

.thanks_body i{
margin-right:8px;
color:#1a1a1a;
}

ul.rule{
margin:0.5em 0 0.8em 1.5em;
padding:0;
line-height:1.65;
}

ul.rule li{
padding:0 0 0.5em;
color:#1a1a1a;
}
ul.rule li.schedule_image{
list-style:none;
}
ul.rule li.schedule_image img{
width:90%;
max-width:90%;
}

/* ルールページ：文字サイズを大きく・本文エリア背景は白 */
body.page_rules tr.header1 td{
font-size:clamp(15px, 4vw, 19px);
background:#fff !important;
}

/* ルール・利用規約・プライバシーポリシー・成績・イベント：見出し行の背景を白に */
body.page_rules #box_table tr.header2 td,
body.standings_page #box_table tr.header2 td,
body.page_events #box_table tr.header2 td{
background:#fff !important;
}

/* ルールページ：見出しの強化（サイズ・左線） */
h2.rules_section{
font-size:1.15em;
font-weight:600;
margin:1.4em 0 0.5em;
padding:0.25em 0 0.25em 0.75em;
border-left:3px solid #b0b0b0;
border-bottom:1px solid #e8e8e8;
color:#1a1a1a;
}
h2.rules_section:first-child{
margin-top:0;
}

/* ルール・利用規約・プライバシーポリシー：セクション単位で薄い背景・枠（見出し行も含む） */
body.page_rules h2.rules_section{
background:#f5f5f5;
margin:1.2em 0 0 0;
padding:0.5em 1.2em 0.5em 2em;
border:1px solid #f0f0f0;
border-bottom:none;
border-radius:6px 6px 0 0;
border-left:3px solid #b0b0b0;
}
body.page_rules h2.rules_section:first-child{
margin-top:0;
}
body.page_rules h2.rules_section + ul.rule{
background:#f5f5f5;
padding:1em 1.2em 1em 2em;
margin:0 0 1.2em 0;
margin-left:0;
border:1px solid #f0f0f0;
border-top:none;
border-left:3px solid #b0b0b0;
border-radius:0 0 6px 6px;
}
body.page_rules h2.rules_section + ul.rule li.schedule_image{
padding-left:0;
}
p.rules_footer{
margin:1.5em 0 0;
text-align:center;
}

tr.list{
background-color:#ffffff;
border-bottom:1px solid #f0f0f0;
padding:16px 0;
}

tr.list td{
padding:47px 12px;
transition:background-color 0.2s ease;
}

tr.list:hover{
background-color:#f5f5f5;
}
tr.list:hover td{
background-color:#f5f5f5;
}

/* お題一覧：カード型リスト（案1） */
tr.list.list-card{
background-color:transparent;
border-bottom:none;
padding:0;
margin-bottom:0;
}
tr.list.list-card:hover{
background-color:transparent;
}
tr.list.list-card td.list-card-cell{
padding:0;
vertical-align:top;
background-color:transparent;
border:none;
}
tr.list.list-card:hover td.list-card-cell{
background-color:transparent;
}
.index-odai-card{
display:flex;
align-items:stretch;
min-height:0;
background:#fff;
border-radius:12px;
box-shadow:0 2px 12px rgba(0,0,0,0.06);
overflow:hidden;
transition:box-shadow 0.25s ease, transform 0.2s ease;
position:relative;
margin-bottom:16px;
}
tr.list.list-card:last-child .index-odai-card{
margin-bottom:0;
}
.index-odai-card:hover{
box-shadow:0 8px 24px rgba(0,0,0,0.1);
transform:translateY(-2px);
}
.index-odai-card-accent{
position:absolute;
left:0;
top:0;
bottom:0;
width:6px;
flex-shrink:0;
}
.index-odai-card-prep .index-odai-card-accent{ background:#555555; }
.index-odai-card-post .index-odai-card-accent{ background:#2563eb; }
.index-odai-card-vote .index-odai-card-accent{ background:#16a34a; }
.index-odai-card-result .index-odai-card-accent{ background:#ea580c; }
.index-odai-card-display .index-odai-card-accent{ background:#dc2626; }
.index-odai-card-freeze .index-odai-card-accent{ background:#0d9488; }
.index-odai-card-body{
flex:1;
min-width:0;
padding:20px 20px 20px 24px;
text-align:left;
}
.index-odai-card-body .season_badge{
display:inline-block;
margin-bottom:0.65em;
}
.index-odai-card-body .index-odai-link{
font-size:1.5em;
}
.index-odai-card-body .index-odai-cell{
display:flex;
align-items:center;
gap:0.75em;
}
.index-odai-card-body .index-odai-image img{
max-height:160px;
width:auto;
height:auto;
object-fit:contain;
vertical-align:middle;
}
/* 締切・終了：お題/画像の直下に表示 */
.index-odai-card-body .index-odai-card-limit{
display:block;
margin-top:0.5em;
font-size:0.9em;
color:#AAAAAA;
font-weight:500;
}
.index-odai-card-meta{
display:flex;
flex-direction:column;
align-items:center;
justify-content:center;
gap:8px;
flex-shrink:0;
padding:20px 24px 20px 16px;
border-left:1px solid #f0f0f0;
}
.index-odai-card-meta .limit{
color:#AAAAAA;
font-weight:500;
}

/* 1200px以下：タイトルバーのサイトタイトル左寄せ・お題カードの余白 */
@media screen and (max-width: 1200px) {
.site_header .header_title_left,
tr.header_title td .header_title_left{
text-align:left;
}
tr.list.list-card .index-odai-card{
margin-left:16px;
margin-right:16px;
}
}

/* ヒーローエリアとお題リストの間に余白（PC・スマホ共通） */
tr.header1 + tr.list.list-card .index-odai-card{
margin-top:24px;
}

/* お題カード一覧の直後のページネーションに余白 */
#box_table table#main tr td.pagenav{
padding-top:24px;
padding-bottom:8px;
}

/* お題一覧：シンプルなリスト型 */
tr.list.list-odai{
background-color:#fff;
}
tr.list.list-odai td.list-odai-cell{
padding:32px 32px;
vertical-align:middle;
border:none;
display:flex;
position:relative;
align-items:center;
gap:16px;
flex-wrap:wrap;
}
tr.list.list-odai td.list-odai-cell::after{
content:'';
position:absolute;
left:24px;
right:24px;
bottom:0;
border-bottom:1px solid #eee;
}
tr.list.list-odai:last-of-type td.list-odai-cell::after{
display:none;
}
.index-odai-list-body{
flex:1;
min-width:0;
text-align:left;
}
.index-odai-list-body .season_badge{
display:inline-block;
margin-bottom:0.5em;
}
.index-odai-list-body .index-odai-link{
font-size:1.75em;
}
.index-odai-list-body .index-odai-cell{
display:flex;
align-items:center;
gap:0.75em;
}
.index-odai-list-body .index-odai-image img{
max-height:120px;
width:auto;
height:auto;
object-fit:contain;
vertical-align:middle;
}
.index-odai-list-body .index-odai-list-limit{
display:block;
margin-top:0.4em;
font-size:0.9em;
color:#888;
}
.index-odai-list-meta{
flex-shrink:0;
}
tr.header1 td.division_members_hero{
padding-bottom:32px !important;
}
tr.header1 + tr.list.list-odai td.list-odai-cell{
padding-top:32px;
}

/* ルール・利用規約・プライバシー：index同様のカード＋左アクセント金色 */
tr.list.list-card.list-card-doc td.list-card-cell{
padding:0 0 0 0;
vertical-align:top;
border:none;
background:transparent;
}
body.page_rules tr.list.list-card.list-card-doc .index-odai-card,
body.page_rules tr.list.list-card.list-card-doc .index-odai-card:hover{
margin-left:0;
margin-right:0;
}
body.page_rules tr.header2 + tr.list.list-card.list-card-doc .index-odai-card{
margin-top:16px;
}
.index-odai-card-doc .index-odai-card-accent{
background:#d4af37;
}
.index-odai-card-doc .index-odai-card-body{
padding:20px 20px 20px 24px;
}
/* カード内：グレー背景・左グレーアクセントは使わない */
.index-odai-card-doc .index-odai-card-body h2.rules_section{
background:transparent !important;
border:none !important;
border-left:none !important;
border-radius:0;
margin-top:0;
padding:0.35em 0 0.25em 0;
font-size:1.1em;
}
.index-odai-card-doc .index-odai-card-body h2.rules_section:not(:first-child){
margin-top:1em;
}
.index-odai-card-doc .index-odai-card-body ul.rule,
body.page_rules .index-odai-card-doc .index-odai-card-body h2.rules_section + ul.rule{
background:transparent !important;
border:none !important;
border-left:none !important;
margin:0.4em 0 0;
padding:0 0 0 1em;
}
.index-odai-card-doc .index-odai-card-body p.rules_intro{
margin:0 0 0.5em;
}
@media screen and (max-width: 1200px) {
body.page_rules tr.list.list-card.list-card-doc .index-odai-card{
margin-left:16px;
margin-right:16px;
}
}

/* 投票フェーズの作品行：高さをやや低く */
tr.list.vote_phase td{
padding:12px 12px;
}
tr.list.vote_phase td.boke_cell{
padding:10px 20px;
line-height:1.5;
}

/* 投票フェーズ：丸型ラジオ風チェックボックス（くぼみ風・薄いゴールド基調・選択時は光るエフェクト） */
tr.list.vote_phase td.point_info.vote_cell{
padding:0;
vertical-align:middle;
}
tr.list.vote_phase td.point_info.vote_cell .vote_cell_label{
display:inline-flex;
align-items:center;
justify-content:center;
cursor:pointer;
margin:0;
padding:12px 14px;
box-sizing:border-box;
position:relative;
min-width:32px;
min-height:32px;
}
/* 実チェックボックスは視覚的に非表示（操作・フォーカスは維持） */
tr.list.vote_phase td.point_info.vote_cell .vote_cell_input{
position:absolute;
width:1px;
height:1px;
padding:0;
margin:-1px;
overflow:hidden;
clip:rect(0,0,0,0);
white-space:nowrap;
border:0;
}
/* 外側の丸：くぼみ風（枠線なし・内側影で凹んだ表現） */
tr.list.vote_phase td.point_info.vote_cell .vote_cell_label::before{
content:"";
display:block;
width:26px;
height:26px;
border:none;
border-radius:50%;
background:linear-gradient(145deg, #e8e8e8, #c4c4c4);
box-shadow:inset 3px 3px 6px rgba(0,0,0,0.2), inset -2px -2px 4px rgba(255,255,255,0.6), 1px 1px 2px rgba(0,0,0,0.08);
transition:box-shadow 0.25s ease, background 0.2s;
flex-shrink:0;
}
/* 選択時：金色の光るエフェクト（外枠なし・外側にゴールドのグロー） */
tr.list.vote_phase td.point_info.vote_cell .vote_cell_label:has(.vote_cell_input:checked)::before{
background:linear-gradient(145deg, #fff8dc, #ffecb3);
box-shadow:inset 2px 2px 4px rgba(0,0,0,0.1), inset -1px -1px 2px rgba(255,255,255,0.5), 0 0 0 1px rgba(218, 165, 32, 0.4), 0 0 14px 3px rgba(218, 165, 32, 0.5);
}
/* 選択時：内側の丸（金色） */
tr.list.vote_phase td.point_info.vote_cell .vote_cell_label::after{
content:"";
display:none;
position:absolute;
left:50%;
top:50%;
transform:translate(-50%, -50%);
width:14px;
height:14px;
border-radius:50%;
background:linear-gradient(145deg, #ffd700, #daa520);
box-shadow:inset 0 1px 1px rgba(255,255,255,0.4), 0 1px 2px rgba(0,0,0,0.15);
}
tr.list.vote_phase td.point_info.vote_cell .vote_cell_label:has(.vote_cell_input:checked)::after{
display:block;
}

.grayout{
background-color:#f5f5f5 !important;
}

/* スマートフォン向けの最適化 */
@media screen and (max-width: 768px) {
/* タイトルバー・テーブル周りの白い細線を消す */
#box_table,
table#main{
border:none !important;
border-width:0 !important;
outline:none !important;
box-shadow:none !important;
}
table#main td,
table#main th,
table#main tr{
border:none !important;
}

tr.odai td{
padding:56px 16px;
font-size:1.9em;
}

tr.header1 td,
tr.header2 td{
padding:18px 16px;
}

td.boke_cell,
td.boke_cell2{
padding:36px 16px;
}

tr.list.vote_phase td,
tr.list.vote_phase td.boke_cell{
padding:10px 16px;
}

tr.postform td{
padding:20px 16px;
}

input.inputform,
input.inputbodyform,
textarea{
width:85%;
padding:16px;
}

input.button{
padding:18px 36px;
min-width:160px;
}

.form_label{
margin-bottom:12px;
}
}

/* 得票率が1.00以上の場合の赤字表示 */
.vote_rate_over{
color:#c00;
font-weight:bold;
}

/* シーズン表示バッジ（黒四角・白文字） */
.season_badge{
display:inline-block;
background:#000;
color:#fff;
padding:4px 10px;
border:1px solid #000;
font-size:90%;
}

/* 1部・2部タブ（お題一覧） */
tr.division_tabs td{
padding:10px 0;
vertical-align:middle;
}
.division_tab_wrapper{
display:block;
}
.division_tab{
display:inline-block;
padding:16px 200px;
margin:0 4px;
background:#e0e0e0;
color:#333;
border-radius:4px;
text-decoration:none;
}
.division_tab:hover{
background:#d0d0d0;
text-decoration:none;
}
.division_tab.current{
background:#333;
color:#fff;
font-weight:bold;
}
.division_members{
font-size:90%;
padding:6px 10px;
}
.division_members_list{
display:grid;
grid-template-columns:repeat(5, 1fr);
gap:8px 16px;
align-items:center;
}
.division_member_name{
white-space:nowrap;
}
.division_members_tight{
line-height:1.3;
}

/* 1部メンバー一覧：背景画像（imgタグで表示） */
#box_table,
table#main{
overflow:visible;
}
tr.header1 td.division_members_hero{
background:transparent !important;
color:#fff !important;
padding:0 !important;
vertical-align:middle !important;
overflow:visible;
}
tr.header1 td.division_members_hero a,
tr.header1 td.division_members_hero .division_member_name,
tr.header1 td.division_members_hero .division_members_list,
tr.header1 td.division_members_hero .season_badge,
tr.header1 td.division_members_hero .hero-content,
tr.header1 td.division_members_hero .hero-content *{
color:#fff !important;
}
/* 拡張した部：ヒーローは画像のみ（シーズン・説明・サイト名・スクロールなし） */
tr.header1 td.division_hero_image_only .hero-cell-inner{
display:block;
}
.hero-cell-inner{
position:relative;
width:100%;
max-width:1200px;
margin-left:auto;
margin-right:auto;
overflow:hidden;
box-sizing:border-box;
}
.hero-bg-image{
display:block;
width:100%;
height:auto;
vertical-align:top;
z-index:0;
}
/* ヒーロー画像：1200px未満は通常画像、1200px以上はPC用（1部→image1pc、2部→image2pc） */
.hero-bg-image-pc{
display:none;
}
@media screen and (min-width: 1200px){
/* PC：1部2部タブを非表示 */
#division_tabs{
display:none !important;
}
.hero-bg-image-default{
display:none !important;
}
.hero-bg-image-pc{
display:block !important;
}
/* PC：ヒーローエリアとタイトルバーの間に余白 */
#box_table{
margin-top:1.25rem;
}
}
.hero-overlay{
position:absolute;
top:0;
left:0;
right:0;
bottom:0;
background:rgba(0, 0, 0, 0.52);
z-index:1;
pointer-events:none;
}
/* ヒーロー右下：サイトタイトル（大喜利 / 天文台 / Oogiri Observatory） */
.hero-sitetitle{
position:absolute;
right:clamp(1.5rem, 5vw, 3rem);
bottom:clamp(1.5rem, 6vw, 3rem);
z-index:2;
text-align:right;
color:#fff;
font-family:"M PLUS 1p",-apple-system,BlinkMacSystemFont,"Hiragino Sans","Hiragino Kaku Gothic ProN",Meiryo,sans-serif;
text-shadow:0 0 6px rgba(255,255,255,0.5), 0 0 12px rgba(255,255,255,0.35), 0 0 18px rgba(255,255,255,0.25), 0 2px 4px rgba(0,0,0,0.4);
pointer-events:none;
line-height:1.15;
}
.hero-sitetitle-main{
display:block;
font-size:clamp(2rem, 8vw, 4.5rem);
font-weight:800;
letter-spacing:0.02em;
margin-bottom:0.05em;
}
.hero-sitetitle-sub{
display:block;
font-size:clamp(2rem, 8vw, 4.5rem);
font-weight:800;
letter-spacing:0.03em;
margin-left:0.15em;
margin-bottom:0.15em;
}
.hero-sitetitle-en{
display:block;
font-size:clamp(0.7rem, 2.2vw, 1.1rem);
font-weight:400;
letter-spacing:0.12em;
text-transform:uppercase;
opacity:0.95;
}
.hero-content{
position:absolute;
top:0;
left:0;
right:0;
bottom:0;
z-index:2;
display:flex;
flex-direction:column;
align-items:center;
justify-content:flex-start;
padding:3rem 1.5rem 2rem;
text-align:center;
}
.hero-content .season_badge,
.hero-content .division_members_list,
.hero-content .division_member_name{
text-shadow:0 0 5px rgba(255,255,255,0.5), 0 0 10px rgba(255,255,255,0.35), 0 0 16px rgba(255,255,255,0.25), 0 2px 4px rgba(0,0,0,0.3);
}
.hero-content .season_badge{
display:inline-flex;
align-items:baseline;
gap:0.25em;
font-family:'Josefin Sans',sans-serif;
font-size:1.1em;
padding:0.35em 0.6em 0.4em;
border:none;
border-radius:6px;
background:transparent;
opacity:0;
margin-bottom:1.2em;
}
body.hero-content-ready .hero-content .season_badge{
animation:hero-text-float 0.3s ease-out 0s both;
}
.hero-content .season_badge .season_label{
font-size:2.8em;
font-weight:600;
letter-spacing:0.08em;
color:rgba(255,255,255,0.95);
text-transform:uppercase;
}
.hero-content .season_badge .season_number{
font-size:3.6em;
font-weight:700;
line-height:1;
color:#fff;
letter-spacing:0.02em;
}
.hero-content .division_members_list{
display:grid;
grid-template-columns:repeat(5, 1fr);
gap:10px 16px;
align-items:center;
justify-items:center;
font-family:"Noto Sans JP",-apple-system,BlinkMacSystemFont,"Hiragino Sans","Hiragino Kaku Gothic ProN",Meiryo,sans-serif;
opacity:0;
}
body.hero-content-ready .hero-content .division_members_list{
animation:hero-text-float 0.25s ease-out 0.55s both;
}
.hero-content .division_member_name{
font-family:"Noto Sans JP",-apple-system,BlinkMacSystemFont,"Hiragino Sans","Hiragino Kaku Gothic ProN",Meiryo,sans-serif;
}
.hero-content .division_note{
margin:1em 0 0;
font-size:1.1em;
line-height:1.6;
text-shadow:0 0 5px rgba(255,255,255,0.5), 0 0 10px rgba(255,255,255,0.35), 0 0 16px rgba(255,255,255,0.25), 0 2px 4px rgba(0,0,0,0.3);
opacity:0;
}
body.hero-content-ready .hero-content .division_note{
animation:hero-text-float 0.25s ease-out 0.55s both;
}
.hero-content .division_note_ichi{
margin-top:2.2em;
}
@keyframes hero-text-float{
from{
opacity:0;
transform:translateY(12px);
}
to{
opacity:1;
transform:translateY(0);
}
}

/* ヒーロー下：スクロールダウン（アニメーション） */
.scroll_down{
position:absolute;
bottom:0;
left:0;
right:0;
z-index:3;
height:160px;
pointer-events:none;
display:flex;
align-items:flex-end;
justify-content:center;
padding-bottom:0;
}
.scroll_down a{
pointer-events:auto;
display:block;
position:relative;
z-index:2;
width:auto;
padding:0 0 118px;
color:#fff;
font-size:14px;
font-family:'Josefin Sans',sans-serif;
line-height:1.2;
letter-spacing:.2em;
text-transform:uppercase;
text-decoration:none;
text-align:center;
transition:.2s;
border-bottom:none;
}
.scroll_down a:hover{
opacity:.7;
color:#fff;
}
.scroll_down a:before{
content:'';
position:absolute;
bottom:8px;
left:50%;
width:2px;
height:100px;
background:rgba(255,255,255,.35);
transform:translateX(-50%);
}
.scroll_down a:after{
content:'';
position:absolute;
bottom:8px;
left:50%;
width:2px;
height:100px;
background:#fff;
transform:translateX(-50%);
}
#type01 a:after{
animation:sdl01 1.5s cubic-bezier(1, 0, 0, 1) infinite;
}
@keyframes sdl01{
0%{
transform:translateX(-50%) scale(1, 0);
transform-origin:0 100%;
}
50%{
transform:translateX(-50%) scale(1, 1);
transform-origin:0 100%;
}
50.1%{
transform:translateX(-50%) scale(1, 1);
transform-origin:0 0;
}
100%{
transform:translateX(-50%) scale(1, 0);
transform-origin:0 0;
}
}
@media screen and (max-width: 768px){
.hero-content{
padding:2.5rem 1rem 1.5rem;
}
}
}

/* シーズン平均得票率順位表（横幅90％・ダークテーマ） */
tr.season_ranking_section{
background:#00053a;
}
tr.season_ranking_section td{
padding:0;
vertical-align:top;
background:#00053a;
}
tr.season_ranking_section td a{
color:#fff;
}
tr.season_ranking_section td a:hover{
color:rgba(255,255,255,0.85);
}
.season_ranking_wrapper{
margin-left:calc(50% - 45vw);
margin-right:calc(50% - 45vw);
width:90vw;
max-width:90vw;
text-align:center;
background:#00053a;
color:#fff;
padding:0 1em 1em;
box-sizing:border-box;
}
table.season_ranking_table{
margin:0 auto;
border-collapse:collapse;
border-spacing:0;
border:none;
border-width:0;
width:100%;
max-width:100%;
table-layout:fixed;
background:#00053a;
color:#fff;
}
table.season_ranking_table td,
table.season_ranking_table th{
border-left:0 none transparent;
border-right:0 none transparent;
border-top:0 none transparent;
}
table.season_ranking_table caption.season_ranking_caption{
padding:0.75em 1em;
font-weight:bold;
caption-side:top;
color:#fff;
background:#00053a;
}
/* 順位・平均得票率・投稿数は横幅固定・横書き（改行しない）・はみ出し防止 */
table.season_ranking_table .season_ranking_th:nth-child(1),
table.season_ranking_table tr.list td:nth-child(1){
width:4em;
min-width:4em;
max-width:4em;
box-sizing:border-box;
white-space:nowrap;
overflow:hidden;
text-overflow:ellipsis;
padding:0.75em 0.5em;
line-height:1.5;
}
table.season_ranking_table .season_ranking_th:nth-child(2),
table.season_ranking_table tr.list td:nth-child(2){
width:7em;
min-width:7em;
max-width:7em;
box-sizing:border-box;
white-space:nowrap;
overflow:hidden;
text-overflow:ellipsis;
padding:0.75em 0.5em;
line-height:1.5;
}
table.season_ranking_table .season_ranking_th:nth-child(3),
table.season_ranking_table tr.list td:nth-child(3){
width:5em;
min-width:5em;
max-width:5em;
box-sizing:border-box;
white-space:nowrap;
overflow:hidden;
text-overflow:ellipsis;
padding:0.75em 0.5em;
line-height:1.5;
}
table.season_ranking_table .season_ranking_th:nth-child(4),
table.season_ranking_table tr.list td:nth-child(4){
width:auto;
min-width:0;
}
table.season_ranking_table .season_ranking_th{
padding:0.75em 0.75em;
line-height:1.5;
text-align:center;
border:none;
border-left:0 none;
border-right:0 none;
border-top:0 none;
border-bottom:1px solid rgba(255,255,255,0.25);
background:rgba(255,255,255,0.08);
color:#fff;
}
table.season_ranking_table tr.list td{
padding:0.75em 0.75em;
line-height:1.5;
border:none;
border-left:0 none;
border-right:0 none;
border-top:0 none;
border-bottom:1px solid rgba(255,255,255,0.2);
color:#fff;
background:#00053a;
white-space:nowrap;
overflow:hidden;
text-overflow:ellipsis;
}
table.season_ranking_table tr.list td:nth-child(4){
white-space:normal;
text-overflow:clip;
}
table.season_ranking_table td.season_ranking_name{
text-align:center;
color:#fff;
}
table.season_ranking_table td.season_ranking_nobody{
text-align:center;
padding:0.75em;
color:rgba(255,255,255,0.7);
background:#00053a;
white-space:normal;
}
/* スマートフォンで縦線・外枠のゴースト線を残さない対策 */
@media screen and (max-width: 768px){
table.season_ranking_table,
table.season_ranking_table td,
table.season_ranking_table th{
border-left:0 none transparent !important;
border-right:0 none transparent !important;
border-top:0 none transparent !important;
-webkit-tap-highlight-color:transparent;
}
table.season_ranking_table{
border-width:0 !important;
border-style:none !important;
}
table.season_ranking_table .season_ranking_th{
border-left-width:0 !important;
border-right-width:0 !important;
border-top-width:0 !important;
}
table.season_ranking_table tr.list td{
border-left-width:0 !important;
border-right-width:0 !important;
border-top-width:0 !important;
}
}

/* PCのみ（1200px以上）：サイドバー廃止・ナビをタイトルバーに横並び・ハンバーガー非表示 */
@media screen and (min-width: 1200px) {
	.site_header .header_hamburger {
		display: none !important;
	}
	.site_header .header_title_right {
		display: flex;
		align-items: center;
		margin-left: auto;
		flex-shrink: 0;
	}
	/* ナビをタイトルバー内で横並び表示（ドロップダウンではなくインライン） */
	.site_header .header_nav_dropdown {
		position: static !important;
		display: flex !important;
		flex-direction: row !important;
		flex-wrap: wrap;
		align-items: center;
		gap: 4px 8px;
		width: auto !important;
		max-width: none;
		min-width: 0;
		margin: 0;
		padding: 0;
		visibility: visible !important;
		opacity: 1 !important;
		transform: none !important;
		transition: none;
		border: none;
		border-top: none;
		box-shadow: none;
		background: transparent;
		font-size: 14px;
	}
	.site_header .header_nav_dropdown a,
	.site_header .header_nav_dropdown .header_nav_label {
		display: inline-block !important;
		width: auto !important;
		max-width: none !important;
		flex: 0 0 auto;
		padding: 8px 12px;
		border-bottom: none !important;
		font-size: 14px;
		white-space: nowrap;
		border-radius: 6px;
		box-sizing: border-box;
	}
	.site_header .header_nav_dropdown a:hover {
		background: rgba(255,255,255,0.12);
	}
	.site_header .header_nav_dropdown .header_nav_sublinks {
		display: inline;
	}
	.site_header .header_nav_dropdown .header_nav_sublinks a {
		display: inline-block !important;
		width: auto !important;
		padding: 8px 12px;
		font-size: 13px;
		border-bottom: none !important;
	}
	/* PC：ナビ項目のアイコンは非表示（テキストのみ） */
	.site_header .header_nav_dropdown a i,
	.site_header .header_nav_dropdown .header_nav_label i {
		display: none !important;
	}
	/* コンテンツ：サイドバーなしなのでマージン不要 */
	.container-zoomed {
		margin-left: 0;
		zoom: 0.8;
	}
	/* タイトルバー：ロゴ左・ナビ右 */
	#site_header.site_header,
	.site_header {
		padding-top: 10px;
		padding-bottom: 10px;
		padding-left: max(16px, env(safe-area-inset-left));
		padding-right: max(16px, env(safe-area-inset-right));
		font-size: 22px;
	}
	/* PC：ヘッダー内容を中央寄せ（ロゴは左・ナビは右のまま、ブロック全体を中央に） */
	.site_header .header_title_wrapper {
		max-width: 1000px;
		margin: 0 auto;
		width: 100%;
		justify-content: flex-start;
	}
	.site_header .header_title_left {
		margin-left: 0;
	}
	.site_header .header_logo {
		max-height: 42px;
		margin-left: 0;
	}
	.site_header .header_subtitle {
		font-size: 15px;
		margin-left: 12px;
	}
	/* ヒーロー画像の角に丸み */
	.hero-cell-inner {
		border-radius: 24px;
		overflow: hidden;
	}
	/* 投票フェーズ途中経過：他ページ同様に最大幅1200pxで中央寄せ */
	#report_box {
		max-width: 1200px;
		width: 100%;
		margin-left: auto;
		margin-right: auto;
	}
	/* PC：タイトルバーにナビを出したため著作権はフッターで表示（フッターは表示） */
	.site_header .header_nav_dropdown .sidebar_copyright {
		display: none;
	}
}