*{box-sizing:border-box}
:root{
    --main-color:#1e4f8f;
    --accent-color:#f5b84b;
    --text-color:#172033;
    --hero-text-color:#172033;
    --hero-border-color:#ff6600;
    --panel-border-color:#a9a9a9;
    --bg-color:#ffffff;
    --panel-bg-color:#ffffff;
}
html,body{
    margin:0;
    padding:0;
    background:var(--bg-color);
}
body{
    font-family:-apple-system,BlinkMacSystemFont,"Hiragino Kaku Gothic ProN","Yu Gothic",Meiryo,sans-serif;
    color:var(--text-color);
    line-height:1.7;
}
.wrap{
    max-width:1040px;
    margin:0 auto;
    padding:24px 18px 60px;
}
.top-back-link{
    margin:0 0 14px;
}
.top-back-link a{
    display:inline-flex;
    align-items:center;
    gap:6px;
    color:var(--main-color);
    background:#ffffff;
    border:2px solid var(--panel-border-color);
    border-radius:999px;
    padding:8px 14px;
    text-decoration:none;
    font-weight:700;
    box-shadow:none;
}
.top-back-link a::before{
    content:"←";
}
.hero{
    background:var(--panel-bg-color);
    color:var(--hero-text-color);
    border:3px solid var(--hero-border-color);
    padding:34px;
    border-radius:22px;
    margin-bottom:22px;
    box-shadow:none;
}
.brand-row{
    display:flex;
    align-items:center;
    gap:18px;
}
.site-logo{
    height:auto;
    max-width:100%;
    max-height:90px;
    object-fit:contain;
    background:#fff;
    border:2px solid var(--panel-border-color);
    border-radius:14px;
    padding:8px;
}
.hero h1{
    margin:.15em 0;
    font-size:clamp(23px,4vw,40px);
    letter-spacing:.02em;
    color:var(--hero-text-color);
    line-height:1.3;
}
.hero p{
    margin:.5em 0 0;
    color:var(--hero-text-color);
}
.eyebrow{
    margin:0;
    font-size:13px;
    letter-spacing:.12em;
    font-weight:700;
    color:var(--hero-text-color)!important;
}
.panel,
.result,
.info-card,
.blog-card,
.mode-explain{
    background:var(--panel-bg-color);
    border:2px solid var(--panel-border-color);
    border-radius:18px;
    padding:24px;
    box-shadow:none;
    margin-bottom:22px;
}
.info-card h2,
.blog-card h2,
.mode-explain h2{
    margin-top:0;
}
.mode-row,
.check-row{
    display:flex;
    gap:18px;
    flex-wrap:wrap;
    margin-bottom:14px;
}
.mode-row label,
.check-row label{
    background:#fff;
    border:2px solid #e4e9f1;
    padding:8px 12px;
    border-radius:999px;
}
.analysis-mode-box{
    background:var(--panel-bg-color);
    border:2px solid var(--panel-border-color);
    border-radius:14px;
    padding:14px;
    margin:10px 0 16px;
}
.mode-label{
    margin:0 0 8px;
    font-weight:700;
    color:var(--text-color);
}
.mode-help{
    margin:6px 0 0;
    font-size:13px;
    color:#667085;
}
.mode-cards{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:16px;
}
.mode-card{
    border:2px solid var(--panel-border-color);
    border-radius:14px;
    padding:16px;
    background:var(--panel-bg-color);
}
.mode-card h3{
    margin:0 0 8px;
    color:var(--main-color);
}
.mode-card p{
    margin:0;
}
.input-block{
    margin-bottom:14px;
}
.wide,
textarea,
.target-line input,
.advanced textarea{
    width:100%;
    border:2px solid #cbd3df;
    border-radius:10px;
    padding:11px 12px;
    font-size:15px;
    background:#fff;
}
textarea{
    resize:vertical;
}
.source-block{
    display:none;
}
body.mode-source .source-block{
    display:block;
}
body.mode-source .url-block{
    display:none;
}
.targets{
    border-top:2px solid #eef1f5;
    margin-top:14px;
    padding-top:12px;
}
.targets h2{
    font-size:17px;
    margin:0 0 10px;
}
.target-line{
    display:grid;
    grid-template-columns:minmax(0,1fr) 90px;
    gap:10px;
    margin-bottom:8px;
}
.target-line select{
    border:2px solid #cbd3df;
    border-radius:10px;
    padding:8px;
    background:#fff;
}
.advanced{
    margin:12px 0;
}
.advanced summary{
    cursor:pointer;
    color:var(--main-color);
    font-weight:700;
}
.btn,
.copy-btn,
.blog-link{
    display:inline-block;
    border:0;
    border-radius:999px;
    padding:12px 24px;
    background:var(--main-color);
    color:#fff;
    font-weight:700;
    cursor:pointer;
    text-decoration:none;
}
.btn:hover,
.copy-btn:hover,
.blog-link:hover{
    opacity:.9;
}
.copy-btn{
    background:#354052;
    padding:9px 16px;
}
.error{
    margin:18px 0;
    background:#fff2f2;
    color:#9b1c1c;
    border:2px solid #f3c2c2;
    padding:14px 16px;
    border-radius:12px;
}
.result{
    margin-top:24px;
}
.result-head{
    display:flex;
    justify-content:space-between;
    gap:12px;
    align-items:center;
}
.result h2{
    margin:0 0 16px;
}
.result h3{
    margin-top:28px;
    border-left:5px solid var(--main-color);
    padding-left:10px;
}
table{
    width:100%;
    border-collapse:collapse;
    font-size:14px;
}
.meta-table th{
    width:170px;
    background:#f7f8fa;
    text-align:left;
    vertical-align:top;
}
th,td{
    border-bottom:1px solid #dfe3e8;
    padding:10px 9px;
}
.rank-table th{
    background:#eef2f7;
    text-align:left;
    white-space:nowrap;
}
.rank-table tr:nth-child(even) td{
    background:#fafbfc;
}
.table-scroll{
    overflow-x:auto;
}
.bar{
    display:block;
    width:100%;
    height:12px;
    background:#e6e9ee;
    border-radius:999px;
    overflow:hidden;
    min-width:120px;
}
.bar span{
    display:block;
    height:100%;
    background:var(--accent-color);
}
.plus{
    color:#0b7a35;
    font-weight:700;
}
.minus{
    color:#b42318;
    font-weight:700;
}
.copy-source{
    position:absolute;
    left:-9999px;
    top:auto;
    width:1px;
    height:1px;
    overflow:hidden;
}
.guide-grid{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:22px;
}
.blog-card{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:24px;
}
.blog-logo{
    height:auto;
    max-width:100%;
    max-height:110px;
    object-fit:contain;
}
.footer{
    text-align:center;
    color:#667085;
    font-size:13px;
    margin-top:28px;
}
.footer a{
    color:var(--main-color);
    font-weight:700;
    text-decoration:none;
    margin-left:8px;
}
.footer a:hover{
    text-decoration:underline;
}
@media (max-width:760px){
    .wrap{
        padding:20px 12px 46px;
    }
    .hero,
    .panel,
    .result,
    .info-card,
    .blog-card,
    .mode-explain{
        padding:18px;
    }
    .brand-row,
    .blog-card{
        display:block;
    }
    .site-logo,
    .blog-logo{
    height:auto;
    max-width:100%;
    max-height:110px;
    object-fit:contain;
}
    .target-line{
        grid-template-columns:1fr;
    }
    table{
        font-size:13px;
    }
    .meta-table th{
        width:110px;
    }
    .guide-grid,
    .mode-cards{
        grid-template-columns:1fr;
    }
}
