@charset "utf-8";

/*
Reset CSS
*/

html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var, b, u, i, center, dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, embed,
figure, figcaption, footer, header, hgroup,
menu, nav, output, ruby, section, summary,
time, mark, audio, video {
	margin: 0;
	padding: 0;
	border: 0;
	font-style:normal;
	font-weight: normal;
	font-size: 100%;
	vertical-align: baseline;
}
article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section {
	display: block;
}
html {
    overflow-y: scroll;
}
blockquote, q {
    quotes: none;
}
blockquote:before, blockquote:after,q:before, q:after {
    content: '';
    content: none;
}
input, textarea {
    margin: 0;
    padding: 0;
}
ol, ul{
    list-style: none;
}
table{
    border-collapse: collapse;
    border-spacing: 0;
}
caption, th{
    text-align: left;
}
a:focus {
    outline: none;
}

body {
    /* モダンなシステムフォント・スタック */
    font-family: "Helvetica Neue", Arial, "Hiragino Kaku Gothic ProN", "Hiragino Sans", Meiryo, sans-serif;

    /* 文字を読みやすくする基本設定 */
    /*font-size: 14px;*/      /* 管理画面として標準的なサイズ */
    color: #333;         /* 真っ黒より少しグレーの方が目が疲れません */
    line-height: 1.6;    /* 行間を広げて可読性をアップ */
    /*background-color: #f8f9fa;*/ /* 背景をわずかにグレーにすると、白背景のパーツが際立ちます */

    /* 文字のレンダリングを綺麗にする（Mac/iOS向け） */
    -webkit-font-smoothing: antialiased;
}

div#main table tr td {
    border: 1px solid;
}

div#main tr td {
    padding: 4px;
}

div#main th {
    border: 1px solid;
    background-color: lightgreen;
    text-align: center;
    padding: 4px;
}

.menu_item {
    cursor: hand;
}

.menu_item_select {
    background-color: aqua;
    cursor: hand;
}

.button_style {
    font-size: large;
    cursor: hand;
    height: 40px;
    width: 100%;
}

/*
テキストボックスを読み取り専用にする
*/
.nav-menu {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin: 8px 4px;
    max-width: 100%;
}

.nav-menu-item {
    display: inline-block;
    padding: 8px 14px;
    background-color: #3a3a3a;
    color: #e0e0e0;
    text-decoration: none;
    border-radius: 6px;
    font-size: 13px;
    transition: background-color 0.2s, transform 0.1s;
    min-width: calc((100% - 24px) / 5);
    max-width: calc((100% - 24px) / 5);
    text-align: center;
    box-sizing: border-box;
}

.nav-menu-item:hover {
    background-color: #555;
    transform: translateY(-1px);
}

.nav-menu-item.active {
    background-color: #1a73e8;
    color: #fff;
}

.nav-submenu {
    margin-top: 0;
}

.nav-submenu-item {
    display: inline-block;
    padding: 6px 12px;
    background-color: #f0f0f0;
    color: #333;
    text-decoration: none;
    border-radius: 4px;
    font-size: 12px;
    transition: background-color 0.2s;
    text-align: center;
    box-sizing: border-box;
    flex: 1;
}

.nav-submenu-item:hover {
    background-color: #ddd;
}

.nav-submenu-item.active {
    background-color: #4a90d9;
    color: #fff;
}

/* table-data: データ一覧テーブル */
/* 2026-04-12 font-size: small, width: 100%に統一 */
.table-data { margin: 4px; width: 100%; border-collapse: collapse; font-size: small; }
.table-data th { background-color: #f0f0f0; color: #333; padding: 4px 8px; text-align: center; border-bottom: 2px solid #ccc; }
.table-data td { padding: 4px 8px; }
.table-data tr:nth-child(even) { background-color: #f9f9f9; }
/* stats-table: ソート対応テーブル */
.stats-table { margin: 8px; width: 95%; border-collapse: collapse; font-size: 13px; }
.stats-table th { background-color: #f0f0f0; color: #333; padding: 4px 8px; text-align: center; border-bottom: 2px solid #ccc; cursor: pointer; }
.stats-table th:hover { background-color: #ddd; }
.stats-table td { padding: 4px 8px; }
.stats-table tr:nth-child(even) { background-color: #f9f9f9; }

/* table-form: 編集フォームテーブル */
.table-form { margin: 8px; font-size: 14px; }
.table-form th { width: 120px; text-align: left; padding: 4px 8px; background-color: #f0f0f0; }
.table-form td { padding: 4px 8px; }

/* 共通ページタイトル */
h3 { margin: 16px 8px 4px 8px; }
h4 { margin: 12px 8px 4px 8px; }

/* 共通ボタン */
.btn { padding: 6px 16px; font-size: 13px; border: none; border-radius: 4px; cursor: pointer; }
.btn-primary { background-color: #1a73e8; color: #fff; }
.btn-primary:hover { background-color: #1557b0; }
.btn-danger { background-color: #e05d6f; color: #fff; }
.btn-danger:hover { background-color: #c0475a; }

/* chart-container (Agent Stats) */
.chart-container { display: inline-block; width: 460px; height: 360px; margin: 8px; vertical-align: top; }

/* mail-header, mail-body (Mail) */
.mail-header { margin: 8px; }
.mail-header table { width: 100%; font-size: 14px; }
.mail-header th { width: 100px; text-align: left; padding: 4px 8px; background-color: #f0f0f0; }
.mail-header td { padding: 4px 8px; }
.mail-body { margin: 8px; padding: 12px; background-color: #fafafa; border: 1px solid #ddd; white-space: pre-wrap; font-size: 13px; line-height: 1.6; max-height: 600px; overflow-y: auto; }

/* sql-input, result-table (Mail SQL) */
.sql-input { width: 100%; height: 120px; font-family: monospace; font-size: 13px; padding: 8px; border: 1px solid #ccc; border-radius: 4px; resize: vertical; }
.result-table { margin: 8px 0; width: 100%; border-collapse: collapse; font-size: 13px; }
.result-table th { background-color: #f0f0f0; color: #333; padding: 4px 8px; text-align: center; border-bottom: 2px solid #ccc; }
.result-table td { padding: 4px 8px; border-bottom: 1px solid #eee; }
.result-table tr:nth-child(even) { background-color: #f4f4f4; }
.result-info { margin: 8px 0; font-size: 13px; color: #666; }
.result-error { margin: 8px 0; font-size: 13px; color: red; }

/* othello */
.othello-board { border-collapse: collapse; margin: 8px; }
.othello-board td { width: 48px; height: 48px; background-color: #2e8b57; border: 1px solid #1a6b3a; text-align: center; vertical-align: middle; font-size: 32px; }
.othello-board th { width: 48px; height: 24px; text-align: center; font-size: 12px; color: #888; }
.stone-black { color: #000; text-shadow: 1px 1px 2px rgba(0,0,0,0.5); }
.stone-white { color: #fff; text-shadow: 0 0 4px rgba(0,0,0,0.8); }
.game-info { margin: 8px; font-size: 14px; }
.game-info span { margin-right: 16px; }
.strategy-select { margin: 8px; }
.strategy-select select { padding: 4px 8px; font-size: 14px; }
.strategy-select button { padding: 6px 16px; font-size: 14px; margin-left: 8px; }
.rank-1 { background-color: #ffd700 !important; font-weight: bold; }
.rank-2 { background-color: #c0c0c0 !important; }
.rank-3 { background-color: #cd7f32 !important; }

.footer {
    margin: 24px 0 8px 0;
    padding: 12px 0;
    border-top: 1px solid #ccc;
    text-align: center;
    font-size: 12px;
    color: #888;
}

.text-ellipsis {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    max-width: 120px;
}

li:hover label {
  font-weight: bold;
  cursor: pointer; /* マウスカーソルを指の形にするとより直感的です */
}

.heartbeat {
    background-color: red;
}

.share_folder {
    background-color: lightgreen;
}

.google_drive {
    background-color: aqua;
}

.network_device {
    background-color: lightpink;
}

/* 2026-04-18 #9 将棋 */
.shogi-board { border-collapse: collapse; margin: 8px 0; }
.shogi-board td.shogi-cell {
    width: 48px; height: 52px; border: 1px solid #333;
    text-align: center; vertical-align: middle;
    font-size: 22px; background-color: #dcb35c; cursor: pointer;
    user-select: none;
}
.shogi-board td.shogi-coord {
    width: 24px; height: 24px; text-align: center; vertical-align: middle;
    font-size: 12px; color: #666; border: none; background: none;
}
.shogi-board td.movable { background-color: #a8d8a8; }
.shogi-board td.selected { background-color: #ffeb3b; }
.shogi-board td.last-move { background-color: #e8d088; }
.shogi-board .gote { display: inline-block; transform: rotate(180deg); }
.shogi-board .promoted { color: #d32f2f; }
.shogi-hand { min-width: 60px; padding: 4px; border: 1px solid #ddd; min-height: 40px; }
.shogi-hand-piece {
    display: inline-block; font-size: 22px; padding: 4px 6px;
    cursor: pointer; user-select: none; border: 1px solid transparent;
    margin: 2px;
}
.shogi-hand-piece:hover { background-color: #e0e0e0; }
.shogi-hand-piece.selected { background-color: #ffeb3b; border-color: #333; }
.shogi-promote-dialog {
    position: fixed; top: 0; left: 0; width: 100%; height: 100%;
    background: rgba(0,0,0,0.4); display: flex; align-items: center; justify-content: center;
    z-index: 1000;
}
.shogi-promote-content {
    background: #fff; padding: 24px 32px; border-radius: 8px;
    text-align: center; box-shadow: 0 4px 12px rgba(0,0,0,0.3);
}
