.fb-wrap{
    --fb-primary:#0ea5e9;
    --fb-primary-hover:#0284c7;
    --fb-text:#0f172a;
    --fb-muted:#64748b;
    --fb-bg:#ffffff;
    --fb-input-bg:#ffffff;
    --fb-input-border:#e2e8f0;
    --fb-input-border-hover:#cbd5e1;
    --fb-success:#16a34a;
    --fb-success-bg:#f0fdf4;
    --fb-error:#dc2626;
    --fb-error-bg:#fef2f2;
    --fb-btn-text:#ffffff;
    --fb-font:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Inter,system-ui,sans-serif;
    --fb-font-size:16px;
    --fb-radius:10px;
    --fb-shadow:0 1px 2px rgba(15,23,42,.04);
    --fb-ring:0 0 0 4px rgba(14,165,233,.15);

    font-family:var(--fb-font);
    font-size:var(--fb-font-size);
    color:var(--fb-text);
    background:var(--fb-bg);
    line-height:1.5;
    max-width:560px;
    margin:0 auto;
    padding:40px 36px;
    border-radius:20px;
    box-shadow:0 1px 3px rgba(15,23,42,.04),0 10px 40px -10px rgba(15,23,42,.12);
    box-sizing:border-box;
    -webkit-font-smoothing:antialiased;
    -moz-osx-font-smoothing:grayscale;
}
.fb-wrap *,.fb-wrap *::before,.fb-wrap *::after{box-sizing:inherit}

/* Headings — defensive against theme overrides */
.fb-wrap .fb-heading{
    font-size:28px;
    font-weight:700;
    letter-spacing:-.02em;
    line-height:1.2;
    margin:0 0 8px 0;
    color:var(--fb-text);
}
.fb-wrap .fb-sub{
    margin:0 0 32px 0;
    color:var(--fb-muted);
    font-size:15px;
}

/* Fields */
.fb-field{margin-bottom:20px;}

/* Two-column rows (contact step) */
.fb-row{display:flex;gap:16px;}
.fb-row > .fb-field{flex:1 1 0;min-width:0;}
@media (max-width:520px){
    .fb-row{flex-direction:column;gap:0;}
}
.fb-label{
    display:block;
    font-weight:500;
    font-size:14px;
    margin-bottom:8px;
    color:var(--fb-text);
}

/* Inputs */
.fb-input{
    display:block;
    width:100%;
    padding:12px 14px;
    background:var(--fb-input-bg);
    border:1px solid var(--fb-input-border);
    border-radius:var(--fb-radius);
    font:inherit;
    font-size:15px;
    color:var(--fb-text);
    box-shadow:var(--fb-shadow);
    transition:border-color .15s ease,box-shadow .15s ease;
    appearance:none;
    -webkit-appearance:none;
}
.fb-input::placeholder{color:#94a3b8;}
.fb-input:hover{border-color:var(--fb-input-border-hover);}
.fb-input:focus{outline:none;border-color:var(--fb-primary);box-shadow:var(--fb-ring);}
.fb-textarea{min-height:108px;resize:vertical;line-height:1.5;}

/* Hint text */
.fb-hint{
    font-size:13px;
    color:var(--fb-muted);
    margin:8px 0 0 0;
    line-height:1.5;
}

/* ZIP feedback */
.fb-zip-feedback{
    font-size:13.5px;
    margin-top:10px;
    font-weight:500;
    min-height:1em;
    display:flex;
    align-items:center;
    gap:6px;
    transition:opacity .15s ease;
}
.fb-zip-feedback:empty{display:none;}
.fb-zip-feedback.is-success{color:var(--fb-success);}
.fb-zip-feedback.is-error{color:var(--fb-error);}
.fb-zip-feedback.is-checking{color:var(--fb-muted);font-weight:400;}
.fb-zip-feedback .fb-dot{
    width:6px;height:6px;border-radius:50%;
    background:currentColor;display:inline-block;flex:none;
}

/* Custom file upload — drop-zone style */
.fb-file-wrap{position:relative;}
.fb-file-input{
    position:absolute;
    inset:0;
    width:100%;
    height:100%;
    opacity:0;
    cursor:pointer;
    z-index:2;
}
.fb-file-zone{
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    padding:24px 16px;
    border:1.5px dashed var(--fb-input-border);
    border-radius:var(--fb-radius);
    background:#fafbfc;
    text-align:center;
    transition:border-color .15s ease,background .15s ease;
}
.fb-file-wrap:hover .fb-file-zone{border-color:var(--fb-primary);background:#f8fafc;}
.fb-file-wrap.is-dragover .fb-file-zone{border-color:var(--fb-primary);background:rgba(14,165,233,.06);}
.fb-file-icon{
    width:32px;height:32px;
    display:flex;align-items:center;justify-content:center;
    border-radius:50%;
    background:#f1f5f9;
    color:var(--fb-muted);
    margin-bottom:10px;
}
.fb-file-icon svg{width:18px;height:18px;}
.fb-file-text{font-size:14px;color:var(--fb-text);font-weight:500;}
.fb-file-text strong{color:var(--fb-primary);font-weight:600;}
.fb-file-sub{font-size:12.5px;color:var(--fb-muted);margin-top:4px;}

/* File list */
.fb-file-list{
    list-style:none;
    padding:0;
    margin:12px 0 0 0;
    display:flex;
    flex-direction:column;
    gap:6px;
}
.fb-file-list li{
    font-size:13px;
    color:var(--fb-text);
    padding:8px 12px;
    background:#f8fafc;
    border:1px solid var(--fb-input-border);
    border-radius:8px;
    display:flex;
    align-items:center;
    gap:8px;
}
.fb-file-list li .fb-file-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.fb-file-list li .fb-file-size{color:var(--fb-muted);font-size:12px;flex:none;}

/* Error box */
.fb-error{
    background:var(--fb-error-bg);
    color:var(--fb-error);
    border:1px solid #fecaca;
    border-radius:var(--fb-radius);
    padding:12px 14px;
    margin-bottom:16px;
    font-size:14px;
    line-height:1.5;
}

/* Buttons */
.fb-btn{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:8px;
    width:100%;
    padding:14px 20px;
    font:inherit;
    font-size:15px;
    font-weight:600;
    letter-spacing:-.005em;
    border:none;
    border-radius:var(--fb-radius);
    cursor:pointer;
    transition:background .15s ease,opacity .15s ease,transform .05s ease;
    text-decoration:none;
}
.fb-btn:disabled{opacity:.55;cursor:not-allowed;}
.fb-btn:active:not(:disabled){transform:translateY(1px);}

.fb-btn-primary{
    background:var(--fb-primary);
    color:var(--fb-btn-text);
    box-shadow:0 1px 2px rgba(14,165,233,.25),inset 0 1px 0 rgba(255,255,255,.12);
}
.fb-btn-primary:hover:not(:disabled){background:var(--fb-primary-hover);}
.fb-btn-primary:focus-visible{outline:none;box-shadow:var(--fb-ring),0 1px 2px rgba(14,165,233,.25);}

.fb-btn-secondary{
    background:transparent;
    color:var(--fb-muted);
    margin-top:16px;
    font-weight:500;
}
.fb-btn-secondary:hover{color:var(--fb-text);background:#f8fafc;}

/* Spinner */
.fb-spinner{
    width:16px;height:16px;
    border:2px solid currentColor;
    border-right-color:transparent;
    border-radius:50%;
    animation:fb-spin .65s linear infinite;
}
@keyframes fb-spin{to{transform:rotate(360deg);}}

/* Step 2 — summary card */
.fb-step-2 .fb-summary{
    background:#f8fafc;
    border:1px solid var(--fb-input-border);
    border-radius:var(--fb-radius);
    padding:14px 16px;
    margin-bottom:20px;
    font-size:14px;
    line-height:1.55;
    color:var(--fb-text);
}
.fb-step-2 .fb-summary strong{color:var(--fb-muted);font-weight:500;display:inline-block;min-width:88px;}

/* Calendar */
.fb-calendar{margin:8px 0;}
.fb-calendar iframe{
    width:100%;
    height:620px;
    max-height:calc(100vh - 180px);
    min-height:520px;
    border:0;
    border-radius:var(--fb-radius);
    background:#fff;
    display:block;
}

/* Smooth step transitions */
.fb-step{animation:fb-fade-in .25s ease;}
@keyframes fb-fade-in{from{opacity:0;transform:translateY(4px);}to{opacity:1;transform:translateY(0);}}

/* Responsive */
@media (max-width:600px){
    .fb-wrap{
        padding:28px 20px;
        border-radius:16px;
        margin:12px;
    }
    .fb-wrap .fb-heading{font-size:24px;}
    .fb-wrap .fb-sub{margin-bottom:24px;}
    .fb-input{padding:11px 13px;}
    .fb-btn{padding:13px 18px;}
}
