a {
    text-decoration: underline;
}
a:hover {
    text-decoration: none;
}


/***************************
login
****************************/

.login {
    align-items: center;
    display: flex;
    height: 100vh;
    justify-content: center;
}
.login__block {
    background-color: #fff3cd;
    padding: 50px;
    max-width: 600px;
    width: 100%;
}
.login__title {
    font-size: 22px;
    margin-block: 0;
    margin-bottom: 20px;
    text-align: center;
}
.login__box:not(last-of-type) {
    margin-bottom: 20px;
}
.login__box {
    align-items: center;
    display: flex;
}
.login__headline {
    width: 150px;
}
.login__input {
    width: calc(100% - 150px);
}
.login__input input {
    padding: 5px;
    width: 100%;
}
.login__button {
    background-color: #FFF;
    display: block;
    margin: 0 auto;
    padding: 5px 20px;
}
.login__error {
    color: #EE0000;
    margin-top: 20px;
    text-align: center;
}

/****************************
header
 */

.header {
    background-color: #ccc;
    padding: 20px;
}
.header__title {
    margin: 0;
}

/****************************
content
 */
.content {
    padding: 20px;
}

/****************************
footer
 */

.footer {
    background-color: #f6f8fa;
    padding: 20px;
}

.footer__title {
    font-size: 20px;
    font-weight: bold;
    text-align: center;
}
.footer__title::before,
.footer__title::after {
    content: "-";
    margin: 0 10px;
}

.footer__list {
    list-style: circle;
    list-style-position: inside;
}

/****************************
dashboard
 */

.dashboard__block {
    display: grid;
    gap: 20px;
    grid-template-columns: 1fr 1fr;
}

.dashboard__boxes {
    background-color: #fff3cd;
    padding: 30px;
}

.dashboard__title {
    border-bottom: 1px solid #333;
    font-size: 20px;
    margin-bottom: 10px;
    padding-bottom: 10px;
}
.dashboard__list {
    list-style: circle;
    list-style-position: inside;
}
.dashboard__list:not(:last-child) {
    margin-bottom: 10px;
}





table { border-collapse: collapse; }
td {
    border: 1px solid #aaa;
    padding: 4px;
    position: relative;
    white-space: pre-wrap;  /* ★ 追加：\n を改行として描画 */
    word-break: break-word; /* 任意：長語の回り込み */
}
.word-tip {
    text-decoration: underline dotted; /* 下線 */
    cursor: help;
}
/* ツールチップ本体（1個を使い回す） */
.tooltip-box {
    position: absolute;
    background: #333; color: #fff;
    padding: 6px 8px; border-radius: 6px;
    font-size: 12px; line-height: 1.4;
    max-width: 360px; white-space: pre-line;
    z-index: 9999; display: none;
    box-shadow: 0 4px 12px rgba(0,0,0,.25);
}






:root { --border:#d0d7de; --muted:#667085; }
body { font-family: system-ui, -apple-system, "Segoe UI", Roboto, "Hiragino Sans", "Noto Sans JP", "Yu Gothic UI", "Meiryo", sans-serif; margin: 20px; }
h1 { font-size: 20px; margin: 0 0 12px; }
.toolbar { display:flex; gap:8px; align-items:center; margin-bottom:12px; flex-wrap:wrap; }
.search { flex:1; min-width: 220px; }
input[type="text"],
input[type="password"]{
    width:100%; padding:10px 12px; border:1px solid var(--border); border-radius:8px; font-size:14px;
}
.count { color: var(--muted); font-size: 12px; }
table { width: 100%; border-collapse: collapse; table-layout: fixed; }
th, td { border:1px solid var(--border); padding:8px 10px; vertical-align: top; }
th { background:#f6f8fa; text-align:left; position: sticky; top:0; z-index: 1; }
td { white-space: pre-wrap; word-wrap: break-word; }
.en { width: 28%; }
.jp { width: 24%; }
.desc { width: 48%; }
.muted { color: var(--muted); }
.nowrap { white-space: nowrap; }
.btn { display:inline-block; padding:8px 12px; border:1px solid var(--border); border-radius:8px; text-decoration:none; color:#111; background:#fff; }
.btn:hover { background:#f6f8fa; }
.row-hidden { display:none; }
.cell-highlight { background: #fff3cd; } /* 任意：ヒット強調 */