.phase-links{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:0 0 18px}.phase-links button{border:1px solid var(--line);background:#fff;border-radius:13px;padding:14px;text-align:left;display:flex;flex-direction:column;gap:6px;cursor:pointer}.phase-links button:hover{border-color:#6f8b7b;transform:translateY(-1px)}.phase-links span{font-size:9px;color:var(--muted)}.phase-links strong{font-size:13px}.phase-links small{color:#315d48}.phase-card{margin-top:18px}.lifecycle-ribbon{display:grid;grid-template-columns:repeat(5,1fr);gap:7px;margin:14px 0 22px}.life-stage{padding:12px;border-radius:10px;background:#edf3ef;display:flex;justify-content:space-between;align-items:center;font-size:10px}.life-stage.s1{background:#dcebdd}.life-stage.s2{background:#e8f0df}.life-stage.s3{background:#fff1d4}.life-stage.s4{background:#f3e5df}.life-stage strong{font-size:11px}.lifecycle-table{min-width:980px}.goal-gauge{padding:28px 6px 24px}.goal-scale,.goal-legend{display:flex;justify-content:space-between;font-size:9px;color:var(--muted)}.goal-track{height:18px;background:#edf1ee;border-radius:999px;position:relative;margin:10px 0}.goal-track i{position:absolute;inset:0 auto 0 0;background:#173d2b;border-radius:999px}.goal-track b{position:absolute;top:-5px;height:28px;width:2px;background:#d99d27}.scenario-stack{display:grid;gap:10px}.scenario{border:1px solid var(--line);border-radius:12px;padding:15px;display:grid;grid-template-columns:1fr auto;gap:5px}.scenario span{font-size:10px;color:var(--muted)}.scenario strong{font-size:18px}.scenario small{grid-column:1/-1;color:var(--muted)}.scenario.selected{background:#edf4ef;border-color:#779383}.cover{display:inline-block;padding:5px 8px;border-radius:999px;background:#e7f0e9;font-size:9px;font-weight:700}.cover.warning{background:#fff1d4;color:#8a5a00}.cover.danger{background:#fbe8e5;color:#a43d31}.rule-list{display:grid;gap:9px}.rule-list>div{padding:13px;background:#f4f7f5;border-radius:9px;display:flex;justify-content:space-between}.rule-list strong,.rule-list span{font-size:10px}.rule-list span{color:var(--muted)}@media(max-width:900px){.phase-links{grid-template-columns:repeat(2,1fr)}}@media(max-width:620px){.phase-links,.lifecycle-ribbon{grid-template-columns:1fr}.scenario{grid-template-columns:1fr}}
.target-pace-card{min-width:0}.target-pace-card .panel-title{gap:12px;flex-wrap:wrap}.target-pace-card .panel-title h2{min-width:0;margin-bottom:4px}.target-pace-card .goal-legend{gap:12px;flex-wrap:wrap}.target-contribution-grid{grid-template-columns:minmax(0,1.45fr) minmax(300px,.85fr)}
.channel-goal-chart{margin-top:16px}.channel-goal-legend{display:flex;justify-content:flex-end;gap:14px;margin-bottom:14px;font-size:8px;color:var(--muted)}.channel-goal-legend i{display:inline-block;width:16px;height:5px;border-radius:3px;margin-right:5px;vertical-align:1px}.channel-goal-legend .actual{background:var(--brand)}.channel-goal-legend .forecast{background:#9db2a5}.channel-goal-legend .target{width:2px;height:12px;background:var(--warning);vertical-align:-3px}.goal-channel-row{padding:10px 0;border-bottom:1px solid #edf1ee}.goal-channel-row:last-child{border-bottom:0}.goal-channel-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:7px}.goal-channel-head strong{font-size:10px}.goal-channel-head b{font-size:11px;color:var(--brand)}.goal-channel-track{height:14px;background:#edf1ee;border-radius:8px;position:relative;overflow:visible}.goal-channel-track i,.goal-channel-track b{position:absolute;left:0;border-radius:8px}.goal-channel-track i{top:0;height:14px;background:var(--brand);z-index:2}.goal-channel-track b{top:4px;height:6px;background:#9db2a5;z-index:1}.goal-channel-track em{position:absolute;top:-4px;width:2px;height:22px;background:var(--warning);z-index:3}.goal-channel-values{display:flex;justify-content:space-between;gap:8px;margin-top:6px;font-size:8px;color:var(--muted)}
@media(max-width:1000px){.target-contribution-grid{grid-template-columns:1fr}}@media(max-width:620px){.goal-channel-values{flex-direction:column;gap:2px}.channel-goal-legend{justify-content:flex-start}}
