/* ===== Base Reset ===== */
 
.woocommerce-account .woocommerce {
    /*max-width: 1100px;*/
    /*margin: 0 auto;*/
}

/* Stack on mobile */
@media (min-width: 900px) {
    .woocommerce-account .woocommerce {
        display: flex;
        gap: 24px;
        align-items: flex-start;
    }
}
/* ===== Sidebar ===== */
.woocommerce-MyAccount-navigation {
    background: #ffffff;
    border-radius: 12px;
    padding: 16px;
    margin-bottom: 20px;
    box-shadow: 0 4px 12px rgba(0,0,0,0.05);
}

@media (min-width: 900px) {
    .woocommerce-MyAccount-navigation {
        width: 260px;
        margin-bottom: 0;
    }
}

.woocommerce-MyAccount-navigation ul {
    list-style: none;
    padding: 0;
    margin: 0;
}

.woocommerce-MyAccount-navigation li {
    margin-bottom: 6px;
}

.woocommerce-MyAccount-navigation a {
    display: block;
    padding: 12px 14px;
    border-radius: 8px;
    color: #333;
    font-size: 15px;
    font-weight: 500;
    text-decoration: none;
}

.woocommerce-MyAccount-navigation a:hover {
    background: #f1f3f5;
}

.woocommerce-MyAccount-navigation .is-active a {
    background: #e63946;
    color: #ffffff;
}

/* Highlight Book Session */
/*.woocommerce-MyAccount-navigation a[href*="book-session"] {*/
/*    background: #e63946;*/
/*    color: #ffffff;*/
/*    font-weight: 600;*/
/*}*/

/* ===== Content ===== */
.woocommerce-MyAccount-content {
    background: #fff;
    border-radius: 12px;
    padding: 20px;
    box-shadow: 0 4px 12px rgba(0,0,0,0.05);
    width: 100%;
}

@media (min-width: 900px) {
    .woocommerce-MyAccount-content {
        padding: 28px;
    }
}

.woocommerce-MyAccount-content h2,
.woocommerce-MyAccount-content h3 {
    margin-top: 0;
    margin-bottom: 10px;
    color: #111;
}

.woocommerce-MyAccount-content p {
    color: #555;
    font-size: 15px;
    line-height: 1.6;
}

/* ===== Dashboard Cards ===== */
.jf-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 16px;
    margin-top: 20px;
}

@media (min-width: 700px) {
    .jf-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (min-width: 1000px) {
    .jf-grid {
        grid-template-columns: repeat(3, 1fr);
    }
}

.jf-card {
    border: 1px solid #eaeaea;
    border-radius: 12px;
    padding: 18px;
    background: #ffffff;
}

.jf-card h3 {
    font-size: 16px;
    margin-bottom: 6px;
}
/* ===== Buttons ===== */
.jf-btn {
    display: inline-block;
    background: #e63946;
    color: #ffffff;
    padding: 10px 16px;
    border-radius: 8px;
    font-size: 14px;
    font-weight: 600;
    text-decoration: none;
}

.jf-btn:hover {
    opacity: 0.9;
}

.jf-link {
    color: #e63946;
    font-weight: 500;
    text-decoration: none;
}
/* Bigger tap areas on mobile */
@media (max-width: 600px) {
    .woocommerce-MyAccount-navigation a {
        padding: 14px 16px;
        font-size: 16px;
    }
}


/* Hide default Woo text */
.woocommerce-MyAccount-content > p:first-child {
    display: none;
}
/* Hide the first paragraph */
.woocommerce-MyAccount-content > p:nth-of-type(1) {
    display: none !important;
}

/* Hide the second paragraph */
.woocommerce-MyAccount-content > p:nth-of-type(2) {
    display: none !important;
}

/* Container Styling */
.jf-schedule-form {
    max-width: 700px;
    background: #ffffff;
    padding: 40px;
    border-radius: 16px;
    box-shadow: 0 10px 40px rgba(0,0,0,0.04);
    border: 1px solid #f0f0f0;
    font-family: 'Inter', -apple-system, sans-serif;
}

.jf-title {
    font-size: 24px;
    font-weight: 700;
    color: #1a1a1a;
    margin-bottom: 8px;
}

.jf-subtitle {
    color: #718096;
    font-size: 15px;
    margin-bottom: 30px;
}

/* Slot Row - The Alignment Fix */
.jf-slot {
    display: flex;
    gap: 12px;
    align-items: center;
    margin-bottom: 15px;
    width: 100%;
}

.jf-input {
    flex: 1; /* This makes both columns equal width */
    position: relative;
    display: flex;
    align-items: center;
}

/* Input & Select Fields */
.jf-input input, 
.jf-input select {
    width: 100%;
    height: 48px; /* Fixed height for perfect alignment */
    padding: 0 12px 0 42px !important; /* Space for the icon on the left */
    border: 1.5px solid #e2e8f0 !important;
    border-radius: 10px !important;
    font-size: 15px !important;
    background-color: #ffffff !important;
    color: #2d3748 !important;
    transition: all 0.2s ease;
    box-sizing: border-box;
    -webkit-appearance: none; /* Removes default mobile styling */
}

.jf-input input:focus, 
.jf-input select:focus {
    border-color: #e63946 !important;
    box-shadow: 0 0 0 3px rgba(230, 57, 70, 0.1) !important;
    outline: none;
}

/* Icon Styling */
.jf-icon {
    position: absolute;
    left: 15px;
    top: 50%;
    transform: translateY(-50%);
    font-size: 16px;
    color: #e63946; /* Matching your red theme */
    z-index: 10;
    pointer-events: none; /* Clicking icon still opens the input */
}

/* Remove Button styling */
.jf-remove-slot {
    background: #fdf2f2;
    border: 1px solid #fee2e2;
    width: 48px;
    height: 48px;
    border-radius: 10px;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #e63946;
    transition: background 0.2s;
}

.jf-remove-slot:hover {
    background: #e63946;
    color: #fff;
}

/* Add Link Button */
.jf-add-wrapper {
    margin: 20px 0 30px;
}

.jf-add-link {
    background: #007cba52; /* Dark background from screenshot */
    color: #000;
    border: none;
    padding: 10px 20px;
    border-radius: 8px;
    font-weight: 600;
    cursor: pointer;
    font-size: 14px;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    transition: opacity 0.2s;
}

.jf-add-link:hover {
    opacity: 0.9;
}

/* Submit Button */
.jf-submit {
    background: #3985e6;
    color: #fff;
    border: none;
    padding: 16px 32px;
    border-radius: 10px;
    font-weight: 700;
    font-size: 16px;
    cursor: pointer;
    width: 100%; /* Full width on mobile, auto on desktop if needed */
    transition: transform 0.1s, background 0.2s;
}

.jf-submit:active {
    transform: scale(0.98);
}

/* --- Responsive Layout --- */
@media (max-width: 768px) {
    .jf-schedule-form {
        padding: 25px;
    }
    
    .jf-slot {
        flex-direction: column; /* Stack fields on mobile */
        gap: 10px;
        background: #f8fafc;
        padding: 15px;
        border-radius: 12px;
    }
    
    .jf-input {
        width: 100%;
    }
    
    .jf-remove-slot {
        width: 100%;
        height: 40px;
    }
}



/*___________________________________________*/



.jf-appointment-card{

background:#ffffff;
border-radius:12px;
padding:22px 24px;
box-shadow:0 6px 18px rgba(0,0,0,.05);
/*border-left:4px solid #e63946;*/

}

.jf-appointment-header{

display:flex;
align-items:center;
justify-content:space-between;
margin-bottom:10px;

}

.jf-appointment-header h3{

margin:0;
font-size:18px;
font-weight:600;

}

.jf-status-badge{

font-size:12px;
padding:5px 10px;
border-radius:20px;
font-weight:600;
color:#418bff;

}

.jf-status-badge.pending{

background:#fff7ed;
color:#c2410c;

}

.jf-appointment-text{

font-size:14px;
color:#555;
margin-bottom:12px;

}

.jf-appointment-list{

list-style:none;
padding:0;
margin:0 0 15px 0;

}

.jf-appointment-list li{

display:flex;
align-items:center;
gap:8px;
font-size:14px;
padding:6px 0;
color:#333;

}

.jf-date-icon{

font-size:14px;

}

.jf-time{

color:#666;

}

.jf-reschedule-btn{

color:#e63946;
font-weight:600;
text-decoration:none;
font-size:14px;
display:inline-flex;
align-items:center;
gap:4px;

}

.jf-reschedule-btn:hover{

text-decoration:underline;

}

/* Responsive */

@media(max-width:600px){

.jf-appointment-header{

flex-direction:column;
align-items:flex-start;
gap:6px;

}

}











 
   .jf-notice{
display:flex;
align-items:center;
gap:12px;
background:#fff7ed;
border:1px solid #fed7aa;
padding:14px 16px;
border-radius:8px;
margin-bottom:20px;
position:relative;
font-size:14px;
color:#92400e;
}

.jf-notice-icon{
font-size:18px;
}

.jf-notice-text{
flex:1;
}

.jf-notice-close{
background:none;
border:none;
font-size:16px;
cursor:pointer;
color:#92400e;
opacity:0.7;
}

.jf-notice-close:hover{
opacity:1;
}

/* Appointment Review Card */
.jf-submitted-summary {
    background: #ffffff;
    border: 1px solid #F0F0F0;
    /*border-left: 4px solid #D63638; */
    padding: 24px;
    border-radius: 12px;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.03);
    font-family: 'Inter', sans-serif;
    position: relative;
}

.jf-summary-header {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    margin-bottom: 12px;
}

.jf-summary-header h4 {
    margin: 0;
    font-size: 20px;
    font-weight: 700;
    color: #1A1A1A;
}

/* The small orange badge */
.jf-summary-badge {
    background: #FFF5EB;
    color: #8A5B2E;
    padding: 4px 12px;
    border-radius: 20px;
    font-size: 12px;
    font-weight: 600;
}

.jf-summary-subtext {
    color: #666;
    font-size: 15px;
    margin-bottom: 20px;
}

/* Time Slot Items */
.jf-summary-list {
    list-style: none;
    padding: 0;
    margin: 0 0 20px 0;
}

.jf-summary-item {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 6px 0;
    font-size: 15px;
    color: #333;
    font-weight: 500;
}

.jf-reschedule-link {
    display: flex;
    align-items: center;
    gap: 6px;
    color: #D63638;
    text-decoration: none;
    font-size: 14px;
    font-weight: 600;
} 



/* Appointment layout */
.jf-appointment-body{
display:flex;
justify-content:space-between;
align-items:center;
gap:20px;
}

/* Left content */
.jf-appointment-info{
flex:1;
}

/* Button row */
.jf-actions{
margin-top:15px;
display:flex;
gap:10px;
flex-wrap:wrap;
}

/* Buttons same size */
.jf-actions button,
.jf-zoom-btn{
padding:10px 18px;
border-radius:6px;
font-size:13px;
font-weight:600;
border:none;
cursor:pointer;
display:inline-flex;
align-items:center;
justify-content:center;
height:38px;
}

/* Join session button */
.jf-zoom-btn{
background:#2D8CFF;
color:#fff;
text-decoration:none;
}

.jf-zoom-btn:hover{
background:#1558a9;
color:#fff;
}

/* Countdown */
.jf-countdown{
margin-top:8px;
font-size:13px;
color:#555;
font-weight:500;
}

/* Responsive */
@media(max-width:600px){

.jf-appointment-body{
flex-direction:column;
align-items:flex-start;
}

.jf-actions{
width:100%;
flex-direction:column;
}

.jf-actions button,
.jf-zoom-btn{
width:100%;
}

}



.jf-appointment-card{
background:#fff;
border-radius:12px;
padding:22px 24px;
box-shadow:0 6px 18px rgba(0,0,0,.05);
border-left:4px solid #e63946;
}

.jf-appointment-header{
display:flex;
justify-content:space-between;
align-items:center;
margin-bottom:10px;
}

.jf-appointment-header h3{
margin:0;
font-size:18px;
font-weight:600;
}

.jf-status-badge{
font-size:12px;
padding:5px 10px;
border-radius:20px;
font-weight:600;
}

.jf-status-badge.pending{
background:#fff7ed;
color:#c2410c;
}

.jf-status-badge.approved{
background:#ecfdf5;
color:#16a34a;
}

.jf-appointment-text{
font-size:14px;
color:#555;
margin-bottom:12px;
}

.jf-confirmed-date{
font-size:15px;
font-weight:600;
margin-bottom:15px;
}

.jf-appointment-list{
list-style:none;
padding:0;
margin:0 0 15px 0;
}

.jf-appointment-list li{
display:flex;
align-items:center;
gap:8px;
font-size:14px;
padding:6px 0;
}

.jf-time{
color:#666;
}

.jf-reschedule-btn{
color:#e63946;
font-weight:600;
text-decoration:none;
font-size:14px;
display:inline-flex;
align-items:center;
gap:4px;
}

.jf-reschedule-btn:hover{
text-decoration:underline;
}

.jf-actions{
margin-top:15px;
display:flex;
gap:10px;
}

.jf-actions button{
padding:8px 14px;
border:none;
border-radius:6px;
cursor:pointer;
font-size:13px;
}

.jf-reschedule{
background:#facc15;
}

.jf-cancel{
background:#ef4444;
color:#fff;
}

@media(max-width:600px){

.jf-appointment-header{
flex-direction:column;
align-items:flex-start;
gap:6px;
}

.jf-actions{
flex-direction:column;
}

}















.jf-modal{
position:fixed;
top:0;
left:0;
width:100%;
height:100%;
background:rgba(0,0,0,0.45);
display:none;
align-items:center;
justify-content:center;
z-index:9999;
padding:20px;
}
.jf-modal-box{
background:#ffffff;
width:420px;
max-width:100%;
padding:25px 28px;
border-radius:10px;
box-shadow:0 15px 40px rgba(0,0,0,0.15);
animation:jfModalFade .25s ease;
}
@keyframes jfModalFade{
from{
transform:translateY(-10px);
opacity:0;
}
to{
transform:translateY(0);
opacity:1;
}
}
@keyframes jfModalFade{
from{
transform:translateY(-10px);
opacity:0;
}
to{
transform:translateY(0);
opacity:1;
}
}