/* ============================================================
   送電世界 共通デザインシステム（GLYPHALT / CHROMALT-Q 基準）
   各ページの index.html で、theme.css → alt.css（ALT ツールだけ）→
   style.css → main.css の順に <link> で並べて読む。
   @import は使わない（style.css を読み終わるまで theme.css が始まらず、直列になる）。

   ビットマップフォントは等倍の整数倍だけ、line-height / letter-spacing は
   整数 px（詳細と見本は _standard/pixel-style/）。
   ============================================================ */
:root {
    --bg:       #ffffff;
    --panel:    #f5f8fa;
    --panel2:   #eaf0f4;
    --border:   #99bbcc;
    --border2:  #ccdde6;
    --text:     #333355;
    --sub:      #556688;
    --accent:   #227777;
    --accent2:  #115555;
    --danger:   #993333;
    --success:  #2e8b47;
    --success2: #1c5c2d;
    /* accent に反応する要素の薄い下地。hover・選択中・OKトースト共通 */
    --hover:     #eef5f5;
    /* 出力キャンバスの下地。ドット絵を載せる暗色で、--text とは別物 */
    --canvas-bg: #111111;
    /* 暗い出力欄（ASCII アートやテキストの成果物）。--canvas-bg より青みのある別物 */
    --output-bg: #1a1d28;
    --output-fg: #c8cfe8;
    /* --danger の濃い側。枠線とホバーに使う（--accent と --accent2 の関係と同じ） */
    --danger2:   #662222;
    --radius:   3px;
    /* Courier New はビットマップではないので、等幅枠もマルミーニャにする。
       PixelMplus12 は同じ等幅（半角 6px / 全角 12px）で、マルミーニャに無い字（▶ など）の受け皿 */
    --font-mono:    'MaruMinya', 'PixelMplus12', 'Courier New', monospace;
    --font-heading: 'TenoText 8x8', var(--font-mono);
    --font-body:    'MaruMinya', var(--font-mono);
    /* 本文専用の日本語ゴシック（POEM / POLICY）。ビットマップではない。
       UI 側の --font-body とは別枠。半角カナや絵文字が出るのでフォールバックを厚めに取る */
    --font-read:    'M PLUS 2', 'Noto Sans JP', 'Hiragino Kaku Gothic ProN', 'Yu Gothic', sans-serif;
    /* フッターなどの控えめな文字色（PROFILE / POLICY） */
    --muted:    #aabbcc;
}

@font-face {
    font-family: 'TenoText 8x8';
    src: url('/fonts/TenoText 8x8.otf') format('opentype');
}
@font-face {
    font-family: 'PixelMplus12';
    src: url('/fonts/PixelMplus12-Regular.ttf') format('truetype');
}
@font-face {
    font-family: 'MaruMinya';
    src: url('/fonts/x12y12pxMaruMinya.ttf') format('truetype');
}

/* ドット絵フォントは太字を持たない。ブラウザの合成ボールドで輪郭が滲むのを止める。
   M PLUS 2（--font-read）は本物の太字を持つので、POEM / POLICY 本文の太字は残る */
:root { font-synthesis: none; }

/* ドット絵の <img> に枠線を付けるときは box-sizing: content-box にして、width/height を
   中身の寸法（実寸の整数倍）で書く。border-box のままだと枠線の分だけ中身が縮み、非整数倍になる */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

body {
    background: var(--bg);
    color: var(--text);
    font-family: var(--font-body);
    font-size: 12px;
    line-height: 16px;
    margin: 0;
}

/* ── ヘッダー（GLYPHALT/TEXTALTと共通の見た目） ── */
.site-header {
    border-bottom: 2px solid var(--border);
    padding: 12px 20px;
    display: flex;
    flex-wrap: wrap;   /* 狭い画面でロゴとタグラインを段に分ける（長いロゴは <wbr> で折れる） */
    align-items: baseline;
    gap: 4px 16px;
}
/* スクロールしても残すヘッダ（TEXTALT / TENOMOJI）。<header class="site-header sticky"> */
/* top は上部ナビ（menu.js が高さを --sodenmir-topbar-h に入れる）の真下。0 だと上部ナビの裏に潜る */
.site-header.sticky { position: sticky; top: var(--sodenmir-topbar-h, 56px); z-index: 100; }
/* 見出しフォント（TenoText 8x8）を使う要素の約束：
   - font-size は 8 の倍数だけ。8=等倍 / 16=2倍 / 24=3倍。
     20px や 12px のような中途半端な値はドットが非整数倍に潰れる
   - 元からボールド調のフォントなので font-weight は付けない
     （付けると合成ボールドがかかって輪郭が滲む） */
.site-header .logo { font-family: var(--font-heading); font-size: 24px; line-height: 24px; color: var(--accent); letter-spacing: 3px; }
.site-header .logo em { color: var(--text); font-style: normal; }
.site-header .tagline { font-family: var(--font-body); font-size: 12px; line-height: 16px; color: var(--sub); letter-spacing: 1px; }

/* ── ページ本文の共通余白 ── */
.page-content {
    padding: 20px;
    max-width: 960px;
    margin: 0 auto;
}
.page-content.wide { max-width: 1100px; }

/* ── パネル / セクション ── */
.panel {
    border: 1px solid var(--border);
    background: var(--panel);
    border-radius: var(--radius);
}
.panel-head {
    font-family: var(--font-heading);
    font-size: 8px;
    line-height: 8px;
    letter-spacing: 2px;
    color: var(--accent);
    background: var(--panel2);
    border-bottom: 1px solid var(--border);
    padding: 5px 10px;
}
.panel-body { padding: 12px; }

.section-title {
    font-family: var(--font-heading);
    font-size: 16px;
    line-height: 16px;
    font-weight: normal;   /* h2 で使っても太字にしない（TenoText は元から太い） */
    letter-spacing: 2px;
    color: var(--accent);
    border-bottom: 1px solid var(--border);
    padding-bottom: 4px;
    margin-bottom: 12px;
}

/* ── ボタン ── */
.btn {
    padding: 8px 14px;
    background: var(--accent);
    color: #fff;
    border: 1px solid var(--accent2);
    border-radius: var(--radius);
    font-family: var(--font-body);
    font-size: 12px;
    line-height: 16px;
    letter-spacing: 2px;
    cursor: pointer;
    transition: background 0.1s;
}
.btn:hover { background: var(--accent2); }
.btn:active { opacity: 0.85; }
.btn.secondary { background: transparent; color: var(--accent); border-color: var(--accent); }
.btn.secondary:hover { background: var(--hover); }

/* ── ステータス風ラベル ── */
.status-line {
    font-family: var(--font-body); font-size: 12px; line-height: 16px;
    color: var(--sub); padding: 3px 6px;
    background: var(--bg); border: 1px solid var(--border);
    border-radius: var(--radius); letter-spacing: 1px;
    display: inline-block;
}

/* ── タグ / チップ ── */
.tag {
    font-family: var(--font-body);
    font-size: 12px;
    line-height: 16px;
    color: var(--accent2);
    background: var(--bg);
    border: 1px solid var(--border);
    padding: 2px 6px;
    letter-spacing: 1px;
    border-radius: var(--radius);
    display: inline-block;
}

/* ── リンク ── */
a { color: var(--accent); }
a:hover { color: var(--accent2); }

hr.divider { border: none; border-top: 1px solid var(--border2); margin: 10px 0; }
