/* static/css/kosuapp/calc.css  計算カード・保存画面の共通部品(縦積み) */
.kosu-card {
    background: #fff;
    border: 1px solid #d9deea;
    border-radius: 0.75rem;
    padding: 1rem 1.1rem;
    margin: 1rem 0;
}
.kosu-card h2, .kosu-card h3 { margin-top: 0; }
.kosu-fields { display: flex; flex-wrap: wrap; gap: 0.75rem 1rem; }
.kosu-field { display: flex; flex-direction: column; flex: 1 1 10rem; min-width: 0; }
.kosu-field label { font-size: 0.8125rem; color: #445; margin-bottom: 0.2rem; }
.kosu-field input, .kosu-field select, .kosu-input {
    font: inherit;
    padding: 0.45rem 0.55rem;
    border: 1px solid #b8c0d4;
    border-radius: 0.4rem;
    width: 100%;
    box-sizing: border-box;
    background: #fff;
}
.kosu-radio-row { display: flex; flex-wrap: wrap; gap: 0.5rem 1.25rem; margin-bottom: 0.75rem; }
.kosu-radio-row label { cursor: pointer; }
.kosu-result { margin-top: 0.9rem; padding-top: 0.75rem; border-top: 1px dashed #c9d1e4; }
.kosu-result-grid { display: flex; flex-wrap: wrap; gap: 0.6rem; }
.kosu-stat {
    flex: 1 1 8rem;
    background: #f1f5ff;
    border-radius: 0.6rem;
    padding: 0.55rem 0.7rem;
}
.kosu-stat-label { font-size: 0.75rem; color: #556; }
.kosu-stat-value { font-size: 1.35rem; font-weight: bold; color: #1e3a8a; word-break: break-all; }
.kosu-stat-big .kosu-stat-value { font-size: 1.6rem; }
.kosu-stat-sub { font-size: 0.8125rem; color: #556; }
.kosu-error { color: #b91c1c; font-size: 0.9rem; margin: 0.4rem 0 0; }
.kosu-hint { color: #667; font-size: 0.8125rem; margin: 0.4rem 0 0; }
.kosu-formula { color: #667; font-size: 0.78rem; margin: 0.6rem 0 0; }
/* ボタン: プッシュール(pushule_cta)と同じ形式 = 丸ピル型・太字・コーラル */
.kosu-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font: inherit;
    font-weight: 800;
    padding: 0.75rem 1.2rem;
    border-radius: 999px;
    border: 2px solid transparent;
    background: #ff6b6b;
    color: #fff;
    text-decoration: none;
    cursor: pointer;
}
.kosu-btn:hover { filter: brightness(0.95); }
.kosu-btn-sub { background: #fff; color: #ff6b6b; border-color: #ff6b6b; }
.kosu-btn-danger { background: #fff; color: #b91c1c; border-color: #b91c1c; }
.kosu-btn-small { padding: 0.25rem 0.75rem; font-size: 0.85rem; font-weight: 700; }
.kosu-btn[disabled] { opacity: 0.5; cursor: not-allowed; }
@media (max-width: 600px) { .kosu-cta .kosu-btn { width: 100%; } }
.kosu-cta { text-align: center; }
.kosu-banner { background: #fff7ed; border: 1px solid #fdba74; border-radius: 0.6rem; padding: 0.6rem 0.9rem; margin: 1rem 0; }
.kosu-banner-warn { background: #fee2e2; border-color: #fca5a5; }
.kosu-code { font-family: Consolas, monospace; font-weight: bold; letter-spacing: 0.1em; }
.kosu-list { list-style: none; margin: 0; padding: 0; }
.kosu-list li { display: flex; flex-wrap: wrap; align-items: center; gap: 0.4rem 0.75rem; padding: 0.5rem 0; border-bottom: 1px solid #eceff6; }
.kosu-list li:last-child { border-bottom: 0; }
.kosu-list-main { flex: 1 1 12rem; min-width: 0; }
.kosu-list-meta { font-size: 0.8125rem; color: #556; }
.kosu-inline-form { display: inline; margin: 0; }
.kosu-task { border: 1px solid #d9deea; border-radius: 0.6rem; padding: 0.7rem; margin-bottom: 0.7rem; background: #fbfcff; }
.kosu-task-tools { display: flex; gap: 0.4rem; justify-content: flex-end; margin-top: 0.5rem; }
.kosu-table { width: 100%; border-collapse: collapse; background: #fff; font-size: 0.9rem; }
.kosu-table th, .kosu-table td { border: 1px solid #d9deea; padding: 0.4rem 0.55rem; text-align: left; }
.kosu-table td.num, .kosu-table th.num { text-align: right; }
