/* ═══════════════════════════════════════════════════════════
   CE Supply — Stylesheet
   اتجاه: RTL | اللغة: العربية
═══════════════════════════════════════════════════════════ */

:root {
    --ces-primary:     #0f766e;
    --ces-primary-dk:  #0d6460;
    --ces-accent:      #f59e0b;
    --ces-danger:      #dc2626;
    --ces-success:     #16a34a;
    --ces-warning:     #d97706;
    --ces-gray-50:     #f8fafc;
    --ces-gray-100:    #f1f5f9;
    --ces-gray-200:    #e2e8f0;
    --ces-gray-400:    #94a3b8;
    --ces-gray-600:    #475569;
    --ces-gray-800:    #1e293b;
    --ces-radius:      10px;
    --ces-radius-sm:   6px;
    --ces-shadow:      0 1px 3px rgba(0,0,0,.08), 0 1px 2px rgba(0,0,0,.06);
    --ces-shadow-md:   0 4px 6px rgba(0,0,0,.07), 0 2px 4px rgba(0,0,0,.06);
    --ces-font:        'Tajawal', 'Segoe UI', sans-serif;
}

/* ── Base ── */
.ces-wrap { direction: rtl; font-family: var(--ces-font); color: var(--ces-gray-800); }

/* ── Buttons ── */
.ces-btn {
    display: inline-flex; align-items: center; justify-content: center;
    padding: 9px 20px; border-radius: var(--ces-radius-sm); font-size: .9rem;
    font-weight: 600; cursor: pointer; border: none; text-decoration: none;
    transition: all .18s ease; white-space: nowrap; line-height: 1;
}
.ces-btn-primary  { background: var(--ces-primary); color: #fff; }
.ces-btn-primary:hover { background: var(--ces-primary-dk); color: #fff; }
.ces-btn-danger   { background: var(--ces-danger);  color: #fff; }
.ces-btn-danger:hover  { background: #b91c1c; color: #fff; }
.ces-btn-ghost    { background: transparent; color: var(--ces-gray-600); border: 1.5px solid var(--ces-gray-200); }
.ces-btn-ghost:hover   { background: var(--ces-gray-100); }
.ces-btn-full  { width: 100%; }
.ces-btn-lg    { padding: 12px 28px; font-size: 1rem; }
.ces-btn-sm    { padding: 5px 12px; font-size: .8rem; }

/* ── Inputs ── */
.ces-input, .ces-select, .ces-textarea {
    width: 100%; padding: 10px 14px; border: 1.5px solid var(--ces-gray-200);
    border-radius: var(--ces-radius-sm); font-size: .92rem; font-family: var(--ces-font);
    background: #fff; color: var(--ces-gray-800); transition: border-color .15s;
    box-sizing: border-box; direction: rtl;
}
.ces-input:focus, .ces-select:focus, .ces-textarea:focus {
    outline: none; border-color: var(--ces-primary);
    box-shadow: 0 0 0 3px rgba(15,118,110,.12);
}
.ces-textarea { resize: vertical; min-height: 100px; }
.ces-input-sm { max-width: 160px; }
.ces-input-search { max-width: 280px; }

/* ── Forms ── */
.ces-form-wrap    { max-width: 760px; margin: 0 auto; padding: 30px 0; }
.ces-form-title   { font-size: 1.5rem; font-weight: 700; margin-bottom: 6px; }
.ces-form-sub     { color: var(--ces-gray-600); margin-bottom: 28px; }
.ces-form-group   { margin-bottom: 20px; }
.ces-form-row     { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.ces-label        { display: block; font-weight: 600; margin-bottom: 6px; font-size: .9rem; }
.ces-required::after { content: ' *'; color: var(--ces-danger); }
.ces-hint         { display: block; font-size: .8rem; color: var(--ces-gray-400); margin-top: 4px; }
.ces-checkbox-group label { display: flex; align-items: center; gap: 8px; font-size: .9rem; cursor: pointer; }
.ces-form-section-title { font-weight: 700; font-size: .9rem; color: var(--ces-gray-600);
    border-bottom: 1px solid var(--ces-gray-200); padding-bottom: 8px; margin: 24px 0 16px; }
.ces-form-actions { display: flex; align-items: center; gap: 16px; margin-top: 28px; flex-wrap: wrap; }
.ces-form-note    { font-size: .82rem; color: var(--ces-gray-400); }

/* ── Cards (Archive) ── */
.ces-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px,1fr)); gap: 20px; padding: 20px 0; }
.ces-card {
    background: #fff; border-radius: var(--ces-radius); box-shadow: var(--ces-shadow);
    padding: 20px; display: flex; flex-direction: column; gap: 12px;
    border: 1px solid var(--ces-gray-100); transition: box-shadow .2s;
}
.ces-card:hover { box-shadow: var(--ces-shadow-md); }
.ces-card-header { display: flex; gap: 8px; flex-wrap: wrap; }
.ces-card-title  { font-size: 1.05rem; font-weight: 700; margin: 0; line-height: 1.4; }
.ces-card-title a { color: var(--ces-gray-800); text-decoration: none; }
.ces-card-title a:hover { color: var(--ces-primary); }
.ces-card-excerpt { font-size: .88rem; color: var(--ces-gray-600); line-height: 1.6; margin: 0; }
.ces-card-meta   { display: flex; gap: 10px; flex-wrap: wrap; font-size: .8rem; color: var(--ces-gray-400); }
.ces-card-footer { display: flex; gap: 8px; align-items: center; margin-top: auto; }

/* ── Badges ── */
.ces-badge { display: inline-block; padding: 3px 10px; border-radius: 20px; font-size: .78rem; font-weight: 600; }
.ces-badge-type     { background: rgba(15,118,110,.1); color: var(--ces-primary); }
.ces-badge-featured { background: rgba(245,158,11,.12); color: var(--ces-accent); }
.ces-badge-num { display: inline-flex; align-items: center; justify-content: center;
    background: var(--ces-danger); color: #fff; border-radius: 50%; width: 18px; height: 18px; font-size: .7rem; margin-right: 4px; }

/* ── Status ── */
.ces-status { display: inline-block; padding: 3px 10px; border-radius: 20px; font-size: .8rem; font-weight: 600; }
.ces-status-active      { background:#dcfce7; color:#15803d; }
.ces-status-pending     { background:#fef9c3; color:#a16207; }
.ces-status-reviewed    { background:#dbeafe; color:#1d4ed8; }
.ces-status-shortlisted { background:#ede9fe; color:#6d28d9; }
.ces-status-accepted    { background:#dcfce7; color:#15803d; }
.ces-status-rejected    { background:#fee2e2; color:#b91c1c; }
.ces-status-withdrawn   { background:#f1f5f9; color:#64748b; }
.ces-status-closed      { background:#f1f5f9; color:#64748b; }

/* ── Archive Page ── */
.ces-archive-header { text-align: center; padding: 30px 0 10px; }
.ces-archive-title  { font-size: 1.8rem; font-weight: 800; }
.ces-archive-sub    { color: var(--ces-gray-600); }
.ces-filter-form    { background: var(--ces-gray-50); border-radius: var(--ces-radius); padding: 16px 20px; margin-bottom: 10px; }
.ces-filter-row     { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; }
.ces-filter-row .ces-input, .ces-filter-row .ces-select { flex: 1; min-width: 140px; width: auto; }
.ces-results-bar    { font-size: .88rem; color: var(--ces-gray-400); padding: 4px 0 10px; }
.ces-pagination     { display: flex; gap: 6px; justify-content: center; margin-top: 30px; flex-wrap: wrap; }
.ces-page-btn { padding: 8px 14px; border-radius: var(--ces-radius-sm); font-size: .88rem;
    border: 1.5px solid var(--ces-gray-200); color: var(--ces-gray-600); text-decoration: none; }
.ces-page-btn.active { background: var(--ces-primary); color: #fff; border-color: var(--ces-primary); }

/* ── Single Opportunity ── */
.ces-single-header { padding: 24px 0 20px; border-bottom: 1px solid var(--ces-gray-200); margin-bottom: 24px; }
.ces-single-badges { display: flex; gap: 8px; margin-bottom: 12px; flex-wrap: wrap; }
.ces-single-title  { font-size: 1.6rem; font-weight: 800; margin: 0 0 14px; line-height: 1.3; }
.ces-single-meta   { display: flex; gap: 16px; flex-wrap: wrap; font-size: .85rem; color: var(--ces-gray-400); }
.ces-single-body   { display: grid; grid-template-columns: 1fr 300px; gap: 28px; align-items: start; }
.ces-single-section { margin-bottom: 28px; }
.ces-single-section h3 { font-size: 1rem; font-weight: 700; margin-bottom: 12px; color: var(--ces-gray-600);
    text-transform: uppercase; letter-spacing: .5px; font-size: .85rem; }
.ces-content { line-height: 1.8; font-size: .95rem; }
.ces-budget-section { background: var(--ces-gray-50); border-radius: var(--ces-radius); padding: 16px; }
.ces-budget-display { font-size: 1.3rem; font-weight: 700; color: var(--ces-primary); }
.ces-sidebar-card { background: #fff; border: 1px solid var(--ces-gray-200); border-radius: var(--ces-radius); padding: 20px; margin-bottom: 16px; }
.ces-sidebar-card h4 { font-size: .88rem; color: var(--ces-gray-600); margin: 0 0 12px; text-transform: uppercase; letter-spacing: .5px; }
.ces-publisher-info { display: flex; gap: 12px; align-items: center; }
.ces-applied-badge  { background: #dcfce7; color: #15803d; border-radius: var(--ces-radius-sm); padding: 10px; text-align: center; font-weight: 600; font-size: .9rem; }
.ces-apply-panel    { margin-top: 30px; background: var(--ces-gray-50); border-radius: var(--ces-radius); padding: 24px; border: 1px solid var(--ces-gray-200); }

/* ── Dashboard ── */
.ces-dashboard-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 24px; }
.ces-dashboard-header h2 { font-size: 1.5rem; font-weight: 800; margin: 0; }
.ces-stats-row  { display: grid; grid-template-columns: repeat(auto-fill, minmax(160px,1fr)); gap: 14px; margin-bottom: 28px; }
.ces-stat-card  { background: #fff; border-radius: var(--ces-radius); padding: 18px 20px; border: 1px solid var(--ces-gray-100); box-shadow: var(--ces-shadow); }
.ces-stat-num   { font-size: 2rem; font-weight: 800; color: var(--ces-gray-800); }
.ces-stat-label { font-size: .83rem; color: var(--ces-gray-400); margin-top: 4px; }
.ces-stat-green .ces-stat-num { color: var(--ces-success); }
.ces-stat-blue  .ces-stat-num { color: #1d4ed8; }
.ces-stat-orange .ces-stat-num { color: var(--ces-warning); }

/* ── Tabs ── */
.ces-tabs { display: flex; gap: 0; border-bottom: 2px solid var(--ces-gray-200); margin-bottom: 24px; }
.ces-tab  { padding: 10px 20px; font-size: .9rem; font-weight: 600; color: var(--ces-gray-400);
    text-decoration: none; border-bottom: 2px solid transparent; margin-bottom: -2px; display: flex; align-items: center; gap: 6px; }
.ces-tab.active  { color: var(--ces-primary); border-bottom-color: var(--ces-primary); }
.ces-tab:hover   { color: var(--ces-gray-800); }

/* ── Tables ── */
.ces-table-wrap  { overflow-x: auto; }
.ces-table { width: 100%; border-collapse: collapse; font-size: .9rem; }
.ces-table th, .ces-table td { padding: 12px 14px; text-align: right; border-bottom: 1px solid var(--ces-gray-100); }
.ces-table th { font-weight: 700; background: var(--ces-gray-50); font-size: .82rem; color: var(--ces-gray-600); text-transform: uppercase; letter-spacing: .4px; }
.ces-table tr:hover td { background: var(--ces-gray-50); }

/* ── Messages ── */
.ces-messages-layout  { display: grid; grid-template-columns: 240px 1fr; gap: 20px; }
.ces-messages-list    { border: 1px solid var(--ces-gray-200); border-radius: var(--ces-radius); overflow: hidden; }
.ces-msg-item         { display: block; padding: 14px 16px; border-bottom: 1px solid var(--ces-gray-100);
    text-decoration: none; color: var(--ces-gray-800); font-size: .88rem; }
.ces-msg-item.active  { background: rgba(15,118,110,.08); color: var(--ces-primary); font-weight: 600; }
.ces-messages-thread  { display: flex; flex-direction: column; gap: 12px; }
.ces-thread-messages  { background: var(--ces-gray-50); border-radius: var(--ces-radius); padding: 16px; min-height: 200px; max-height: 380px; overflow-y: auto; display: flex; flex-direction: column; gap: 10px; }
.ces-msg { max-width: 75%; }
.ces-msg-mine   { align-self: flex-start; }
.ces-msg-theirs { align-self: flex-end; }
.ces-msg-body   { padding: 10px 14px; border-radius: 10px; font-size: .9rem; line-height: 1.5; }
.ces-msg-mine   .ces-msg-body  { background: #fff; border: 1px solid var(--ces-gray-200); }
.ces-msg-theirs .ces-msg-body  { background: var(--ces-primary); color: #fff; }
.ces-msg-time   { font-size: .75rem; color: var(--ces-gray-400); margin-top: 4px; padding: 0 4px; }
.ces-message-input { display: flex; gap: 10px; align-items: flex-end; }
.ces-message-input .ces-textarea { flex: 1; }

/* ── Reviews ── */
.ces-rating-summary  { display: flex; align-items: center; gap: 12px; margin-bottom: 20px; padding: 16px; background: var(--ces-gray-50); border-radius: var(--ces-radius); }
.ces-avg-rating      { font-size: 2.5rem; font-weight: 800; color: var(--ces-accent); }
.ces-reviews-list    { display: flex; flex-direction: column; gap: 14px; }
.ces-review-item     { background: #fff; border: 1px solid var(--ces-gray-200); border-radius: var(--ces-radius); padding: 16px; }
.ces-review-stars    { color: var(--ces-accent); font-size: 1.1rem; margin-bottom: 6px; }
.ces-review-opp      { font-weight: 600; font-size: .9rem; margin-bottom: 6px; }
.ces-review-comment  { font-size: .9rem; color: var(--ces-gray-600); line-height: 1.6; margin-bottom: 8px; }
.ces-review-meta     { font-size: .8rem; color: var(--ces-gray-400); }

/* ── Alerts ── */
.ces-alert { padding: 14px 18px; border-radius: var(--ces-radius-sm); margin-bottom: 16px; font-size: .9rem; font-weight: 500; }
.ces-alert-error   { background: #fee2e2; color: #b91c1c; border: 1px solid #fca5a5; }
.ces-alert-warning { background: #fef9c3; color: #a16207; border: 1px solid #fde68a; }
.ces-alert-success { background: #dcfce7; color: #15803d; border: 1px solid #86efac; }

/* ── Empty ── */
.ces-empty { text-align: center; padding: 48px 20px; color: var(--ces-gray-400); }
.ces-empty p { font-size: 1rem; margin-bottom: 16px; }

/* ── Login Prompt ── */
.ces-login-prompt { text-align: center; padding: 40px; background: var(--ces-gray-50); border-radius: var(--ces-radius); }

/* ── Apply Form Panel ── */
.ces-apply-form-wrap h3 { font-size: 1.1rem; font-weight: 700; margin-bottom: 16px; }

/* ── Responsive ── */
@media ( max-width: 768px ) {
    .ces-single-body { grid-template-columns: 1fr; }
    .ces-form-row    { grid-template-columns: 1fr; }
    .ces-filter-row  { flex-direction: column; }
    .ces-filter-row .ces-input, .ces-filter-row .ces-select { max-width: 100%; }
    .ces-messages-layout { grid-template-columns: 1fr; }
    .ces-stats-row   { grid-template-columns: repeat(2,1fr); }
}
