@font-face { font-family: IRANYekanX; font-style: normal; font-weight: 100; src: url('/fonts/Yekan/woff/IRANYekanX-Thin.woff') format('woff'), url('/fonts/Yekan/woff2/IRANYekanX-Thin.woff2') format('woff2'); }
@font-face { font-family: IRANYekanX; font-style: normal; font-weight: 300; src: url('/fonts/Yekan/woff/IRANYekanX-Light.woff') format('woff'), url('/fonts/Yekan/woff2/IRANYekanX-Light.woff2') format('woff2'); }
@font-face { font-family: IRANYekanX; font-style: normal; font-weight: 400; src: url('/fonts/Yekan/woff/IRANYekanX-Regular.woff') format('woff'), url('/fonts/Yekan/woff2/IRANYekanX-Regular.woff2') format('woff2'); }
@font-face { font-family: IRANYekanX; font-style: normal; font-weight: 500; src: url('/fonts/Yekan/woff/IRANYekanX-Medium.woff') format('woff'), url('/fonts/Yekan/woff2/IRANYekanX-Medium.woff2') format('woff2'); }
@font-face { font-family: IRANYekanX; font-style: normal; font-weight: 600; src: url('/fonts/Yekan/woff/IRANYekanX-DemiBold.woff') format('woff'), url('/fonts/Yekan/woff2/IRANYekanX-DemiBold.woff2') format('woff2'); }
@font-face { font-family: IRANYekanX; font-style: normal; font-weight: 700; src: url('/fonts/Yekan/woff/IRANYekanX-Bold.woff') format('woff'), url('/fonts/Yekan/woff2/IRANYekanX-Bold.woff2') format('woff2'); }
@font-face { font-family: IRANYekanX; font-style: normal; font-weight: 800; src: url('/fonts/Yekan/woff/IRANYekanX-ExtraBold.woff') format('woff'), url('/fonts/Yekan/woff2/IRANYekanX-ExtraBold.woff2') format('woff2'); }
@font-face { font-family: IRANYekanX; font-style: normal; font-weight: 900; src: url('/fonts/Yekan/woff/IRANYekanX-Black.woff') format('woff'), url('/fonts/Yekan/woff2/IRANYekanX-Black.woff2') format('woff2'); }

:root {
    --tg-primary: #0f3d5c;        /* سرمه‌ای عمیق */
    --tg-primary-2: #155b86;
    --tg-accent: #c89b3c;         /* طلایی */
    --tg-accent-2: #e0b75a;
    --tg-teal: #0f8a7e;
    --tg-bg: #f4f6f9;
    --tg-ink: #1d2733;
    --tg-muted: #6b7785;
    --tg-success: #1f9d57;
    --tg-danger: #d64550;
    --tg-warning: #d9962b;
    --tg-card-radius: 18px;
    --tg-shadow: 0 10px 30px rgba(15, 61, 92, .08);
    --tg-shadow-sm: 0 4px 14px rgba(15, 61, 92, .06);
}

* { box-sizing: border-box; }

html { font-size: 14.5px; }
@media (min-width: 768px) { html { font-size: 16px; } }

body {
    font-family: IRANYekanX, Tahoma, sans-serif;
    color: var(--tg-ink);
    background: var(--tg-bg);
    line-height: 1.85;
}

h1, h2, h3, h4, h5, h6, p, span, input, textarea, button, select, label, a, td, th, div {
    font-family: IRANYekanX, Tahoma, sans-serif;
}

a { text-decoration: none; }
.ltr { direction: ltr; unicode-bidi: embed; }

/* ===== رنگ‌های کمکی برند ===== */
.text-tg-primary { color: var(--tg-primary) !important; }
.text-tg-accent { color: var(--tg-accent) !important; }
.bg-tg-primary { background: var(--tg-primary) !important; }
.bg-tg-soft { background: rgba(15, 61, 92, .06) !important; }

.btn-tg {
    background: linear-gradient(135deg, var(--tg-primary), var(--tg-primary-2));
    color: #fff; border: none; border-radius: 12px; padding: .6rem 1.4rem; font-weight: 600;
    transition: .2s; box-shadow: 0 6px 18px rgba(15, 61, 92, .25);
}
.btn-tg:hover { color: #fff; transform: translateY(-1px); box-shadow: 0 10px 24px rgba(15, 61, 92, .32); }
.btn-tg-accent {
    background: linear-gradient(135deg, var(--tg-accent), var(--tg-accent-2));
    color: #3a2c08; border: none; border-radius: 12px; padding: .6rem 1.4rem; font-weight: 700;
    box-shadow: 0 6px 18px rgba(200, 155, 60, .3);
}
.btn-tg-accent:hover { color: #3a2c08; transform: translateY(-1px); }
.btn-tg-outline {
    background: #fff; color: var(--tg-primary); border: 1.5px solid var(--tg-primary);
    border-radius: 12px; padding: .55rem 1.3rem; font-weight: 600; transition: .2s;
}
.btn-tg-outline:hover { background: var(--tg-primary); color: #fff; }

.tg-card {
    background: #fff; border-radius: var(--tg-card-radius); border: 1px solid rgba(15,61,92,.06);
    box-shadow: var(--tg-shadow-sm);
}

/* ===== Public landing ===== */
.tg-navbar { background: rgba(255,255,255,.95); backdrop-filter: blur(8px); box-shadow: var(--tg-shadow-sm); }
.tg-brand-badge {
    width: 46px; height: 46px; border-radius: 13px; display: grid; place-items: center;
    background: linear-gradient(135deg, var(--tg-primary), var(--tg-teal)); color: #fff; font-size: 1.4rem;
}
.tg-hero {
    background: radial-gradient(1200px 500px at 80% -10%, rgba(15,138,126,.18), transparent),
                linear-gradient(160deg, var(--tg-primary) 0%, #0a2c44 100%);
    color: #fff; position: relative; overflow: hidden;
}
.tg-hero .tg-hero-card {
    background: rgba(255,255,255,.08); border: 1px solid rgba(255,255,255,.16);
    border-radius: 20px; backdrop-filter: blur(6px);
}
.tg-feature-icon {
    width: 54px; height: 54px; border-radius: 15px; display: grid; place-items: center; font-size: 1.5rem;
    background: rgba(15,61,92,.08); color: var(--tg-primary);
}
.tg-step-num {
    width: 42px; height: 42px; border-radius: 50%; display: grid; place-items: center; font-weight: 800;
    background: linear-gradient(135deg, var(--tg-accent), var(--tg-accent-2)); color: #3a2c08;
}
.tg-trust-chip {
    display: inline-flex; align-items: center; gap: .4rem; background: rgba(255,255,255,.12);
    border: 1px solid rgba(255,255,255,.2); border-radius: 999px; padding: .35rem .9rem; font-size: .85rem;
}

/* ===== Stat cards ===== */
.stat-card { background: #fff; border-radius: 16px; padding: 1.1rem 1.25rem; box-shadow: var(--tg-shadow-sm); border: 1px solid rgba(15,61,92,.05); }
.stat-card .stat-value { font-size: 1.8rem; font-weight: 800; }
.stat-card .stat-icon { width: 50px; height: 50px; border-radius: 14px; display: grid; place-items: center; font-size: 1.4rem; }

/* ===== Badges وضعیت ===== */
.badge-status { border-radius: 999px; padding: .35em .8em; font-weight: 600; font-size: .8rem; }
.badge-active { background: rgba(31,157,87,.12); color: var(--tg-success); }
.badge-expired { background: rgba(214,69,80,.12); color: var(--tg-danger); }
.badge-pending { background: rgba(217,150,43,.14); color: var(--tg-warning); }
.badge-void { background: rgba(107,119,133,.14); color: var(--tg-muted); }
.badge-suspicious { background: rgba(214,69,80,.12); color: var(--tg-danger); }

/* ===== Admin layout ===== */
.admin-shell { display: flex; min-height: 100vh; }
.admin-sidebar {
    width: 270px; background: linear-gradient(180deg, var(--tg-primary), #0a2c44); color: #cfe0ec;
    position: fixed; inset-inline-start: 0; top: 0; bottom: 0; overflow-y: auto; z-index: 1030;
}
.admin-sidebar .nav-link { color: #cfe0ec; border-radius: 12px; margin: 2px 10px; padding: .65rem .9rem; font-weight: 500; display: flex; align-items: center; gap: .6rem; }
.admin-sidebar .nav-link:hover { background: rgba(255,255,255,.08); color: #fff; }
.admin-sidebar .nav-link.active { background: linear-gradient(135deg, var(--tg-accent), var(--tg-accent-2)); color: #3a2c08; font-weight: 700; }
.admin-sidebar .sidebar-section { font-size: .72rem; color: rgba(255,255,255,.45); padding: .9rem 1.4rem .3rem; letter-spacing: .5px; }
.admin-main { flex: 1; margin-inline-start: 270px; min-width: 0; }
.admin-topbar { background: #fff; box-shadow: var(--tg-shadow-sm); position: sticky; top: 0; z-index: 1020; }
@media (max-width: 991.98px) {
    .admin-sidebar { transform: translateX(100%); transition: .25s; }
    .admin-sidebar.show { transform: translateX(0); }
    .admin-main { margin-inline-start: 0; }
}

/* ===== Panel (customer) ===== */
.panel-nav .nav-link { color: var(--tg-ink); border-radius: 12px; padding: .6rem .9rem; font-weight: 500; display: flex; align-items: center; gap: .55rem; }
.panel-nav .nav-link:hover { background: var(--tg-bg); }
.panel-nav .nav-link.active { background: rgba(15,61,92,.09); color: var(--tg-primary); font-weight: 700; }

/* ===== Tables ===== */
.table-tg { background: #fff; border-radius: 16px; overflow: hidden; box-shadow: var(--tg-shadow-sm); }
.table-tg thead th { background: rgba(15,61,92,.05); color: var(--tg-primary); font-weight: 700; border: none; white-space: nowrap; }
.table-tg td, .table-tg th { vertical-align: middle; }

/* ===== Forms ===== */
.form-control, .form-select { border-radius: 12px; padding: .6rem .9rem; border: 1.4px solid #e3e8ee; }
.form-control:focus, .form-select:focus { border-color: var(--tg-primary-2); box-shadow: 0 0 0 .2rem rgba(21,91,134,.12); }
.otp-input { letter-spacing: .6rem; text-align: center; font-size: 1.4rem; font-weight: 700; }

.section-title { position: relative; font-weight: 800; }
.section-title::after { content: ""; display: block; width: 56px; height: 4px; border-radius: 4px; background: linear-gradient(135deg, var(--tg-accent), var(--tg-accent-2)); margin-top: .5rem; }

footer.tg-footer { background: #0a2c44; color: #b9cad7; }
footer.tg-footer a { color: #e0b75a; }
