:root {
    --fr-green: #2e7d32;
    --fr-green-dark: #1b5e20;
    --fr-green-light: #e8f5e9;
    --fr-orange: #f57c00;
    --fr-orange-dark: #e65100;
    --fr-cream: #fbfaf6;
    --fr-text: #263238;
    --fr-blue: #1565c0;
    --fr-purple: #6a1b9a;
    --fr-radius: 14px;
    --fr-shadow: 0 6px 20px rgba(27, 94, 32, 0.08);
}

body {
    font-family: 'Poppins', 'Segoe UI', sans-serif;
    background-color: var(--fr-cream);
    color: var(--fr-text);
}

/* ---------- Navbar ---------- */
.fr-navbar {
    background: var(--fr-green-dark);
    box-shadow: var(--fr-shadow);
}
.fr-navbar .navbar-brand {
    font-weight: 700;
    font-size: 1.4rem;
    color: #fff !important;
    letter-spacing: .5px;
}
.fr-navbar .navbar-brand span { color: #c8e6c9; }
.fr-navbar .nav-link {
    color: rgba(255,255,255,.9) !important;
    font-weight: 500;
}
.fr-navbar .nav-link:hover { color: #fff !important; }
.fr-navbar .badge-panel {
    background: rgba(255,255,255,.18);
    color: #fff;
    font-size: .7rem;
    border-radius: 20px;
    padding: 3px 12px;
    margin-left: 8px;
}

/* ---------- Hero ---------- */
.fr-hero {
    background: var(--fr-green);
    color: #fff;
    border-radius: 0 0 32px 32px;
    padding: 70px 0 90px;
}
.fr-hero h1 { font-weight: 700; }
.fr-hero p.lead { color: #e8f5e9; }

/* ---------- Cards ---------- */
.fr-card {
    background: #fff;
    border: none;
    border-radius: var(--fr-radius);
    box-shadow: var(--fr-shadow);
    transition: transform .18s ease, box-shadow .18s ease;
}
.fr-card:hover { transform: translateY(-4px); box-shadow: 0 12px 28px rgba(27,94,32,.14); }

.fr-panel-card {
    border-radius: var(--fr-radius);
    padding: 34px 24px;
    text-align: center;
    background: #fff;
    box-shadow: var(--fr-shadow);
    border-top: 4px solid var(--fr-green);
    height: 100%;
}
.fr-panel-card .fr-icon {
    font-size: 2.6rem;
    color: var(--fr-green);
    margin-bottom: 12px;
}

.veg-card img, .veg-thumb {
    height: 140px;
    object-fit: cover;
    width: 100%;
    background: var(--fr-green-light);
    border-radius: var(--fr-radius) var(--fr-radius) 0 0;
}
.veg-price { color: var(--fr-orange); font-weight: 700; }

.plan-card {
    border-radius: var(--fr-radius);
    box-shadow: var(--fr-shadow);
    border: 2px solid transparent;
    padding: 28px;
    background: #fff;
    height: 100%;
}
.plan-card.popular { border-color: var(--fr-orange); position: relative; }
.plan-card.popular::before {
    content: "POPULAR";
    position: absolute; top: -12px; right: 20px;
    background: var(--fr-orange); color: #fff;
    font-size: .7rem; font-weight: 700;
    padding: 4px 12px; border-radius: 20px;
}
.plan-price { font-size: 2.2rem; font-weight: 700; color: var(--fr-green-dark); }

/* ---------- Buttons ---------- */
.btn-fr {
    background: var(--fr-green);
    border-color: var(--fr-green);
    color: #fff;
    font-weight: 600;
    border-radius: 10px;
}
.btn-fr:hover { background: var(--fr-green-dark); border-color: var(--fr-green-dark); color: #fff; }
.btn-fr-outline {
    border: 2px solid var(--fr-green);
    color: var(--fr-green);
    font-weight: 600;
    border-radius: 10px;
    background: transparent;
}
.btn-fr-outline:hover { background: var(--fr-green); color: #fff; }
.btn-fr-orange { background: var(--fr-orange); border-color: var(--fr-orange); color:#fff; font-weight:600; border-radius:10px; }
.btn-fr-orange:hover { background: var(--fr-orange-dark); border-color: var(--fr-orange-dark); color:#fff; }

/* ---------- Sidebar (dashboards) ---------- */
.fr-sidebar {
    background: #fff;
    min-height: calc(100vh - 64px);
    box-shadow: 2px 0 12px rgba(0,0,0,.04);
}
.fr-sidebar .nav-link {
    color: var(--fr-text);
    border-radius: 10px;
    margin-bottom: 4px;
    font-weight: 500;
}
.fr-sidebar .nav-link.active, .fr-sidebar .nav-link:hover {
    background: var(--fr-green-light);
    color: var(--fr-green-dark);
}
.fr-stat-card {
    border-radius: var(--fr-radius);
    padding: 22px;
    color: #fff;
    box-shadow: var(--fr-shadow);
}
.fr-stat-card h3 { font-weight: 700; margin: 0; }
.bg-fr1 { background: var(--fr-green); }
.bg-fr2 { background: var(--fr-orange); }
.bg-fr3 { background: var(--fr-blue); }
.bg-fr4 { background: var(--fr-purple); }

/* ---------- Auth pages ---------- */
.fr-auth-wrapper {
    min-height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--fr-green-light);
    padding: 30px 12px;
}
.fr-auth-card {
    background: #fff;
    border-radius: var(--fr-radius);
    box-shadow: var(--fr-shadow);
    padding: 36px 30px;
    width: 100%;
    max-width: 440px;
    border-top: 4px solid var(--fr-green);
}

/* ---------- Misc ---------- */
.fr-footer {
    background: var(--fr-green-dark);
    color: #e8f5e9;
    padding: 26px 0;
    margin-top: 60px;
}
.badge-status-active { background: var(--fr-green); }
.badge-status-inactive { background: #9e9e9e; }
.badge-status-expired { background: #c62828; }
table.fr-table thead { background: var(--fr-green-light); }

@media (max-width: 767px) {
    .fr-hero { padding: 46px 0 60px; border-radius: 0 0 24px 24px; }
    .plan-price { font-size: 1.8rem; }
}
