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

    font-family:var(--frc-font);
    font-size:var(--frc-font-size);
    color:var(--frc-text);
    background:var(--frc-bg);
    line-height:1.5;
    max-width:600px;
    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;
}
.frc-wrap *,.frc-wrap *::before,.frc-wrap *::after{box-sizing:inherit}

/* Headings */
.frc-wrap .frc-heading{
    font-size:23px;
    font-weight:700;
    letter-spacing:-.02em;
    line-height:1.3;
    margin:0 0 8px 0;
    color:var(--frc-text);
}
.frc-wrap .frc-sub{
    margin:0 0 24px 0;
    color:var(--frc-muted);
    font-size:15px;
}

/* Wizard title (persistent above progress bar) */
.frc-wrap .frc-title{
    font-size:15px;
    font-weight:600;
    letter-spacing:.01em;
    text-transform:uppercase;
    color:var(--frc-muted);
    margin:0 0 14px 0;
}

/* Progress bar */
.frc-progress{margin:0 0 28px 0;}
.frc-progress-track{
    height:8px;
    background:#eef2f6;
    border-radius:999px;
    overflow:hidden;
}
.frc-progress-fill{
    height:100%;
    width:0;
    background:var(--frc-primary);
    border-radius:999px;
    transition:width .35s cubic-bezier(.4,0,.2,1);
}
.frc-progress-text{
    font-size:13px;
    color:var(--frc-muted);
    margin-top:8px;
    text-align:right;
    font-variant-numeric:tabular-nums;
}

/* Steps (panels) */
.frc-panel{animation:frc-fade-in .25s ease;}

/* Step navigation (back / next side by side) */
.frc-nav{
    display:flex;
    gap:12px;
    margin-top:26px;
    align-items:stretch;
}
.frc-nav .frc-btn{margin-top:0;width:auto;}
.frc-nav .frc-back{
    flex:0 0 auto;
    padding-left:20px;
    padding-right:20px;
}
.frc-nav .frc-next,
.frc-nav .frc-submit{flex:1 1 auto;}

/* Fields */
.frc-field{margin-bottom:20px;}
.frc-row{display:flex;gap:16px;}
.frc-row > .frc-field{flex:1 1 0;min-width:0;}
.frc-field-grow{flex:2 1 0 !important;}
.frc-field-narrow{flex:1 1 0 !important;}
@media (max-width:520px){
    .frc-row{flex-direction:column;gap:0;}
}
.frc-label{
    display:block;
    font-weight:500;
    font-size:14px;
    margin-bottom:8px;
    color:var(--frc-text);
}

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

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

/* Questions (fieldset) */
.frc-question{
    border:0;
    padding:0;
    margin:0 0 28px 0;
}
.frc-question-title{
    display:block;
    font-size:16px;
    font-weight:600;
    color:var(--frc-text);
    padding:0;
    margin:0 0 12px 0;
    line-height:1.4;
}

/* Option lists (radio / checkbox) */
.frc-options{display:flex;flex-direction:column;gap:8px;}
.frc-option{
    display:flex;
    align-items:center;
    gap:12px;
    padding:12px 14px;
    border:1px solid var(--frc-input-border);
    border-radius:var(--frc-radius);
    background:var(--frc-input-bg);
    cursor:pointer;
    transition:border-color .15s ease,background .15s ease;
    font-size:15px;
    color:var(--frc-text);
}
.frc-option:hover{border-color:var(--frc-input-border-hover);background:#f8fafc;}
.frc-option input{
    position:absolute;
    opacity:0;
    width:0;height:0;
}
.frc-option-mark{
    flex:none;
    width:20px;height:20px;
    border:2px solid #cbd5e1;
    border-radius:50%;
    position:relative;
    transition:border-color .15s ease,background .15s ease;
}
.frc-option-mark-check{border-radius:6px;}
.frc-option-mark::after{
    content:"";
    position:absolute;
    opacity:0;
    transition:opacity .12s ease;
}
.frc-option-mark:not(.frc-option-mark-check)::after{
    inset:4px;
    border-radius:50%;
    background:#fff;
}
.frc-option-mark-check::after{
    left:5px;top:1px;
    width:6px;height:11px;
    border:solid #fff;
    border-width:0 2px 2px 0;
    transform:rotate(45deg);
}
.frc-option input:checked ~ .frc-option-mark{
    border-color:var(--frc-primary);
    background:var(--frc-primary);
}
.frc-option input:checked ~ .frc-option-mark::after{opacity:1;}
.frc-option input:checked ~ .frc-option-text{font-weight:500;}
.frc-option:has(input:checked){border-color:var(--frc-primary);background:rgba(14,165,233,.05);}
.frc-option input:focus-visible ~ .frc-option-mark{box-shadow:var(--frc-ring);}
.frc-option-text{flex:1;line-height:1.4;}

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

/* Buttons */
.frc-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(--frc-radius);
    cursor:pointer;
    transition:background .15s ease,opacity .15s ease,transform .05s ease;
    text-decoration:none;
}
.frc-btn:disabled{opacity:.55;cursor:not-allowed;}
.frc-btn:active:not(:disabled){transform:translateY(1px);}

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

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

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

/* ===== Results (traffic light) ===== */
.frc-result-badge{
    display:inline-flex;
    align-items:center;
    gap:8px;
    font-size:13px;
    font-weight:600;
    padding:6px 14px;
    border-radius:999px;
    margin-bottom:18px;
}
.frc-result-dot{width:10px;height:10px;border-radius:50%;flex:none;}

.frc-result-green  .frc-result-badge{color:var(--frc-success);background:rgba(22,163,74,.1);}
.frc-result-green  .frc-result-dot{background:var(--frc-success);}
.frc-result-yellow .frc-result-badge{color:#b45309;background:rgba(245,158,11,.14);}
.frc-result-yellow .frc-result-dot{background:var(--frc-warning);}
.frc-result-red    .frc-result-badge{color:var(--frc-error);background:rgba(220,38,38,.1);}
.frc-result-red    .frc-result-dot{background:var(--frc-error);}

.frc-result-sub{
    font-size:15px;
    font-weight:700;
    margin:24px 0 10px 0;
    color:var(--frc-text);
}
.frc-result-list{
    list-style:none;
    padding:0;
    margin:0 0 8px 0;
    display:flex;
    flex-direction:column;
    gap:8px;
}
.frc-result-list li{
    font-size:15px;
    line-height:1.45;
    color:var(--frc-text);
    padding:10px 14px;
    background:#f8fafc;
    border:1px solid var(--frc-input-border);
    border-radius:var(--frc-radius);
}
.frc-result .frc-btn-primary{margin-top:18px;}
.frc-inquiry-confirm{
    margin-top:16px;
    padding:14px 16px;
    background:#f0fdf4;
    border:1px solid #bbf7d0;
    border-radius:var(--frc-radius);
}
.frc-inquiry-confirm .frc-sub{margin:0;color:var(--frc-text);}

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

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

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