@charset "UTF-8";
/* CSS Document */
/* あの日の相場｜この日の為替 */
/* みんなの知識 ちょっと便利帳 */
/* C2026/07/22 */

.souba-wrap{
    font-family: system-ui,-apple-system,"Segoe UI",sans-serif;
    background: #FFF8F2; /* 優しい淡いアプリコットオレンジ */
    margin: 10px auto;
    padding: 0 10px;
    border: 2px solid #E06D28; /* パッと目を引く温かみのあるオレンジ */
    border-radius: 10px;
    box-shadow: 0 4px 16px rgba(224, 109, 40, 0.12); /* オレンジのニュアンスを含んだ影 */
    color: #36251A; /* ダークなウォームブラウンで高い可読性を確保 */
    line-height: 1.85;
    font-size: 17px;
}
.souba-wrap *{ box-sizing:border-box; }

.souba-container{
    max-width:800px;
    margin:auto;
    padding: 20px 0 30px;
}

.souba-header{
    text-align:center;
    padding: 6px 4px 4px;
}
.souba-header h1{
    font-family: "Yu Mincho","Hiragino Mincho ProN",serif;
    font-size: clamp(21px, 4.5vw, 29px);
    margin: 0 0 8px;
    letter-spacing: .04em;
    color:#1F4E3D;
}
.souba-header p{
    margin:0;
    font-size:16px;
    color:#516158;
}

.souba-controls{
    display:flex;
    flex-wrap:wrap;
    align-items:center;
    justify-content:center;
    gap:12px;
    margin:22px 0 8px;
}
.souba-controls label{
    font-size:17px;
    color:#1F4E3D;
    font-weight:700;
}
.souba-controls input[type="date"]{
    font-family:inherit;
    font-size:17px;
    padding:10px 12px;
    border:1.5px solid #A9C2B4;
    border-radius:8px;
    background:#fff;
    color:#20293A;
}
.souba-btn{
    font-family:inherit!important;
    font-size:17px!important;
    font-weight:700!important;
    padding:11px 20px!important;
    border-radius:22px!important;
    border:1.5px solid #1F4E3D!important;
    background:#1F4E3D!important;
    color:#F4F8F6!important;
    cursor:pointer!important;
    transition: transform .12s ease, box-shadow .12s ease, opacity .12s ease!important;
    white-space:nowrap!important;
}
.souba-btn:hover{ transform: translateY(-1px); box-shadow:0 3px 10px rgba(31,78,61,.35)!important; }
.souba-btn:active{ transform: translateY(0)!important; }

.souba-wrap .souba-quick-jump{
    display:flex;
    flex-wrap:wrap;
    align-items:center;
    gap:8px 10px;
    max-width:740px;
    margin:16px auto 4px;
    padding:13px 14px;
    background:#fff;
    border:1.5px solid #DCE8E1;
    border-radius:12px;
    font-size:15.5px;
}
.souba-wrap .souba-quick-jump > span{
    font-weight:700;
    font-size:15.5px;
    color:#1F4E3D;
}
.souba-wrap .souba-jump-link{
    display:inline-block;
    font-size:14.5px;
    font-weight:600;
    padding:7px 13px;
    border-radius:999px;
    background:#EAF1EC;
    color:#1F4E3D;
    text-decoration:none;
    border:1px solid #DCE8E1;
    cursor:pointer;
    transition: background .12s ease, transform .12s ease;
}
.souba-wrap .souba-jump-link:hover{
    background:#1F4E3D;
    color:#F4F8F6;
    transform: translateY(-1px);
}
.souba-wrap .souba-jump-link.is-active{
    background:#C1622D;
    color:#fff;
    border-color:#C1622D;
}

.souba-elapsed{
    text-align:center;
    margin: 10px 0 6px;
    font-size: 17px;
    color:#1F4E3D;
}
.souba-elapsed strong{
    font-size:20px;
    color:#C1622D;
    margin:0 2px;
}

.souba-adjusted-note{
    text-align:left;
    font-size:14px;
    color:#8A7350;
    background:#FBF3E9;
    border:1px solid #EFDFC4;
    border-radius:8px;
    padding:8px 12px;
    max-width:600px;
    margin:6px auto 0;
}

.souba-compare{
    display:grid;
    grid-template-columns: 1fr 1fr;
    gap:18px;
    margin-top:18px;
}
@media (max-width:640px){
    .souba-compare{ grid-template-columns: 1fr; }
}

.souba-card{
    background:#fff;
    border: 2px solid #DCE8E1;
    border-radius:14px;
    padding:20px;
    margin:20px 0 16px 0;
    box-shadow:0 4px 16px rgba(0,0,0,.08);
}
.souba-compare .souba-card{ margin:0; }

.souba-card-head{
    display:flex;
    align-items:baseline;
    justify-content:space-between;
    gap:8px;
    padding-bottom:12px;
    margin-bottom:12px;
    border-bottom: 2px dashed #E7EFEA;
}
.souba-card-head .souba-badge{
    font-size:13.5px;
    font-weight:700;
    padding:4px 12px;
    border-radius:999px;
    letter-spacing:.05em;
}
.souba-card.souba-left .souba-card-head .souba-badge{ background:#E7EFEA; color:#1F4E3D; }
.souba-card.souba-right .souba-card-head .souba-badge{ background:#C1622D; color:#fff; }

.souba-card-date{
    font-family:"Yu Mincho","Hiragino Mincho ProN",serif;
    font-size:22px;
    font-weight:700;
    color:#20293A;
}

.souba-rate-table{
    width:100%;
    border-collapse:collapse;
}
.souba-rate-table tr{
    border-bottom:1px solid #EEF2EF;
}
.souba-rate-table tr:last-child{ border-bottom:none; }
.souba-rate-table td{
    padding:10px 4px;
    vertical-align:middle;
}
.souba-cur-name{
    font-size:16.5px;
    font-weight:700;
    color:#20293A;
}
.souba-cur-code{
    font-size:13px;
    color:#8089A0;
    margin-left:4px;
    font-weight:400;
}
.souba-rate-value{
    text-align:right;
    font-size:18px;
    font-weight:700;
    color:#1F4E3D;
    white-space:nowrap;
}
.souba-rate-value small{
    font-size:13.5px;
    font-weight:500;
    color:#8089A0;
    margin-left:2px;
}

.souba-highlights{
    display:flex;
    flex-wrap:wrap;
    gap:14px;
    margin:6px 0 16px;
}
.souba-highlight{
    flex:1 1 260px;
    background:#fff;
    border:2px solid #DCE8E1;
    border-radius:14px;
    padding:16px 18px;
    box-shadow:0 4px 16px rgba(0,0,0,.06);
}
.souba-highlight-label{
    font-size:14.5px;
    font-weight:700;
    color:#516158;
    margin-bottom:6px;
}
.souba-highlight-flow{
    display:flex;
    align-items:baseline;
    flex-wrap:wrap;
    gap:8px;
    font-size:19px;
    font-weight:700;
    color:#20293A;
}
.souba-highlight-flow .souba-arrow{
    color:#A9C2B4;
    font-size:17px;
    font-weight:400;
}
.souba-highlight-diff{
    display:inline-block;
    margin-left:4px;
    font-size:15px;
    font-weight:700;
    padding:2px 10px;
    border-radius:999px;
}
.souba-highlight-diff.is-up{ background:#FBEAE7; color:#C0392B; }
.souba-highlight-diff.is-down{ background:#E8EFF8; color:#2E5FA3; }
.souba-highlight-diff.is-flat{ background:#EEF2EF; color:#556058; }

.souba-yen-table{
    margin-top:20px;
	padding: 0 15px;
}
.souba-yen-table table{
    width:100%;
    border-collapse:collapse;
}
.souba-yen-table caption{
    text-align:left;
    font-size:15.5px;
    font-weight:700;
    color:#1F4E3D;
    margin-bottom:10px;
}
.souba-yen-table th,
.souba-yen-table td{
    padding:9px 8px;
    font-size:15.5px;
    border-bottom:1px solid #EEF2EF;
    text-align:right;
}
.souba-yen-table th:first-child,
.souba-yen-table td:first-child{
    text-align:left;
}
.souba-yen-table thead th{
    color:#516158;
    font-weight:700;
    font-size:14.5px;
    border-bottom:2px solid #DCE8E1;
}

.souba-note{
    font-size:13.5px;
    color:#8089A0;
    margin-top:10px;
    padding-top:10px;
    border-top: 1px dashed #E7EFEA;
}
.souba-note strong{ color:#C1622D; }

.souba-state{
    text-align:center;
    padding: 32px 10px;
    color:#5C6B62;
    font-size:16px;
}
.souba-state.souba-error{ color:#a83b2e; }
.souba-spinner{
    width:24px; height:24px;
    margin:0 auto 12px;
    border-radius:50%;
    border:3px solid #E7EFEA;
    border-top-color:#1F4E3D;
    animation: souba-spin .8s linear infinite;
}
@keyframes souba-spin{ to{ transform:rotate(360deg); } }

.souba-footer{
    text-align:center;
    margin-top:16px;
    font-size:13.5px;
    color:#8089A0;
    line-height:1.9;
}
.souba-footer a{ color:#1F4E3D; }

/* 昭和・平成のドル円 歴史カード */
.souba-history-card {
    background: #fff;
    border: 2px solid #DCE8E1;
    border-radius: 14px;
    padding: 24px 20px;
    margin: 28px 0 16px;
    box-shadow: 0 4px 16px rgba(0,0,0,.06);
}
.souba-history-head {
    border-bottom: 2px solid #1F4E3D;
    padding-bottom: 10px;
    margin-bottom: 20px;
}
.souba-history-head h2 {
    font-family: "Yu Mincho", "Hiragino Mincho ProN", serif;
    font-size: 21px;
    color: #1F4E3D;
    margin: 0 0 4px;
}
.souba-history-head p {
    font-size: 14.5px;
    color: #516158;
    margin: 0;
}

/* タイムラインの構造 */
.souba-history-timeline {
    display: flex;
    flex-direction: column;
    gap: 16px;
}
.souba-history-item {
    display: flex;
    gap: 16px;
    padding-bottom: 16px;
    border-bottom: 1px dashed #E7EFEA;
}
.souba-history-item:last-child {
    border-bottom: none;
    padding-bottom: 0;
}

.souba-history-year {
    flex: 0 0 auto;         /* 幅を固定せず、中の文字に合わせて自動伸縮 */
    white-space: nowrap;    /* 強制的にテキストの折り返しを防止 */
    font-size: 15px;
    font-weight: 700;
    color: #1F4E3D;
    background: #EAF1EC;
    padding: 6px 12px;
    border-radius: 6px;
    text-align: center;
    height: fit-content;
}
.souba-history-body {
    flex: 1;
}
.souba-history-title {
    font-size: 17.5px;
    font-weight: 700;
    color: #20293A;
    margin-bottom: 4px;
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px;
}

/* タグ（バッジ）デザイン */
.souba-tag {
    font-size: 12.5px;
    font-weight: 700;
    padding: 2px 8px;
    border-radius: 4px;
    background: #EEF2EF;
    color: #516158;
}
.souba-tag.highlight {
    background: #E8EFF8;
    color: #2E5FA3;
}
.souba-tag.alert {
    background: #FBEAE7;
    color: #C0392B;
}

.souba-history-desc {
    font-size: 15px;
    color: #414D46;
    line-height: 1.6;
}

/* スマホ表示用の最適化 */
@media (max-width: 600px) {
    .souba-history-item {
        flex-direction: column;
        gap: 8px;
    }
    .souba-history-year {
        flex: none;
        width: 100%;
        text-align: left;
    }
}
