.frsg-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;align-items:start;margin-top:24px}
.frsg-assumption-card{grid-column:1/-1}
.frsg-fields-two,.frsg-assumption-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.frsg-text-input,.frsg-number-wrap input{box-sizing:border-box;width:100%;height:48px;border:1px solid #cad6dd;border-radius:10px;background:#fbfdfe;color:var(--navy);font:700 16px/1 Arial,Helvetica,sans-serif;outline:none;padding:0 13px;transition:border-color .2s,box-shadow .2s,background .2s}
.frsg-text-input:focus,.frsg-number-wrap input:focus{border-color:var(--teal);background:#fff;box-shadow:0 0 0 3px rgba(15,143,131,.14)}
.frsg-number-wrap{position:relative;display:block}
.frsg-number-wrap input{padding-right:50px}
.frsg-number-wrap>span{position:absolute;right:14px;top:50%;transform:translateY(-50%);color:#73838f;font-size:13px;font-weight:900;pointer-events:none}
.frsg .frbc-field>span:first-child small{color:var(--muted);font-size:10px;font-weight:600}
.frsg-mode-switch{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:20px;padding:5px;border-radius:14px;background:#edf2f4}
.frsg-mode-switch button{min-height:74px;border:1px solid transparent;border-radius:11px;background:transparent;color:#536472;padding:13px 14px;text-align:left;cursor:pointer;transition:background .2s,border-color .2s,box-shadow .2s,color .2s}
.frsg-mode-switch button strong,.frsg-mode-switch button span{display:block}
.frsg-mode-switch button strong{color:var(--navy);font-size:13px}
.frsg-mode-switch button span{margin-top:5px;font-size:10px;line-height:1.4}
.frsg-mode-switch button.is-active{border-color:#acd9d3;background:#fff;color:#45625f;box-shadow:0 5px 13px rgba(11,35,65,.09)}
.frsg-mode-switch button.is-active strong{color:var(--teal)}
.frsg-mode-switch button:focus-visible{outline:3px solid rgba(15,143,131,.32);outline-offset:2px}
.frsg-mode-panel{padding:20px;border:1px solid #dce6e9;border-radius:14px;background:linear-gradient(145deg,#fff,#f6fafb)}
.frsg-mode-panel[hidden]{display:none}
.frsg-assumption-grid>.frbc-field,.frsg-inflation-box{padding:19px;border:1px solid #dce6e9;border-radius:14px;background:linear-gradient(145deg,#fff,#f7fafb)}
.frsg-inflation-box{transition:border-color .2s,background .2s}
.frsg-inflation-box.is-enabled{border-color:#9bd1ca;background:#f1faf8}
.frsg-check{display:flex;gap:10px;align-items:center;margin-bottom:16px;color:var(--navy);font-size:13px;cursor:pointer}
.frsg-check input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}
.frsg-check>span{position:relative;display:block;flex:0 0 38px;width:38px;height:22px;border-radius:99px;background:#bcc8ce;transition:background .2s}
.frsg-check>span:after{position:absolute;left:3px;top:3px;width:16px;height:16px;border-radius:50%;background:#fff;box-shadow:0 2px 5px rgba(11,35,65,.2);content:"";transition:transform .2s}
.frsg-check input:checked+span{background:var(--teal)}
.frsg-check input:checked+span:after{transform:translateX(16px)}
.frsg-check input:focus-visible+span{outline:3px solid rgba(15,143,131,.3);outline-offset:2px}
.frsg-inflation-box input:disabled{background:#eef2f4;color:#98a4ab;cursor:not-allowed}
.frsg-assumption-note{margin-bottom:0}
.frsg-summary{grid-template-columns:repeat(4,minmax(0,1fr))}
.frsg-summary strong{font-size:21px}
.frsg-primary-result{border-color:#9dd3cd!important;background:#eef9f7!important}
.frsg-primary-result strong{color:var(--teal)!important}
.frsg-progress-card{margin-top:18px;padding:22px;border:1px solid #d9e5e7;border-radius:16px;background:#fff}
.frsg-progress-copy{display:flex;justify-content:space-between;gap:24px;align-items:flex-end}
.frsg-progress-copy>div span{display:block;color:var(--muted);font-size:11px;font-weight:900;letter-spacing:.035em;text-transform:uppercase}
.frsg-progress-copy>div strong{display:block;margin-top:5px;color:var(--navy);font-size:25px}
.frsg-progress-copy p{margin:0;color:var(--muted);font-size:12px;text-align:right}
.frsg-progress-track{height:12px;margin-top:15px;overflow:hidden;border-radius:99px;background:#e4ecef}
.frsg-progress-track span{display:block;width:0;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--teal),#49cbbb);transition:width .45s ease}
.frsg-breakdown{display:grid;grid-template-columns:repeat(3,1fr);gap:13px;margin-top:17px}
.frsg-breakdown article{padding:18px;border:1px solid #dce6e9;border-radius:13px;background:#fff}
.frsg-breakdown span{display:block;color:var(--muted);font-size:11px;font-weight:800}
.frsg-breakdown strong{display:block;margin-top:7px;color:var(--navy);font-size:20px}
.frsg-breakdown article:last-child{border-color:#b8ddd8;background:#f0faf8}
.frsg-breakdown article:last-child strong{color:var(--teal)}
.frsg-milestones,.frsg-schedule{margin-top:25px;padding:25px;border:1px solid #dce6e9;border-radius:17px;background:#fff}
.frsg-milestone-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
.frsg-milestone-grid article{position:relative;padding:19px 16px 18px;border:1px solid #dfe7ea;border-radius:13px;background:linear-gradient(145deg,#fff,#f6fafb);overflow:hidden}
.frsg-milestone-grid article:after{position:absolute;left:0;right:0;bottom:0;height:4px;background:var(--teal);content:""}
.frsg-milestone-grid article>span{display:inline-block;padding:5px 8px;border-radius:99px;background:#e4f4f2;color:var(--teal);font-size:11px;font-weight:900}
.frsg-milestone-grid article>strong{display:block;margin-top:13px;color:var(--navy);font-size:18px}
.frsg-milestone-grid article>small{display:block;margin-top:5px;color:var(--muted);font-size:10px;line-height:1.4}
.frsg-milestone-grid article.is-complete{border-color:#acd9c0;background:var(--good-soft)}
.frsg-milestone-grid article.is-complete:after{background:var(--good)}
.frsg-milestone-grid article.is-unreached{border-color:#ead5a9;background:#fffaf0}
.frsg-milestone-grid article.is-unreached:after{background:var(--gold)}
.frsg-recommendation{margin-top:20px;padding:22px 24px;border:1px solid #d8e4e7;border-left:5px solid var(--teal);border-radius:15px;background:#f4faf9}
.frsg-recommendation.is-success{border-left-color:var(--good);background:var(--good-soft)}
.frsg-recommendation.is-warning{border-left-color:var(--gold);background:#fff9ec}
.frsg-recommendation strong{display:block;color:var(--navy);font-size:19px;line-height:1.4}
.frsg-recommendation p{margin:7px 0 0;color:#4c5c6c;font-size:13px;line-height:1.65}
.frsg-table-wrap{max-height:520px;overflow:auto;border:1px solid #dce6e9;border-radius:12px;scrollbar-color:#a6b7c1 #edf2f4}
.frsg-table-wrap:focus{outline:3px solid rgba(15,143,131,.24);outline-offset:2px}
.frsg-table-wrap table{width:100%;min-width:1050px;border-collapse:collapse;background:#fff;font-size:11px}
.frsg-table-wrap th,.frsg-table-wrap td{padding:12px 13px;border-bottom:1px solid #e6ecef;text-align:right;white-space:nowrap}
.frsg-table-wrap th:first-child,.frsg-table-wrap td:first-child,.frsg-table-wrap th:nth-child(2),.frsg-table-wrap td:nth-child(2){text-align:left}
.frsg-table-wrap th{position:sticky;z-index:1;top:0;background:var(--navy);color:#fff;font-size:10px;letter-spacing:.025em}
.frsg-table-wrap tbody tr:nth-child(even){background:#f7fafb}
.frsg-table-wrap tbody tr:last-child td{border-bottom:0}
.frsg-table-wrap tbody tr.is-milestone{background:#edf9f2;box-shadow:inset 4px 0 0 var(--good)}
.frsg-contribution-cell,.frsg-balance-cell{color:var(--navy);font-weight:900}
.frsg-gain-cell{color:var(--teal);font-weight:900}
.frsg-empty-cell{padding:25px!important;color:var(--muted)!important;text-align:center!important;white-space:normal!important}
.frsg-guidance{grid-template-columns:1fr 1fr;margin-top:22px}

@media(max-width:900px){
    .frsg-form-grid{grid-template-columns:1fr}
    .frsg-assumption-card{grid-column:auto}
    .frsg-summary{grid-template-columns:1fr 1fr}
    .frsg-milestone-grid{grid-template-columns:1fr 1fr}
}

@media(max-width:650px){
    .frsg-fields-two,.frsg-assumption-grid,.frsg-breakdown,.frsg-guidance{grid-template-columns:1fr}
    .frsg-field-spacer{display:none}
    .frsg-mode-switch{grid-template-columns:1fr}
    .frsg-summary,.frsg-milestone-grid{grid-template-columns:1fr}
    .frsg-progress-copy{display:block}
    .frsg-progress-copy p{margin-top:10px;text-align:left}
    .frsg-milestones,.frsg-schedule{padding:21px 15px}
    .frsg-recommendation{padding:19px}
    .frsg-recommendation strong{font-size:17px}
}

@container (max-width:900px){
    .frsg .frsg-form-grid{grid-template-columns:1fr}
    .frsg .frsg-assumption-card{grid-column:auto}
    .frsg .frsg-summary,.frsg .frsg-milestone-grid{grid-template-columns:1fr 1fr}
}

@container (max-width:560px){
    .frsg .frsg-fields-two,.frsg .frsg-assumption-grid,.frsg .frsg-breakdown,.frsg .frsg-guidance{grid-template-columns:1fr}
    .frsg .frsg-field-spacer{display:none}
    .frsg .frsg-mode-switch,.frsg .frsg-summary,.frsg .frsg-milestone-grid{grid-template-columns:1fr}
    .frsg .frsg-progress-copy{display:block}
    .frsg .frsg-progress-copy p{margin-top:10px;text-align:left}
    .frsg .frsg-milestones,.frsg .frsg-schedule{padding:21px 15px}
}

@media print{
    .frsg-form{display:none!important}
    .frsg-table-wrap{max-height:none;overflow:visible}
    .frsg-table-wrap table{min-width:0;font-size:8px}
    .frsg-milestones,.frsg-schedule,.frsg-summary{break-inside:avoid}
    .frsg .frbc-next-step{display:none!important}
}
