/* 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; }
.kosu-btn {
    display: inline-block;
    font: inherit;
    padding: 0.55rem 1.1rem;
    border-radius: 0.5rem;
    border: 1px solid #1d4ed8;
    background: #1d4ed8;
    color: #fff;
    text-decoration: none;
    cursor: pointer;
}
.kosu-btn-sub { background: #fff; color: #1d4ed8; }
.kosu-btn-danger { background: #fff; color: #b91c1c; border-color: #b91c1c; }
.kosu-btn-small { padding: 0.25rem 0.6rem; font-size: 0.85rem; }
.kosu-btn[disabled] { opacity: 0.5; cursor: not-allowed; }
.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; }

/* bomb側LP・コラム用 */
.kosu-lp { max-width: 48rem; margin: 0 auto; padding: 0 1rem 2.5rem; box-sizing: border-box; font-family: 'M PLUS 1p', 'Sawarabi Gothic', sans-serif; line-height: 1.7; }
.kosu-lp h1 { font-size: 1.6rem; margin: 1.2rem 0 0.6rem; }
.kosu-lp h2 { font-size: 1.25rem; }
.kosu-lp .kosu-lead { color: #444; }
.kosu-lp .kosu-points { margin: 0.5rem 0 1rem; padding-left: 1.2rem; }
.kosu-lp .kosu-faq dt { font-weight: bold; margin-top: 0.8rem; }
.kosu-lp .kosu-faq dd { margin: 0.2rem 0 0; }
.kosu-cta-box { max-width: 48rem; margin: 1.5rem auto; padding: 1rem; border: 1px solid #d9deea; border-radius: 0.5rem; background: #f7f8fb; text-align: center; box-sizing: border-box; }
.kosu-cta-box__title { font-weight: bold; margin: 0 0 0.3rem; }
.kosu-cta-box p { margin: 0.3rem 0; }
.kosu-cta-box__btns { display: flex; flex-wrap: wrap; gap: 0.5rem; justify-content: center; margin-top: 0.6rem; }
