*{
margin:0;
padding:0;
box-sizing:border-box;
-webkit-tap-highlight-color:transparent;
}

html{
scroll-behavior:smooth;
}

body{
background:
linear-gradient(
180deg,
#06101f 0%,
#081527 100%
);
font-family:'Syne',sans-serif;
color:#f5f7fb;
line-height:1.7;
overflow-x:hidden;
}

#sabx{
width:100%;
padding:42px 18px 90px;
position:relative;
overflow:hidden;
isolation:isolate;
}

#sabx::before,
#sabx::after{
content:'';
position:absolute;
pointer-events:none;
z-index:0;
}

#sabx::before{
top:-18%;
left:-12%;
width:55%;
height:50%;
background:
radial-gradient(
ellipse,
rgba(245,197,24,.06),
transparent 70%
);
}

#sabx::after{
bottom:-18%;
right:-12%;
width:58%;
height:50%;
background:
radial-gradient(
ellipse,
rgba(42,114,255,.14),
transparent 70%
);
}

.sabx-wrap{
position:relative;
z-index:2;
width:100%;
max-width:980px;
margin:0 auto;
}

.sabx-header{
background:
linear-gradient(
135deg,
rgba(9,22,40,.98),
rgba(4,14,28,.99)
);
border:
1px solid rgba(255,255,255,.06);
border-radius:38px;
padding:48px 42px;
margin-bottom:34px;
box-shadow:
0 20px 60px rgba(0,0,0,.32);
}

.sabx-badge{
display:inline-flex;
align-items:center;
justify-content:center;
padding:11px 24px;
border-radius:999px;
background:
rgba(245,197,24,.10);
border:
1px solid rgba(245,197,24,.22);
font-size:13px;
font-weight:700;
letter-spacing:.6px;
color:#f5c518;
margin-bottom:28px;
}

.sabx-title{
font-family:
'Cormorant Garamond',
serif;
font-size:84px;
line-height:.94;
font-weight:700;
letter-spacing:-1.5px;
margin-bottom:30px;
color:#ffffff;
}

.sabx-title span{
display:block;
color:#f5c518;
}

.sabx-sub{
font-size:22px;
line-height:2;
color:
rgba(255,255,255,.72);
max-width:760px;
margin-bottom:30px;
}

.sabx-note{
background:
rgba(255,255,255,.04);
border:
1px solid rgba(255,255,255,.07);
border-radius:24px;
padding:22px 24px;
font-size:15px;
line-height:1.9;
color:
rgba(255,255,255,.72);
}

.sabx-note strong{
color:#ffd76a;
}

.sabx-progress{
display:grid;
grid-template-columns:
repeat(5,1fr);
gap:16px;
margin-bottom:36px;
}

.sabx-step{
padding:16px 14px;
border-radius:18px;
background:
rgba(255,255,255,.03);
border:
1px solid rgba(255,255,255,.06);
text-align:center;
font-size:14px;
font-weight:700;
letter-spacing:.3px;
color:
rgba(255,255,255,.42);
transition:.25s ease;
}

.sabx-step.active{
background:
linear-gradient(
135deg,
rgba(245,197,24,.16),
rgba(245,197,24,.05)
);
border:
1px solid rgba(245,197,24,.34);
color:#ffffff;
box-shadow:
0 10px 24px rgba(245,197,24,.12);
}

.sabx-panel,
.sabx-resultbox{
background:
linear-gradient(
180deg,
rgba(7,20,38,.98),
rgba(4,14,28,.99)
);
border:
1px solid rgba(255,255,255,.06);
border-radius:36px;
padding:46px 38px;
box-shadow:
0 18px 55px rgba(0,0,0,.28);
animation:sabxFade .25s ease;
}

@keyframes sabxFade{
from{
opacity:0;
transform:translateY(8px);
}
to{
opacity:1;
transform:none;
}
}

.sabx-h{
font-family:
'Cormorant Garamond',
serif;
font-size:64px;
line-height:1;
margin-bottom:18px;
font-weight:700;
color:#ffffff;
}

.sabx-p{
font-size:19px;
line-height:2;
color:
rgba(255,255,255,.68);
margin-bottom:36px;
max-width:720px;
}

.sabx-grid{
display:grid;
grid-template-columns:
repeat(2,minmax(0,1fr));
gap:26px;
margin-bottom:36px;
}

.sabx-field{
position:relative;
}

.sabx-lbl{
display:block;
margin-bottom:12px;
font-size:14px;
font-weight:700;
letter-spacing:.5px;
color:#ffffff;
}

.sabx-inp,
.sabx-select{
width:100%;
height:66px;
border-radius:18px;
border:
1px solid rgba(255,255,255,.08);
background:
rgba(255,255,255,.04);
padding:0 20px;
font-size:16px;
font-family:'Syne',sans-serif;
color:#ffffff;
outline:none;
transition:.22s ease;
appearance:none;
}

.sabx-inp::placeholder{
color:
rgba(255,255,255,.32);
}

.sabx-select option{
background:#081525;
color:#ffffff;
}

.sabx-inp:focus,
.sabx-select:focus{
border:
1px solid rgba(245,197,24,.45);
background:
rgba(255,255,255,.06);
box-shadow:
0 0 0 4px rgba(245,197,24,.10);
}

.sabx-error{
border:
1px solid rgba(255,95,95,.7)!important;
background:
rgba(255,70,70,.06)!important;
box-shadow:
0 0 0 4px rgba(255,70,70,.08)!important;
}

.sabx-error-text{
margin-top:8px;
font-size:13px;
line-height:1.6;
color:#ff9d9d;
font-weight:600;
display:flex;
align-items:flex-start;
gap:6px;
}

.sabx-actions{
display:flex;
flex-wrap:wrap;
gap:16px;
margin-top:18px;
}

.sabx-btn{
border:none;
outline:none;
cursor:pointer;
min-height:58px;
padding:0 28px;
border-radius:18px;
font-family:'Syne',sans-serif;
font-size:15px;
font-weight:700;
transition:.22s ease;
display:inline-flex;
align-items:center;
justify-content:center;
text-align:center;
}

.sabx-next,
.sabx-submit,
.sabx-send,
.sabx-restart{
background:
linear-gradient(
135deg,
#f5c518,
#d9a80d
);
color:#06101f;
box-shadow:
0 12px 28px rgba(245,197,24,.20);
}

.sabx-next:hover,
.sabx-submit:hover,
.sabx-send:hover,
.sabx-restart:hover{
transform:
translateY(-2px);
}

.sabx-back{
background:
rgba(255,255,255,.05);
border:
1px solid rgba(255,255,255,.08);
color:#ffffff;
}

.sabx-cardgrid{
display:grid;
grid-template-columns:
repeat(2,minmax(0,1fr));
gap:22px;
margin-bottom:34px;
}

.sabx-card{
position:relative;
overflow:hidden;
background:
rgba(255,255,255,.03);
border:
1px solid rgba(255,255,255,.06);
border-radius:26px;
padding:26px;
cursor:pointer;
transition:.22s ease;
user-select:none;
-webkit-user-select:none;
touch-action:manipulation;
}

.sabx-card:hover{
transform:
translateY(-3px);
border:
1px solid rgba(245,197,24,.22);
}

.sabx-card.active{
background:
linear-gradient(
135deg,
rgba(245,197,24,.14),
rgba(245,197,24,.05)
);
border:
1px solid rgba(245,197,24,.36);
box-shadow:
0 14px 34px rgba(245,197,24,.12);
}

.sabx-card.active::after{
content:'✓ Selected';
display:inline-flex;
align-items:center;
justify-content:center;
margin-top:16px;
padding:8px 14px;
border-radius:999px;
background:
rgba(245,197,24,.12);
border:
1px solid rgba(245,197,24,.20);
font-size:12px;
font-weight:700;
color:#ffe08a;
letter-spacing:.3px;
}

.sabx-card strong{
display:block;
font-size:20px;
font-weight:700;
line-height:1.5;
margin-bottom:8px;
color:#ffffff;
}

.sabx-card span{
display:block;
font-size:15px;
line-height:1.9;
color:
rgba(255,255,255,.56);
}

.sabx-mini{
font-size:14px;
font-weight:700;
letter-spacing:.4px;
margin-bottom:20px;
color:#f5c518;
}

.sabx-scoreline{
display:flex;
align-items:center;
gap:18px;
margin-bottom:30px;
flex-wrap:wrap;
}

.sabx-circle{
width:100px;
height:100px;
border-radius:50%;
display:flex;
flex-direction:column;
align-items:center;
justify-content:center;
border:4px solid;
background:
rgba(255,255,255,.03);
box-shadow:
0 8px 18px rgba(0,0,0,.18);
flex-shrink:0;
}

.sabx-circle.high{
border-color:#34d17f;
}

.sabx-circle.mid{
border-color:#f5c518;
}

.sabx-circle.low{
border-color:#ff5f5f;
}

.sabx-num{
font-size:30px;
font-weight:800;
line-height:1;
}

.sabx-subnum{
font-size:10px;
margin-top:3px;
opacity:.6;
}

.sabx-scorecontent{
flex:1;
min-width:240px;
}

.sabx-status{
font-size:30px;
font-weight:800;
margin-bottom:10px;
line-height:1.2;
}

.sabx-status.high{
color:#34d17f;
}

.sabx-status.mid{
color:#f5c518;
}

.sabx-status.low{
color:#ff7070;
}

.sabx-advice{
font-size:17px;
line-height:1.9;
color:
rgba(255,255,255,.72);
}

.sabx-bars{
display:flex;
flex-direction:column;
gap:18px;
margin-bottom:36px;
}

.sabx-bar{
width:100%;
}

.sabx-bar-row{
display:flex;
align-items:center;
justify-content:space-between;
gap:16px;
margin-bottom:8px;
font-size:14px;
font-weight:600;
}

.sabx-bar-bg{
height:14px;
border-radius:999px;
overflow:hidden;
background:
rgba(255,255,255,.05);
}

.sabx-bar-fill{
height:100%;
border-radius:999px;
background:
linear-gradient(
90deg,
#f5c518,
#ffd95c
);
}

.sabx-list{
display:flex;
flex-direction:column;
gap:14px;
padding-left:20px;
margin-bottom:36px;
}

.sabx-list li{
font-size:15px;
line-height:1.9;
color:
rgba(255,255,255,.76);
}

.sabx-risk li{
color:#ffb1b1;
}

.sabx-plan{
display:flex;
flex-direction:column;
gap:16px;
margin-bottom:36px;
}

.sabx-planrow{
display:flex;
gap:16px;
align-items:flex-start;
padding:18px;
border-radius:20px;
background:
rgba(255,255,255,.03);
border:
1px solid rgba(255,255,255,.05);
}

.sabx-day{
min-width:78px;
padding:10px 14px;
border-radius:14px;
background:
rgba(245,197,24,.14);
font-size:13px;
font-weight:700;
color:#ffe08a;
text-align:center;
}

.sabx-task{
font-size:15px;
line-height:1.8;
color:
rgba(255,255,255,.75);
}

.sabx-summarygrid{
display:grid;
grid-template-columns:
repeat(2,minmax(0,1fr));
gap:18px;
margin-bottom:36px;
}

.sabx-summarycard{
padding:22px;
border-radius:24px;
background:
rgba(255,255,255,.03);
border:
1px solid rgba(255,255,255,.06);
}

.sabx-summarycard h4{
font-size:13px;
font-weight:700;
letter-spacing:.4px;
margin-bottom:10px;
color:#f5c518;
text-transform:uppercase;
}

.sabx-summarycard p{
font-size:24px;
font-weight:800;
line-height:1.3;
color:#ffffff;
word-break:break-word;
}

.sabx-successbox{
padding:22px 24px;
border-radius:22px;
background:
linear-gradient(
135deg,
rgba(52,209,127,.10),
rgba(52,209,127,.04)
);
border:
1px solid rgba(52,209,127,.24);
color:#8ff0b8;
font-size:15px;
line-height:1.9;
margin-bottom:34px;
font-weight:600;
}

.sabx-emailbox{
margin-top:26px;
padding:28px;
border-radius:28px;
background:
linear-gradient(
180deg,
rgba(10,28,52,.95),
rgba(5,16,30,.98)
);
border:
1px solid rgba(245,197,24,.14);
box-shadow:
0 18px 45px rgba(0,0,0,.24);
}

.sabx-emailbox .sabx-h{
font-size:42px;
margin-bottom:14px;
}

.sabx-emailbox .sabx-p{
font-size:16px;
line-height:1.9;
margin-bottom:24px;
max-width:100%;
}

.sabx-msg{
margin-top:18px;
font-size:14px;
line-height:1.8;
color:#7ecfff;
}

.sabx-msg.success{
color:#8ff0b8;
}

.sabx-msg.fail{
color:#ffb1b1;
}

.sabx-msg.loading{
color:#ffe08a;
}

.sabx-retry{
margin-top:10px;
margin-bottom:34px;
padding:28px;
border-radius:24px;
background:
rgba(255,255,255,.03);
border:
1px solid rgba(255,255,255,.06);
}

.sabx-retry-title{
font-size:24px;
font-weight:800;
margin-bottom:12px;
color:#ffffff;
}

.sabx-retry-text{
font-size:15px;
line-height:1.9;
color:
rgba(255,255,255,.7);
margin-bottom:22px;
max-width:650px;
}

.sabx-footer{
text-align:center;
padding:38px 10px 0;
font-size:13px;
line-height:1.9;
color:
rgba(255,255,255,.42);
}

.sabx-footer a{
color:#f5c518;
text-decoration:none;
}

.sabx-footer a:hover{
text-decoration:underline;
}

.sabx-hidden{
display:none!important;
}

.sabx-fadein{
animation:sabxFade .25s ease;
}

.sabx-loading{
opacity:.72;
pointer-events:none;
}

.sabx-pill{
display:inline-flex;
align-items:center;
justify-content:center;
padding:7px 14px;
border-radius:999px;
background:
rgba(245,197,24,.10);
border:
1px solid rgba(245,197,24,.18);
font-size:12px;
font-weight:700;
color:#f5c518;
letter-spacing:.3px;
}

.sabx-divider{
height:1px;
width:100%;
background:
rgba(255,255,255,.06);
margin:28px 0;
}

.sabx-inline-note{
font-size:13px;
line-height:1.8;
color:
rgba(255,255,255,.55);
margin-top:10px;
}

.sabx-inline-note strong{
color:#ffe08a;
}

@media(max-width:920px){

.sabx-header,
.sabx-panel,
.sabx-resultbox{
padding:34px 28px;
border-radius:30px;
}

.sabx-title{
font-size:68px;
line-height:.95;
}

.sabx-h{
font-size:54px;
}

.sabx-sub{
font-size:19px;
line-height:1.9;
}

.sabx-summarygrid{
grid-template-columns:1fr 1fr;
}

}

@media(max-width:768px){

#sabx{
padding:24px 14px 72px;
}

.sabx-header,
.sabx-panel,
.sabx-resultbox,
.sabx-emailbox{
padding:28px 22px;
border-radius:26px;
}

.sabx-title{
font-size:56px;
line-height:.96;
}

.sabx-h{
font-size:46px;
}

.sabx-sub{
font-size:17px;
line-height:1.85;
}

.sabx-p{
font-size:16px;
line-height:1.9;
}

.sabx-grid,
.sabx-cardgrid,
.sabx-summarygrid{
grid-template-columns:1fr;
gap:18px;
}

.sabx-progress{
grid-template-columns:1fr;
}

.sabx-step{
padding:14px;
text-align:left;
}

.sabx-scoreline{
flex-direction:column;
align-items:flex-start;
}

.sabx-actions{
flex-direction:column;
}

.sabx-btn{
width:100%;
}

.sabx-planrow{
flex-direction:column;
}

.sabx-circle{
width:94px;
height:94px;
}

.sabx-num{
font-size:30px;
}

.sabx-status{
font-size:26px;
}

.sabx-emailbox .sabx-h{
font-size:34px;
}

}

@media(max-width:560px){

.sabx-title{
font-size:46px;
}

.sabx-h{
font-size:38px;
line-height:1.08;
}

.sabx-sub{
font-size:15px;
line-height:1.8;
}

.sabx-p{
font-size:15px;
line-height:1.85;
margin-bottom:28px;
}

.sabx-note{
font-size:14px;
line-height:1.8;
padding:18px;
}

.sabx-circle{
width:84px;
height:84px;
border-width:3px;
}

.sabx-num{
font-size:26px;
}

.sabx-subnum{
font-size:11px;
}

.sabx-card{
padding:22px;
border-radius:22px;
}

.sabx-card strong{
font-size:18px;
}

.sabx-card span{
font-size:14px;
line-height:1.8;
}

.sabx-status{
font-size:22px;
}

.sabx-advice{
font-size:15px;
line-height:1.85;
}

.sabx-summarycard p{
font-size:20px;
}

.sabx-emailbox .sabx-h{
font-size:28px;
}

.sabx-emailbox .sabx-p{
font-size:14px;
line-height:1.8;
}

.sabx-list li{
font-size:14px;
line-height:1.85;
}

.sabx-task{
font-size:14px;
line-height:1.8;
}

}

@media(max-width:420px){

#sabx{
padding-left:12px;
padding-right:12px;
}

.sabx-header,
.sabx-panel,
.sabx-resultbox,
.sabx-emailbox{
padding:24px 18px;
}

.sabx-title{
font-size:40px;
}

.sabx-h{
font-size:34px;
}

.sabx-badge{
font-size:11px;
padding:10px 18px;
}

.sabx-step{
font-size:12px;
}

.sabx-btn{
font-size:14px;
min-height:54px;
padding:0 18px;
}

.sabx-inp,
.sabx-select{
height:60px;
font-size:15px;
padding:0 16px;
border-radius:16px;
}

.sabx-card{
padding:20px;
}

.sabx-circle{
width:78px;
height:78px;
}

.sabx-num{
font-size:24px;
}

.sabx-status{
font-size:20px;
}

.sabx-summarycard{
padding:18px;
}

.sabx-summarycard p{
font-size:18px;
}

}

@media(prefers-reduced-motion:reduce){

*{
animation:none!important;
transition:none!important;
scroll-behavior:auto!important;
}

}

@supports(padding:max(0px)){

#sabx{
padding-bottom:
max(
72px,
env(safe-area-inset-bottom)
);
}

}

body.sabx-lock{
overflow:hidden;
touch-action:none;
}











/* =========================================
STRONG BOTTOM SPACE FIX - BUDGET TOOL
========================================= */

html, body {
    height: 100%;
    min-height: 100dvh;
    margin: 0;
    padding: 0;
    overflow-x: hidden;
}

#sabx {
    width: 100%;
    min-height: 100dvh;
    padding: 42px 18px 20px !important;   /* Reduced from 90px */
    position: relative;
    display: flex;
    flex-direction: column;
    box-sizing: border-box;
    overflow: visible;
}

.sabx-wrap {
    flex: 1;
    display: flex;
    flex-direction: column;
    width: 100%;
    max-width: 980px;
    margin: 0 auto;
}

/* Push footer to bottom */
.sabx-footer {
    margin-top: auto !important;
    padding: 40px 10px 30px !important;
}

/* Result screen support */
.sabx-result,
.sabx-resultbox {
    flex: 1;
    display: flex;
    flex-direction: column;
}

/* Mobile Optimization */
@media (max-width: 768px) {
    #sabx {
        padding: 24px 14px 16px !important;
        min-height: 100dvh;
    }
    
    .sabx-footer {
        padding-bottom: 40px !important;
    }
}

/* Extra Safety */
body.sabx-lock,
#sabx::after,
.sabx-header::after {
    display: none !important;
}

/* Remove any leftover large padding */
.sabx-panel,
.sabx-resultbox,
.sabx-header {
    margin-bottom: 24px !important;
}








/* =========================================
PREMIUM GLOBAL TOOL FOOTER
========================================= */

.gsgx-tool-footer{
margin-top:90px;
padding:55px 22px 46px;
background:
linear-gradient(
180deg,
rgba(255,255,255,.03),
rgba(255,255,255,.015)
);
border-top:
1px solid rgba(255,255,255,.07);
position:relative;
overflow:hidden;
}

.gsgx-tool-footer::before{
content:'';
position:absolute;
top:-120px;
right:-120px;
width:260px;
height:260px;
background:
radial-gradient(
circle,
rgba(245,197,24,.08),
transparent 72%
);
pointer-events:none;
}

.gsgx-tool-footer-inner{
width:100%;
max-width:1120px;
margin:0 auto;
position:relative;
z-index:2;
}

.gsgx-tool-brand h3{
font-size:1.45rem;
line-height:1.2;
font-weight:800;
letter-spacing:-0.5px;
color:#ffffff;
margin-bottom:18px;
}

.gsgx-tool-brand p{
max-width:820px;
font-size:1rem;
line-height:1.95;
color:#c9d4df;
}

.gsgx-tool-footer-links{
display:flex;
flex-wrap:wrap;
gap:14px;
margin-top:34px;
}

.gsgx-tool-footer-links a{
display:inline-flex;
align-items:center;
justify-content:center;
padding:13px 18px;
border-radius:14px;
background:
rgba(255,255,255,.05);
border:
1px solid rgba(255,255,255,.08);
text-decoration:none;
font-size:.9rem;
font-weight:700;
letter-spacing:.01em;
color:#f5f7fb;
transition:
all .28s ease;
backdrop-filter:blur(8px);
}

.gsgx-tool-footer-links a:hover{
transform:
translateY(-2px);
background:
rgba(212,175,55,.10);
border-color:
rgba(212,175,55,.30);
color:#f5c518;
}

.gsgx-tool-footer-copy{
margin-top:30px;
padding-top:22px;
border-top:
1px solid rgba(255,255,255,.06);
font-size:.84rem;
line-height:1.8;
color:#8ea0b5;
}

/* =========================================
MOBILE
========================================= */

@media(max-width:768px){

.gsgx-tool-footer{
margin-top:70px;
padding:42px 20px 40px;
}

.gsgx-tool-brand h3{
font-size:1.2rem;
margin-bottom:16px;
}

.gsgx-tool-brand p{
font-size:.93rem;
line-height:1.9;
}

.gsgx-tool-footer-links{
flex-direction:column;
gap:12px;
}

.gsgx-tool-footer-links a{
width:100%;
padding:15px 18px;
font-size:.92rem;
}

.gsgx-tool-footer-copy{
font-size:.8rem;
line-height:1.7;
}

}










/* =========================================
STRONG FIX - BOTTOM SPACE + HEADER CUTTING
========================================= */

html, body {
    height: 100%;
    min-height: 100dvh;
    margin: 0;
    padding: 0;
    overflow-x: hidden;
}

#sabx {
    width: 100%;
    min-height: 100dvh;
    padding: 20px 18px 20px !important;   /* Balanced padding */
    position: relative;
    display: flex;
    flex-direction: column;
    box-sizing: border-box;
    overflow-y: auto;                    /* Important */
    -webkit-overflow-scrolling: touch;
}

/* Main wrapper - pushes footer down */
.sabx-wrap {
    flex: 1;
    display: flex;
    flex-direction: column;
    width: 100%;
    max-width: 980px;
    margin: 0 auto;
}

/* Footer always at bottom */
.sabx-footer {
    margin-top: auto !important;
    padding: 40px 10px 30px !important;
}

/* Result & Panel full height support */
.sabx-result,
.sabx-resultbox,
.sabx-panel {
    flex: 1;
    display: flex;
    flex-direction: column;
}

/* Mobile Specific */
@media (max-width: 768px) {
    #sabx {
        padding: 16px 14px 16px !important;
        min-height: 100dvh;
    }
    
    .sabx-footer {
        padding-bottom: 40px !important;
    }
}

/* Extra Safety */
body.sabx-lock,
#sabx::after,
.sabx-header::after {
    display: none !important;
}

.sabx-header,
.sabx-panel,
.sabx-resultbox {
    margin-bottom: 24px !important;
}
