/* ============================================================
   SunSMS24 Design System — SaaS Console (Stripe/Vercel style)
   Font: Inter | Primary: #2563EB | No cards, no shadows
   Dividers + spacing for hierarchy | White background
   ============================================================ */

/* ==================== Reset & Base ==================== */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

body {
    font-family: 'Inter', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
    font-size: 14px;
    color: #0F172A;
    background: #FFFFFF;
    line-height: 1.6;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

a { color: #2563EB; text-decoration: none; }
a:hover { color: #1D4ED8; }

/* ==================== Auth Pages (Login / Register) ==================== */
.auth-page {
    min-height: 100vh;
    display: flex;
}

.auth-brand {
    width: 44%;
    background: #0F172A;
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 72px 64px;
    color: #fff;
}

.auth-brand-logo {
    margin-bottom: 56px;
}

.auth-brand-logo img {
    display: none;
}

.auth-brand-logo span {
    font-size: 15px;
    font-weight: 500;
    letter-spacing: 0.08em;
    color: #64748B;
    text-transform: uppercase;
}

.auth-brand h2 {
    font-size: 36px;
    font-weight: 700;
    line-height: 1.2;
    letter-spacing: -0.7px;
    margin-bottom: 20px;
}

.auth-brand p {
    font-size: 15px;
    color: #94A3B8;
    line-height: 1.7;
    max-width: 340px;
}

.auth-brand-features {
    margin-top: 56px;
    display: flex;
    flex-direction: column;
    gap: 20px;
}

.auth-brand-features .feature {
    display: flex;
    align-items: center;
    gap: 14px;
    font-size: 14px;
    color: #CBD5E1;
}

.auth-brand-features .feature-dot {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: #3B82F6;
    flex-shrink: 0;
}

/* Minimal phone mock — pure CSS */
.auth-phone-mock {
    margin-top: 56px;
    display: flex;
    justify-content: flex-start;
}

.phone-frame {
    width: 200px;
    border: 1px solid rgba(148, 163, 184, 0.2);
    border-radius: 20px;
    padding: 20px 16px 16px;
    position: relative;
}

.phone-frame::before {
    content: '';
    position: absolute;
    top: 10px;
    left: 50%;
    transform: translateX(-50%);
    width: 40px;
    height: 4px;
    border-radius: 2px;
    background: rgba(148, 163, 184, 0.15);
}

.phone-mock-header {
    font-size: 10px;
    font-weight: 600;
    color: #64748B;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    margin-bottom: 14px;
}

.phone-mock-line {
    height: 8px;
    border-radius: 4px;
    background: rgba(148, 163, 184, 0.1);
    margin-bottom: 8px;
}

.phone-mock-line.short { width: 60%; }
.phone-mock-line.medium { width: 80%; }

.phone-mock-code {
    display: flex;
    gap: 8px;
    margin: 16px 0 12px;
    justify-content: center;
}

.phone-mock-code span {
    width: 28px;
    height: 34px;
    border: 1px solid rgba(59, 130, 246, 0.3);
    border-radius: 6px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 16px;
    font-weight: 700;
    color: #3B82F6;
    font-family: 'Inter', monospace;
}

.phone-mock-btn {
    height: 28px;
    border-radius: 6px;
    background: rgba(59, 130, 246, 0.15);
    margin-top: 4px;
}

.auth-form-side {
    flex: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 48px;
    background: #FFFFFF;
}

.auth-box {
    width: 100%;
    max-width: 400px;
    background: #fff;
    border: 1px solid #F1F5F9;
    border-radius: 12px;
    padding: 40px 36px;
}

.auth-logo {
    display: none;
}

.auth-logo .logo-img {
    display: none;
}

.auth-title {
    font-size: 20px;
    font-weight: 600;
    color: #0F172A;
    text-align: left;
    letter-spacing: -0.3px;
    margin-bottom: 6px;
}

.auth-subtitle {
    color: #94A3B8;
    font-size: 14px;
    font-weight: 400;
    margin-bottom: 28px;
    text-align: left;
}

.auth-form { margin-top: 0; }

.captcha-wrap {
    display: flex;
    justify-content: center;
    margin: 8px 0 4px;
}

.auth-link {
    margin-top: 20px;
    text-align: center;
    font-size: 14px;
    color: #94A3B8;
}

/* ==================== Forms ==================== */
.form-group {
    margin-bottom: 24px;
}

.form-group label {
    display: block;
    font-size: 12.5px;
    font-weight: 500;
    color: #64748B;
    margin-bottom: 6px;
    letter-spacing: 0.01em;
}

.form-group input,
.form-group select,
.form-group textarea {
    width: 100%;
    padding: 0 14px;
    font-size: 14px;
    font-family: inherit;
    border: 1px solid #E2E8F0;
    border-radius: 8px;
    background: #fff;
    color: #0F172A;
    outline: none;
    transition: border-color 0.15s, box-shadow 0.15s;
    height: 44px;
}

.form-group input::placeholder {
    color: #CBD5E1;
}

.form-group textarea {
    height: auto;
    padding: 12px 14px;
    resize: vertical;
}

.form-group input:focus,
.form-group select:focus,
.form-group textarea:focus {
    border-color: #2563EB;
    box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.12);
}

.form-hint {
    font-size: 12px;
    color: #94A3B8;
    margin-top: 4px;
    display: block;
}

.form-error {
    background: #FEF2F2;
    border: 1px solid #FECACA;
    color: #DC2626;
    padding: 10px 14px;
    font-size: 13px;
    border-radius: 8px;
    margin-bottom: 16px;
}

/* ==================== Buttons ==================== */
.btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0 18px;
    height: 38px;
    font-size: 13.5px;
    font-weight: 500;
    font-family: inherit;
    border: 1px solid #E2E8F0;
    border-radius: 8px;
    cursor: pointer;
    background: #fff;
    color: #334155;
    transition: background 0.15s, border-color 0.15s, color 0.15s;
    white-space: nowrap;
    gap: 6px;
}

.btn:hover { background: #F8FAFC; border-color: #CBD5E1; }
.btn:disabled { opacity: 0.45; cursor: not-allowed; }

.btn-primary {
    background: #2563EB;
    color: #fff;
    border-color: #2563EB;
}
.btn-primary:hover { background: #1E50D0; border-color: #1E50D0; }

.btn-danger { background: #DC2626; color: #fff; border-color: #DC2626; }
.btn-danger:hover { background: #B91C1C; border-color: #B91C1C; }

.btn-outline { background: #fff; border-color: #E2E8F0; color: #475569; }
.btn-outline:hover { background: #F8FAFC; border-color: #CBD5E1; }

.btn-sm { height: 32px; padding: 0 12px; font-size: 12.5px; }
.btn-full { width: 100%; height: 44px; font-size: 14.5px; font-weight: 600; letter-spacing: -0.01em; }

/* ==================== Layout ==================== */
.app-layout {
    display: flex;
    min-height: 100vh;
}

/* ---- Sidebar (dark, matches login brand panel) ---- */
.sidebar {
    width: 240px;
    background: linear-gradient(180deg, #101828 0%, #0C1220 100%);
    border-right: none;
    display: flex;
    flex-direction: column;
    position: fixed;
    top: 0;
    left: 0;
    bottom: 0;
    z-index: 100;
}

.sidebar-header {
    padding: 24px 20px 20px;
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    border-bottom: 1px solid rgba(148, 163, 184, 0.08);
}

.sidebar-brand {
    display: flex;
    align-items: center;
    gap: 12px;
}

.sidebar-brand-mark {
    width: 32px;
    height: 32px;
    border-radius: 8px;
    background: rgba(59, 130, 246, 0.15);
    color: #60A5FA;
    font-size: 15px;
    font-weight: 700;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    letter-spacing: 0;
}

.sidebar-brand-text {
    display: flex;
    flex-direction: column;
}

.sidebar-logo {
    font-size: 15px;
    font-weight: 600;
    color: #F1F5F9;
    letter-spacing: -0.2px;
    line-height: 1.2;
}

.sidebar-tagline {
    font-size: 11px;
    color: #475569;
    font-weight: 400;
    margin-top: 2px;
    letter-spacing: 0.01em;
}

.sidebar-logo-img {
    display: none;
}

.sidebar-close {
    display: none;
    background: none;
    border: none;
    font-size: 20px;
    cursor: pointer;
    color: #64748B;
}

.sidebar-section-label {
    font-size: 10.5px;
    font-weight: 600;
    color: #475569;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    padding: 24px 20px 8px;
}

.sidebar-nav {
    list-style: none;
    padding: 0 12px;
    overflow-y: auto;
}

.sidebar-nav + .sidebar-section-label {
    padding-top: 20px;
}

.sidebar-nav .nav-item {
    display: block;
    padding: 9px 12px 9px 14px;
    font-size: 13px;
    font-weight: 450;
    color: #94A3B8;
    text-decoration: none;
    border-radius: 0;
    border-left: 2px solid transparent;
    margin-bottom: 1px;
    transition: color 0.15s, border-color 0.15s, background 0.15s;
}

.sidebar-nav .nav-item:hover {
    color: #E2E8F0;
    background: rgba(148, 163, 184, 0.08);
}

.sidebar-nav .nav-item.active {
    color: #F1F5F9;
    font-weight: 500;
    border-left-color: #3B82F6;
    background: rgba(59, 130, 246, 0.08);
}

.sidebar-footer {
    margin-top: auto;
    padding: 16px 20px;
    border-top: 1px solid rgba(148, 163, 184, 0.1);
}

.sidebar-footer .btn {
    background: transparent;
    border-color: rgba(148, 163, 184, 0.2);
    color: #64748B;
}
.sidebar-footer .btn:hover {
    border-color: rgba(148, 163, 184, 0.35);
    color: #94A3B8;
    background: rgba(148, 163, 184, 0.06);
}

/* ---- Main Content ---- */
.main-content {
    flex: 1;
    margin-left: 240px;
    min-height: 100vh;
    background: #FFFFFF;
}

.top-bar {
    height: 52px;
    background: #FFFFFF;
    border-bottom: 1px solid #E2E8F0;
    display: flex;
    align-items: center;
    padding: 0 28px;
    position: sticky;
    top: 0;
    z-index: 50;
}

.top-bar-info {
    margin-left: auto;
    display: flex;
    align-items: center;
    gap: 20px;
}

.top-bar-user {
    font-size: 13px;
    color: #64748B;
    font-weight: 450;
}

.top-bar-avatar {
    font-size: 13px;
}

.top-bar-balance {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    line-height: 1.2;
}

.balance-label {
    font-size: 10px;
    color: #94A3B8;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    font-weight: 500;
}

.balance-value {
    font-size: 15px;
    font-weight: 700;
    color: #0F172A;
    font-family: 'Inter', monospace;
}

.balance-badge {
    display: none;
}

.menu-toggle {
    display: none;
    background: none;
    border: none;
    font-size: 18px;
    cursor: pointer;
    color: #64748B;
    padding: 4px 8px;
}

/* ==================== Tab Content ==================== */
.tab-content {
    display: none;
    padding: 0;
}

.tab-content.active { display: block; }

/* ---- Page Header ---- */
.page-header {
    padding: 28px 32px 20px;
    border-bottom: 1px solid #E2E8F0;
}

.page-title {
    font-size: 20px;
    font-weight: 600;
    color: #0F172A;
    letter-spacing: -0.3px;
    margin-bottom: 4px;
}

.page-desc {
    font-size: 14px;
    color: #64748B;
    font-weight: 400;
}

/* ---- Content Grid ---- */
.content-grid {
    padding: 24px 32px;
    max-width: 900px;
}

.content-grid-wide {
    padding: 24px 32px;
    max-width: 1200px;
}

/* ---- Detail Tabs (User Detail) ---- */
.detail-tab {
    padding: 8px 16px;
    font-size: 13px;
    font-weight: 500;
    font-family: inherit;
    color: #64748B;
    background: none;
    border: none;
    border-bottom: 2px solid transparent;
    cursor: pointer;
    margin-bottom: -2px;
    transition: color 0.1s, border-color 0.1s;
}

.detail-tab:hover { color: #0F172A; }
.detail-tab.active { color: #2563EB; border-bottom-color: #2563EB; }

.detail-panel { display: none; }
.detail-panel.active { display: block; }

/* ==================================================================
   Rental Page — SaaS Console Layout (Option B)
   ================================================================== */
.rp {
    padding: 24px 32px;
    max-width: 960px;
}

/* --- Bordered box (shared by all sections) --- */
.rp-box {
    border: 1px solid #E2E8F0;
    border-radius: 8px;
    padding: 20px 24px;
    margin-bottom: 20px;
}

/* --- Section 1: Price + Action --- */
.rp-price {
    font-size: 15px;
    color: #334155;
    line-height: 1.5;
    padding-bottom: 16px;
    border-bottom: 1px solid #F1F5F9;
    margin-bottom: 16px;
}

.rp-action {
    display: flex;
    align-items: center;
    gap: 12px;
}

.rp-select {
    flex: 1;
    height: 42px;
    padding: 0 14px;
    display: flex;
    align-items: center;
    font-size: 14px;
    color: #64748B;
    border: 1px solid #E2E8F0;
    border-radius: 6px;
    background: #FAFBFC;
}

.rp-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0 32px;
    height: 42px;
    font-size: 14px;
    font-weight: 600;
    font-family: inherit;
    border: none;
    border-radius: 6px;
    cursor: pointer;
    background: #0F172A;
    color: #fff;
    transition: background 0.12s, transform 0.08s;
    white-space: nowrap;
    flex-shrink: 0;
}

.rp-btn:hover { background: #1E293B; }
.rp-btn:active { transform: scale(0.97); }
.rp-btn:disabled { opacity: 0.4; cursor: not-allowed; transform: none; }

/* --- Active number box --- */
.rp-active-box { border-left: 3px solid #2563EB; }

.rp-active-top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding-bottom: 16px;
    border-bottom: 1px solid #F1F5F9;
    margin-bottom: 14px;
}

.rp-active-left {
    display: flex;
    align-items: center;
    gap: 12px;
}

.rp-active-right {
    display: flex;
    align-items: center;
    gap: 12px;
}

.rp-timer { text-align: right; margin-right: 4px; }
.rp-timer-label { display: block; font-size: 10px; color: #94A3B8; text-transform: uppercase; letter-spacing: 0.06em; font-weight: 500; }

.rp-sms-head {
    font-size: 13px;
    font-weight: 600;
    color: #334155;
    margin-bottom: 10px;
}

.rp-sms-empty {
    padding: 28px 0;
    text-align: center;
    color: #94A3B8;
    font-size: 13px;
}

/* --- Section 2: Two-column bottom --- */
.rp-cols {
    display: grid;
    grid-template-columns: 1.5fr 1fr;
    gap: 20px;
    align-items: start;
}

.rp-box-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding-bottom: 12px;
    border-bottom: 1px solid #E2E8F0;
    margin-bottom: 0;
}

.rp-box-head span {
    font-size: 15px;
    font-weight: 600;
    color: #0F172A;
}

.rp-link {
    font-size: 13px;
    font-weight: 500;
    color: #2563EB;
    text-decoration: none;
}
.rp-link:hover { color: #1D4ED8; }

/* Mini table inside Active Number box */
.rp-table {
    width: 100%;
    border-collapse: collapse;
}

.rp-table th {
    text-align: left;
    padding: 10px 8px;
    font-size: 12px;
    font-weight: 500;
    color: #94A3B8;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    border-bottom: 1px solid #E2E8F0;
}

.rp-table td {
    padding: 12px 8px;
    font-size: 13px;
    color: #334155;
    border-bottom: 1px solid #F1F5F9;
}

.rp-table-empty {
    text-align: center;
    color: #94A3B8;
    padding: 28px 8px !important;
}

/* Steps list inside How it works box */
.rp-steps {
    list-style: none;
    counter-reset: step;
    padding: 0;
    margin: 0;
}

.rp-steps li {
    counter-increment: step;
    padding: 10px 0;
    font-size: 13px;
    color: #475569;
    border-bottom: 1px solid #F1F5F9;
    line-height: 1.4;
}

.rp-steps li:last-child { border-bottom: none; }

.rp-steps li::before {
    content: counter(step) ". ";
    font-weight: 600;
    color: #94A3B8;
}

/* ---- Action Card ---- */
.action-card {
    padding: 20px 0;
    margin-bottom: 0;
    border-bottom: 1px solid #E2E8F0;
    position: relative;
    z-index: 10;
}

.action-card-body {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
}

.action-card-title {
    font-size: 14px;
    font-weight: 600;
    color: #0F172A;
    margin-bottom: 2px;
}

.action-card-desc {
    font-size: 13px;
    color: #64748B;
}

/* ---- Section Block ---- */
.section-block {
    margin-bottom: 24px;
    overflow: visible;
}

.section-block-header {
    padding: 0 0 12px;
    display: flex;
    align-items: center;
    gap: 8px;
}

.section-block-header h3 {
    font-size: 13px;
    font-weight: 600;
    color: #334155;
}

/* ---- Content Section (replaces inline white-card blocks) ---- */
.content-section {
    padding: 20px 0;
    border-bottom: 1px solid #E2E8F0;
    margin-bottom: 0;
}

.content-section:last-child {
    border-bottom: none;
}

.content-section-title {
    font-size: 13px;
    font-weight: 600;
    color: #334155;
    margin-bottom: 12px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
}

/* ---- Active Number Banner ---- */
.active-number-banner {
    border-left: 3px solid #2563EB;
    border-bottom: 1px solid #E2E8F0;
    padding: 16px 20px;
    margin-bottom: 16px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
}

.active-number-left {
    display: flex;
    align-items: center;
    gap: 12px;
}

.active-number-right {
    display: flex;
    align-items: center;
    gap: 20px;
}

.active-number-timer {
    text-align: right;
}

.timer-label {
    display: block;
    font-size: 10px;
    color: #94A3B8;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    font-weight: 500;
    margin-bottom: 1px;
}

/* ---- Empty State ---- */
.empty-state {
    padding: 48px 20px;
    text-align: center;
}

.empty-state-icon {
    font-size: 32px;
    margin-bottom: 12px;
    opacity: 0.3;
}

.empty-state p {
    font-size: 14px;
    font-weight: 500;
    color: #475569;
    margin-bottom: 4px;
}

.empty-state span {
    font-size: 13px;
    color: #94A3B8;
}

/* ---- Legacy panel compat ---- */
.sms-panel {
    max-width: none;
    margin: 0;
}

.panel-section {
    padding: 20px 0;
    margin-bottom: 0;
    border-bottom: 1px solid #E2E8F0;
    position: relative;
    z-index: 1;
}

.panel-section.select-section {
    z-index: 10;
}

.panel-title {
    font-size: 14px;
    font-weight: 600;
    color: #0F172A;
    margin-bottom: 2px;
    letter-spacing: -0.01em;
}

.panel-desc {
    font-size: 13px;
    color: #94A3B8;
    margin-bottom: 16px;
}

.active-header {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 10px;
}

.active-count {
    background: #2563EB;
    color: #fff;
    font-size: 10px;
    font-weight: 700;
    width: 20px;
    height: 20px;
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

/* ==================== Service Dropdown ==================== */
.service-select-wrap {
    position: relative;
    z-index: 70;
}

.select-box {
    position: relative;
}

.select-input {
    width: 100%;
    padding: 10px 36px 10px 14px;
    font-size: 14px;
    font-family: inherit;
    border: 1px solid #E2E8F0;
    border-radius: 8px;
    outline: none;
    background: #fff;
    cursor: pointer;
    transition: border-color 0.15s, box-shadow 0.15s;
}

.select-input:focus {
    border-color: #2563EB;
    box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.1);
}

.select-display {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 8px 36px 8px 12px;
    border: 1px solid #2563EB;
    border-radius: 8px;
    background: #EFF6FF;
    cursor: pointer;
    position: relative;
}

.selected-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    background: #2563EB;
    color: #fff;
    font-size: 11px;
    font-weight: 700;
    border-radius: 6px;
    flex-shrink: 0;
}

.selected-name {
    font-weight: 600;
    font-size: 14px;
    color: #0F172A;
}

.selected-price {
    margin-left: auto;
    font-weight: 600;
    color: #059669;
    font-size: 14px;
}

.select-clear {
    position: absolute;
    right: 10px;
    top: 50%;
    transform: translateY(-50%);
    background: none;
    border: none;
    font-size: 18px;
    color: #94A3B8;
    cursor: pointer;
    padding: 0 4px;
}
.select-clear:hover { color: #DC2626; }

.select-arrow {
    position: absolute;
    right: 14px;
    top: 50%;
    transform: translateY(-50%);
    color: #94A3B8;
    pointer-events: none;
    font-size: 12px;
}

.select-dropdown {
    display: none;
    position: absolute;
    top: calc(100% + 4px);
    left: 0;
    right: 0;
    background: #fff;
    border: 1px solid #E2E8F0;
    border-radius: 8px;
    max-height: 380px;
    z-index: 999;
    overflow: hidden;
}

.select-dropdown.open { display: block; }

.dropdown-search {
    width: 100%;
    padding: 10px 14px;
    font-size: 13px;
    font-family: inherit;
    border: none;
    border-bottom: 1px solid #F1F5F9;
    outline: none;
    background: #F8FAFC;
    border-radius: 8px 8px 0 0;
}

.dropdown-list {
    max-height: 320px;
    overflow-y: auto;
}

.btn-get-number {
    display: block;
    width: 100%;
    margin-top: 12px;
    padding: 12px;
    font-size: 14px;
    font-weight: 600;
    font-family: inherit;
    border: none;
    border-radius: 8px;
    background: #059669;
    color: #fff;
    cursor: pointer;
    transition: background 0.15s;
}

.btn-get-number:hover:not(:disabled) { background: #047857; }
.btn-get-number:disabled { background: #E2E8F0; color: #94A3B8; cursor: not-allowed; }

.dropdown-item {
    padding: 10px 14px;
    cursor: pointer;
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-size: 13px;
    border-bottom: 1px solid #F8FAFC;
    transition: background 0.1s;
}

.dropdown-item:hover { background: #F8FAFC; }

.dropdown-item .svc-left {
    display: flex;
    align-items: center;
    gap: 10px;
}

.dropdown-item .svc-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    background: #F1F5F9;
    color: #475569;
    font-size: 11px;
    font-weight: 700;
    border-radius: 6px;
    flex-shrink: 0;
}

.dropdown-item .svc-name { font-weight: 500; color: #0F172A; }

.dropdown-item .svc-right {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-shrink: 0;
}

.dropdown-item .svc-ttl { font-size: 12px; color: #94A3B8; }
.dropdown-item .svc-price { color: #059669; font-weight: 600; font-size: 13px; }

.dropdown-item.selected { background: #EFF6FF; }
.dropdown-item.selected .svc-icon { background: #2563EB; color: #fff; }

.dropdown-loading, .dropdown-empty {
    padding: 20px;
    text-align: center;
    color: #94A3B8;
    font-size: 13px;
}

/* ==================== Active Number Card (compact row style) ==================== */
.number-card {
    border-bottom: 1px solid #E2E8F0;
    padding: 16px 0;
    margin-bottom: 0;
}

.number-card-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.number-card .card-index {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 24px;
    height: 24px;
    background: #F1F5F9;
    color: #475569;
    font-size: 11px;
    font-weight: 600;
    border-radius: 5px;
    margin-right: 10px;
}

.number-card .card-service {
    font-weight: 500;
    font-size: 13px;
    color: #334155;
}

.number-card .card-meta {
    display: flex;
    align-items: center;
    gap: 10px;
}

.number-card .card-time {
    font-size: 11px;
    color: #94A3B8;
}

.card-countdown {
    font-size: 11px;
    font-weight: 600;
    color: #2563EB;
    font-family: 'Inter', monospace;
    background: #EFF6FF;
    padding: 2px 8px;
    border-radius: 4px;
}

.card-countdown.urgent { color: #DC2626; background: #FEF2F2; }
.card-countdown.expired { color: #94A3B8; background: #F1F5F9; }

.number-card .phone-line {
    margin: 10px 0 6px;
    display: flex;
    align-items: center;
    gap: 10px;
}

.number-card .phone-number {
    font-size: 16px;
    font-weight: 600;
    font-family: 'Inter', monospace;
    color: #0F172A;
    letter-spacing: 0.3px;
}

.number-card .copy-btn {
    padding: 2px 10px;
    font-size: 11px;
    border: 1px solid #E2E8F0;
    border-radius: 5px;
    background: #fff;
    cursor: pointer;
    color: #64748B;
    font-family: inherit;
    transition: all 0.12s;
}
.number-card .copy-btn:hover { background: #F1F5F9; color: #334155; }

.sms-area {
    background: #F8FAFC;
    border: 1px solid #F1F5F9;
    border-radius: 6px;
    padding: 12px;
    margin: 10px 0 8px;
    min-height: 40px;
}

.sms-area .sms-label {
    font-size: 11px;
    color: #94A3B8;
    margin-bottom: 4px;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    font-weight: 500;
}

.sms-waiting {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    color: #94A3B8;
    font-size: 12px;
    padding: 6px 0;
}

.sms-waiting .spinner {
    width: 14px;
    height: 14px;
    border: 2px solid #E2E8F0;
    border-top-color: #2563EB;
    border-radius: 50%;
    animation: spin 0.8s linear infinite;
}

@keyframes spin { to { transform: rotate(360deg); } }

.sms-code-display { text-align: center; padding: 6px 0; }

.sms-code-display .code {
    font-size: 24px;
    font-weight: 700;
    color: #059669;
    font-family: 'Inter', monospace;
    letter-spacing: 3px;
}

.sms-code-display .message {
    font-size: 12px;
    color: #64748B;
    margin-top: 4px;
    word-break: break-all;
}

.sms-item {
    padding: 8px 0;
    border-bottom: 1px solid #F1F5F9;
}
.sms-item:last-of-type { border-bottom: none; }

.sms-item-msg {
    font-size: 12px;
    color: #64748B;
    margin-bottom: 4px;
    word-break: break-word;
    line-height: 1.4;
}

.sms-item-code {
    display: flex;
    align-items: center;
    gap: 8px;
}

.sms-item-code .code-text {
    font-size: 20px;
    font-weight: 700;
    color: #059669;
    font-family: 'Inter', monospace;
    letter-spacing: 2px;
}

.sms-item-code .sms-time {
    font-size: 11px;
    color: #94A3B8;
    margin-left: auto;
}

.number-card .card-actions {
    display: flex;
    gap: 8px;
    margin-top: 8px;
}

.number-card .cancel-btn {
    width: 100%;
    padding: 7px;
    font-size: 12.5px;
    font-family: inherit;
    border: 1px solid #E2E8F0;
    border-radius: 6px;
    background: #fff;
    cursor: pointer;
    color: #64748B;
    text-align: center;
    transition: all 0.15s;
}
.number-card .cancel-btn:hover {
    background: #FEF2F2;
    color: #DC2626;
    border-color: #FECACA;
}

.number-card .complete-btn {
    flex: 1;
    padding: 7px;
    font-size: 12.5px;
    font-family: inherit;
    border: 1px solid #2563EB;
    border-radius: 6px;
    background: #2563EB;
    color: #fff;
    cursor: pointer;
    text-align: center;
}
.number-card .complete-btn:hover { background: #1E50D0; }

.empty-placeholder {
    text-align: center;
    padding: 40px 20px;
    color: #94A3B8;
    font-size: 14px;
}

.history-link { font-size: 13px; color: #2563EB; }

/* ==================== Section Header ==================== */
.section-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 16px;
    gap: 12px;
}

.section-header h2 { font-size: 16px; font-weight: 600; color: #0F172A; }

.count-hint { font-size: 13px; font-weight: 400; color: #64748B; margin-left: 8px; }

.search-input {
    padding: 8px 14px;
    font-size: 13px;
    font-family: inherit;
    border: 1px solid #E2E8F0;
    border-radius: 8px;
    width: 200px;
    outline: none;
    transition: border-color 0.15s, box-shadow 0.15s;
}
.search-input:focus { border-color: #2563EB; box-shadow: 0 0 0 3px rgba(37,99,235,0.1); }

/* ==================== Tables ==================== */
.table-wrap {
    overflow-x: auto;
    background: #fff;
}

.data-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 13px;
    border-top: 1px solid #E2E8F0;
}

.data-table th {
    text-align: left;
    padding: 12px 16px;
    background: transparent;
    border-bottom: 1px solid #CBD5E1;
    font-weight: 500;
    color: #64748B;
    white-space: nowrap;
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.data-table td {
    padding: 14px 16px;
    border-bottom: 1px solid #F1F5F9;
    vertical-align: middle;
    color: #334155;
    font-size: 13.5px;
}

.data-table tr:last-child td { border-bottom: none; }
.data-table tr:hover td { background: #FAFCFE; }

/* ==================== Status Badges ==================== */
.badge {
    display: inline-block;
    padding: 2px 8px;
    font-size: 11px;
    font-weight: 500;
    border-radius: 9999px;
    letter-spacing: 0.01em;
}

.badge-active { background: #DBEAFE; color: #1E40AF; }
.badge-received { background: #D1FAE5; color: #065F46; }
.badge-completed { background: #F1F5F9; color: #475569; }
.badge-cancelled { background: #FEE2E2; color: #991B1B; }
.badge-pending { background: #FEF3C7; color: #92400E; }
.badge-paid { background: #D1FAE5; color: #065F46; }

/* ==================== Stats Row (Admin) ==================== */
.stats-grid {
    display: flex;
    flex-wrap: wrap;
    gap: 0;
    margin-top: 0;
    border-bottom: 1px solid #E2E8F0;
    padding: 20px 0;
}

.stat-card {
    padding: 0 24px;
    border-right: 1px solid #E2E8F0;
    background: none;
    border-radius: 0;
    display: flex;
    flex-direction: column-reverse;
}

.stat-card:last-child {
    border-right: none;
}

.stat-label {
    font-size: 11px;
    color: #94A3B8;
    margin-bottom: 4px;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    font-weight: 500;
}

.stat-value {
    font-size: 24px;
    font-weight: 700;
    color: #0F172A;
    letter-spacing: -0.3px;
    line-height: 1;
}

/* ==================== Wallet Page ==================== */
.wl {
    padding: 24px 32px;
    max-width: 720px;
}

/* Hero balance card */
.wl-hero {
    background: #0F172A;
    border-radius: 10px;
    padding: 32px 32px;
    margin-bottom: 20px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
}

.wl-hero-label {
    font-size: 11px;
    font-weight: 500;
    color: #64748B;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    margin-bottom: 8px;
}

.wl-hero-amount {
    font-size: 40px;
    font-weight: 700;
    color: #F1F5F9;
    letter-spacing: -1px;
    line-height: 1;
    font-family: 'Inter', -apple-system, sans-serif;
}

.wl-hero-sub {
    font-size: 12px;
    color: #475569;
    margin-top: 8px;
}

.wl-hero-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0 28px;
    height: 42px;
    font-size: 14px;
    font-weight: 600;
    font-family: inherit;
    border: none;
    border-radius: 6px;
    cursor: pointer;
    background: #3B82F6;
    color: #fff;
    text-decoration: none;
    transition: background 0.12s;
    white-space: nowrap;
    flex-shrink: 0;
}
.wl-hero-btn:hover { background: #2563EB; color: #fff; }

/* Card container */
.wl-card {
    border: 1px solid #E2E8F0;
    border-radius: 8px;
    padding: 24px;
    margin-bottom: 20px;
}

.wl-card-title {
    font-size: 15px;
    font-weight: 600;
    color: #0F172A;
    margin-bottom: 16px;
}

/* Quick add pills */
.wl-quick-pills {
    display: flex;
    gap: 8px;
    margin-bottom: 16px;
}

.wl-pill {
    flex: 1;
    height: 40px;
    border: 1px solid #E2E8F0;
    border-radius: 6px;
    background: #FAFBFC;
    font-size: 14px;
    font-weight: 600;
    font-family: inherit;
    color: #334155;
    cursor: pointer;
    transition: border-color 0.12s, background 0.12s;
}
.wl-pill:hover { border-color: #2563EB; color: #2563EB; background: #EFF6FF; }

/* CTA button (full width) */
.wl-cta {
    display: block;
    width: 100%;
    height: 46px;
    margin-top: 8px;
    font-size: 15px;
    font-weight: 600;
    font-family: inherit;
    border: none;
    border-radius: 6px;
    cursor: pointer;
    background: #0F172A;
    color: #fff;
    transition: background 0.12s, transform 0.08s;
}
.wl-cta:hover { background: #1E293B; }
.wl-cta:active { transform: scale(0.98); }
.wl-cta:disabled { opacity: 0.4; cursor: not-allowed; transform: none; }

/* ==================== Recharge ==================== */
.recharge-box { max-width: 560px; }

.recharge-detail {
    border-top: 1px solid #E2E8F0;
    padding: 24px 0;
}

.copy-field { margin: 14px 0; }
.copy-field label { font-size: 12px; color: #64748B; margin-bottom: 4px; display: block; }

.copy-row { display: flex; align-items: center; gap: 8px; }

.copy-row code {
    flex: 1;
    background: #fff;
    padding: 10px 14px;
    font-size: 13px;
    font-family: 'Inter', monospace;
    word-break: break-all;
    border: 1px solid #E2E8F0;
    border-radius: 8px;
}

.recharge-status {
    margin: 16px 0 12px;
    font-size: 13px;
    color: #475569;
}

/* ==================== Config (Admin) ==================== */
.config-form {
    max-width: 560px;
}

.config-form + .config-form {
    border-top: 1px solid #E2E8F0;
    padding-top: 32px;
    margin-top: 32px;
}

.save-status {
    margin-left: 12px;
    font-size: 13px;
    color: #059669;
}

/* ==================== Modal ==================== */
.modal-overlay {
    position: fixed;
    top: 0; left: 0; right: 0; bottom: 0;
    background: rgba(15, 23, 42, 0.45);
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 200;
    backdrop-filter: blur(4px);
    animation: modalFadeIn 0.15s ease-out;
}

@keyframes modalFadeIn {
    from { opacity: 0; }
    to { opacity: 1; }
}

.modal-box {
    background: #fff;
    padding: 28px;
    width: 100%;
    max-width: 400px;
    border: 1px solid #E2E8F0;
    border-radius: 12px;
    animation: modalSlideIn 0.15s ease-out;
}

@keyframes modalSlideIn {
    from { opacity: 0; transform: scale(0.95) translateY(8px); }
    to { opacity: 1; transform: scale(1) translateY(0); }
}

.modal-box h3 {
    font-size: 16px;
    font-weight: 600;
    margin-bottom: 8px;
    color: #0F172A;
    letter-spacing: -0.2px;
}

.modal-actions {
    margin-top: 24px;
    display: flex;
    gap: 8px;
    justify-content: flex-end;
}

/* ==================== Pagination ==================== */
.pagination {
    margin-top: 16px;
    display: flex;
    gap: 4px;
    align-items: center;
    font-size: 13px;
}

.pagination .page-btn {
    padding: 4px 12px;
    border: 1px solid #E2E8F0;
    border-radius: 6px;
    background: #fff;
    cursor: pointer;
    font-size: 13px;
    font-family: inherit;
    color: #475569;
}

.pagination .page-btn:hover { background: #F8FAFC; }
.pagination .page-btn.active { background: #2563EB; color: #fff; border-color: #2563EB; }
.pagination .page-info { color: #94A3B8; margin-left: 8px; }

/* ==================== Announcement Bar (system status strip) ==================== */
.announcement-bar {
    background: #F8FAFC;
    border-bottom: 1px solid #E2E8F0;
    color: #64748B;
    overflow: hidden;
    white-space: nowrap;
    position: relative;
    height: 28px;
    line-height: 28px;
    font-size: 11.5px;
}

.announcement-bar a { color: #2563EB; text-decoration: none; font-weight: 500; }
.announcement-bar a:hover { text-decoration: underline; }

.announcement-scroll {
    display: inline-block;
    padding-left: 100%;
    animation: scroll-left 25s linear infinite;
}

@keyframes scroll-left {
    0%   { transform: translateX(0); }
    100% { transform: translateX(-100%); }
}

/* ==================== Toast ==================== */
.toast {
    position: fixed;
    top: 72px;
    left: 50%;
    transform: translateX(-50%);
    background: #0F172A;
    color: #fff;
    padding: 10px 24px;
    font-size: 14px;
    border-radius: 8px;
    z-index: 9999;
    opacity: 0;
    transition: opacity 0.2s;
    pointer-events: none;
    max-width: 90%;
    text-align: center;
}

.toast.show { opacity: 1; }
.toast.error { background: #DC2626; }
.toast.success { background: #059669; }

/* ==================== User Detail Tabs ==================== */
.detail-tab {
    padding: 8px 20px;
    font-size: 13px;
    font-weight: 500;
    font-family: inherit;
    border: none;
    background: none;
    color: #64748B;
    cursor: pointer;
    border-bottom: 2px solid transparent;
    margin-bottom: -2px;
    transition: color 0.15s, border-color 0.15s;
}

.detail-tab:hover { color: #334155; }

.detail-tab.active {
    color: #2563EB;
    border-bottom-color: #2563EB;
    font-weight: 600;
}

.detail-panel {
    display: none;
}

.detail-panel.active {
    display: block;
}

/* ==================== Misc ==================== */
.loading-text {
    text-align: center;
    padding: 40px;
    color: #94A3B8;
    font-size: 14px;
}

.empty-text {
    text-align: center;
    padding: 40px;
    color: #94A3B8;
    font-size: 14px;
}

/* ==================== Rental (Services One) ==================== */
.rental-number-card {
    padding: 20px 0;
    margin-top: 8px;
    border-left: 3px solid #2563EB;
    padding-left: 20px;
    border-bottom: 1px solid #E2E8F0;
}

.rental-number-info {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 12px;
}

.rental-country-badge {
    background: #EFF6FF;
    color: #2563EB;
    padding: 3px 10px;
    border-radius: 5px;
    font-weight: 600;
    font-size: 12px;
    border: 1px solid #DBEAFE;
}

.rental-phone {
    font-size: 18px;
    font-weight: 600;
    font-family: 'Inter', monospace;
    color: #0F172A;
    letter-spacing: 0.5px;
}

.rental-timer-row {
    font-size: 13px;
    margin-bottom: 12px;
    color: #64748B;
}

.rental-timer {
    font-size: 18px;
    font-weight: 700;
    font-family: 'Inter', monospace;
}

.rental-actions { display: flex; gap: 8px; }

.sms-card {
    padding: 14px 0;
    margin-bottom: 0;
    border-bottom: 1px solid #E2E8F0;
}

.sms-card.sms-unlocked { border-left: 3px solid #059669; padding-left: 14px; }
.sms-card.sms-locked { border-left: 3px solid #F59E0B; padding-left: 14px; }

.sms-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 6px;
}

.sms-sender { font-weight: 600; font-size: 14px; color: #0F172A; }
.sms-time { font-size: 12px; color: #94A3B8; }

.sms-body { font-size: 14px; color: #334155; word-break: break-all; }

.sms-hidden {
    display: flex;
    align-items: center;
    gap: 12px;
}

.sms-blur {
    color: #CBD5E1;
    font-size: 16px;
    letter-spacing: 2px;
    user-select: none;
}

.btn-unlock {
    background: #F59E0B;
    color: #fff;
    border: none;
    border-radius: 6px;
    padding: 5px 14px;
    font-size: 12px;
    font-weight: 600;
    font-family: inherit;
    cursor: pointer;
    white-space: nowrap;
}
.btn-unlock:hover { background: #D97706; }

.form-select { appearance: auto; }

/* ==================== Responsive ==================== */
@media (max-width: 768px) {
    .auth-brand { display: none; }
    .auth-form-side { padding: 24px; }

    .sidebar {
        transform: translateX(-100%);
        transition: transform 0.2s;
    }
    .sidebar.open { transform: translateX(0); }
    .sidebar-close { display: block; }
    .menu-toggle { display: block; }
    .main-content { margin-left: 0; }
    .page-header { padding: 20px 16px 16px; }
    .page-title { font-size: 18px; }
    .content-grid { padding: 16px; }
    .panel-section { padding: 16px 0; }
    .action-card { padding: 16px 0; }
    .action-card-body { flex-direction: column; align-items: flex-start; }
    .active-number-banner { flex-direction: column; align-items: flex-start; }
    .active-number-right { flex-direction: column; align-items: flex-start; gap: 10px; }
    .number-card .phone-number { font-size: 15px; }
    .sms-code-display .code { font-size: 22px; }
    .stats-grid { flex-wrap: wrap; gap: 16px 0; }
    .stat-card { min-width: 50%; padding: 0 16px; }
    .rp { padding: 16px; }
    .rp-box { padding: 16px; }
    .rp-action { flex-direction: column; }
    .rp-btn { width: 100%; }
    .rp-active-top { flex-direction: column; align-items: flex-start; }
    .rp-active-right { flex-wrap: wrap; }
    .rp-cols { grid-template-columns: 1fr; }
    .wl { padding: 16px; }
    .wl-hero { flex-direction: column; align-items: flex-start; padding: 24px 20px; }
    .wl-hero-amount { font-size: 32px; }
    .wl-hero-btn { width: 100%; text-align: center; }
    .wl-card { padding: 16px; }
    .wl-quick-pills { flex-wrap: wrap; }
    .wl-pill { min-width: calc(50% - 4px); }
}
