/* Shine-inspired layout (light mode). Colors from theme: primary #fe655c, page #F5F7FA — see https://themes.3rdwavemedia.com/demo/bs5/shine/ */ :root { --theme-primary: #fe655c; --theme-secondary-blue: #629feb; --theme-bg-light: #f5f7fa; --theme-text-primary: #121822; --theme-text-secondary: #5c667a; --theme-border: #dbe2ea; --theme-badge-bg: #4f6591; --theme-progress-fill: #7d8fb0; --resume-max-width: 980px; --shadow-card: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.08); } * { box-sizing: border-box; } body.light-mode { margin: 0; font-family: "Inter", system-ui, -apple-system, sans-serif; background: var(--theme-bg-light); color: var(--theme-text-secondary); font-size: 0.9375rem; line-height: 1.55; -webkit-print-color-adjust: exact; print-color-adjust: exact; } h1, h2, h3 { color: var(--theme-text-primary); } a { color: var(--theme-secondary-blue); text-decoration: none; } a:hover { text-decoration: underline; } .page-wrap { min-height: 100vh; padding-bottom: 2rem; } .main-content-wrapper { max-width: 100%; } /* Top bar: email + print/PDF */ .top-bar { padding: 1rem 1rem 0; max-width: var(--resume-max-width); margin: 0 auto; } .top-bar-inner { display: flex; align-items: center; justify-content: center; flex-wrap: wrap; gap: 0.5rem; } @media (max-width: 480px) { .top-bar-btn { padding: 0.5rem 0.8rem !important; /* Smaller buttons on mobile */ font-size: 0.75rem !important; } .top-bar-btn i { margin-right: 0.25rem !important; } } /* Premium Button Styles */ .btn { display: inline-flex; align-items: center; justify-content: center; font-weight: 600; padding: 0.6rem 1.5rem; font-size: 0.9rem; border-radius: 50px; border: none; cursor: pointer; text-align: center; font-family: inherit; transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); text-decoration: none !important; gap: 0.5rem; box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06); } .btn { padding: 0.6rem 1.25rem; font-weight: 700; font-size: 0.85rem; border-radius: 50px; transition: all 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275); /* Modern bounce effect */ display: inline-flex; align-items: center; gap: 0.5rem; border: none; box-shadow: 0 4px 10px rgba(0, 0, 0, 0.08); } .btn:hover { transform: translateY(-3px) scale(1.03); box-shadow: 0 8px 20px rgba(0, 0, 0, 0.12); } .btn:active { transform: translateY(-1px) scale(1); } .btn i { font-size: 1.1rem; } /* Call Button - Green Gradient */ .btn-call { background: linear-gradient(135deg, #28a745 0%, #20c997 100%); color: white; } .btn-call:hover { background: linear-gradient(135deg, #218838 0%, #17a689 100%); color: white; } /* Email Button - Primary Gradient */ .btn-email { background: linear-gradient(135deg, #fe655c 0%, #ff8e87 100%); color: white; } .btn-email:hover { background: linear-gradient(135deg, #fe4d43 0%, #ff766d 100%); color: white; } /* Print Button - Neutral/Glass Look */ .btn-print { background: #fff; color: var(--theme-text-primary); border: 1px solid var(--theme-border); } .btn-print:hover { background: #f8fafc; border-color: var(--theme-text-primary); } /* Language toggle (icon only) */ .btn-lang-toggle { width: 2.75rem; height: 2.75rem; min-width: 2.75rem; padding: 0 !important; border-radius: 50% !important; background: #fff; color: var(--theme-text-primary); border: 1px solid var(--theme-border) !important; box-shadow: 0 2px 6px rgba(0, 0, 0, 0.06) !important; flex-shrink: 0; } .btn-lang-toggle i { font-size: 1.25rem; margin: 0 !important; } .btn-lang-toggle:hover { border-color: var(--theme-primary) !important; color: var(--theme-primary); } body.lang-ar { font-family: "IBM Plex Sans Arabic", "Inter", system-ui, sans-serif; } [dir="rtl"] .resume-summary-desc { text-align: right; } [dir="rtl"] .header-container { flex-direction: row-reverse; } @media (max-width: 991.98px) { [dir="rtl"] .header-container { flex-direction: column; } } [dir="rtl"] .header-right { border-left: none; padding-left: 0; border-right: 2px solid var(--theme-border); padding-right: 2rem; } @media (max-width: 991.98px) { [dir="rtl"] .header-right { border-right: none; padding-right: 0; } } [dir="rtl"] .resume-section-heading::after { left: auto; right: 0; } @media (min-width: 992px) { [dir="rtl"] .col-main { border-right: none; padding-right: 0; border-left: 1px solid var(--theme-border); padding-left: 1.75rem; } [dir="rtl"] .col-side { padding-left: 0; padding-right: 1.75rem; } } [dir="rtl"] .resume-timeline { padding-left: 0; padding-right: 1.5rem; } [dir="rtl"] .resume-timeline::before { left: auto; right: 0; } [dir="rtl"] .resume-timeline-item::before { left: auto; right: -1.5rem; transform: translateX(50%); } [dir="rtl"] .resume-timeline-list { padding-left: 0; padding-right: 1.25rem; } [dir="rtl"] .resume-timeline-list li::before { left: auto; right: -1.25rem; } [dir="rtl"] .item-desc { padding-left: 0; padding-right: 1rem; } [dir="rtl"] .item-desc a { margin-inline-start: 0; margin-inline-end: 0; } @media (max-width: 576px) { .top-bar { padding-left: 0.5rem; padding-right: 0.5rem; } .top-bar-inner { flex-direction: row; flex-wrap: nowrap; justify-content: center; align-items: center; gap: 0.35rem; max-width: 100%; overflow-x: auto; -webkit-overflow-scrolling: touch; scrollbar-width: thin; padding-bottom: 0.2rem; } .top-bar-inner::-webkit-scrollbar { height: 3px; } .top-bar-inner::-webkit-scrollbar-thumb { background: var(--theme-border); border-radius: 3px; } /* واحد سطر: لا تمديد كامل العرض */ .top-bar-inner .btn:not(.btn-lang-toggle) { width: auto; flex: 0 0 auto; min-width: 0; padding: 0.42rem 0.55rem !important; font-size: 0.68rem !important; gap: 0.28rem !important; } .top-bar-inner .btn:not(.btn-lang-toggle) span { white-space: nowrap; } .top-bar-inner .btn-lang-toggle { flex: 0 0 auto; } .top-bar-inner .btn i { font-size: 0.95rem; } } /* Resume card */ .resume-wrapper { position: relative; max-width: var(--resume-max-width); margin: 2rem auto 0; padding-top: 1.75rem; background: #fff; border-radius: 0.375rem; box-shadow: var(--shadow-card); } .resume-header { background: #fff; padding: 2rem; /* Reduced from 3rem */ border-radius: 20px 20px 0 0; border-bottom: 1px solid var(--theme-border); } .header-container { display: flex; align-items: center; justify-content: space-between; gap: 2rem; } .header-left { flex-shrink: 0; } .resume-profile-pic { width: 200px; height: 260px; object-fit: cover; border-radius: 12px; border: 1px solid var(--theme-border); box-shadow: 0 10px 30px rgba(0, 0, 0, 0.08); } .header-center { flex-grow: 1; } .header-right { flex-shrink: 0; border-left: 2px solid var(--theme-border); padding-left: 2rem; } .resume-name { margin: 0; font-size: 3.2rem; font-weight: 900; letter-spacing: -1.5px; line-height: 1.1; color: var(--theme-text-primary); } .resume-role-title { margin: 0.5rem 0 0; font-size: 1.15rem; font-weight: 600; text-transform: none; letter-spacing: normal; color: var(--theme-primary); background: none; padding: 0; } .resume-contact-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; /* Vertical column */ gap: 0.75rem; } .resume-contact-list li { display: flex; align-items: center; gap: 0.8rem; font-size: 0.9rem; color: var(--theme-text-secondary); white-space: nowrap; } .resume-contact-list li:hover { color: var(--theme-primary); } .resume-contact-list i { color: var(--theme-primary); background: rgba(255, 107, 107, 0.08); width: 32px; height: 32px; display: flex; align-items: center; justify-content: center; border-radius: 8px; font-size: 1rem; flex-shrink: 0; } @media (max-width: 991.98px) { .header-container { flex-direction: column; text-align: center; gap: 1.5rem; } .header-right { border-left: none; padding-left: 0; border-top: 1px solid var(--theme-border); padding-top: 1.5rem; width: 100%; } .resume-contact-list { align-items: center; } .resume-name { font-size: 2.2rem; } } /* About full width, then two columns */ .resume-body { display: flex; flex-direction: column; padding: 1.5rem 1.5rem 2rem; } @media (min-width: 992px) { .resume-body { padding: 2rem 2.5rem 2.5rem; } } .resume-about-fullwidth { width: 100%; } .resume-about-fullwidth .resume-section { margin-bottom: 0; } .section-rule--after-about { margin-top: 1.25rem; margin-bottom: 1.5rem; } .resume-columns { display: flex; flex-wrap: wrap; gap: 0; width: 100%; } .col-main { flex: 1 1 100%; padding-right: 0; border-right: none; } .col-side { flex: 1 1 100%; padding-left: 0; padding-top: 0; } @media (max-width: 991px) { .resume-columns .col-side { margin-top: 0.25rem; padding-top: 1.25rem; border-top: 1px solid var(--theme-border); } } @media (min-width: 992px) { .col-main { flex: 1 1 64%; max-width: 64%; padding-right: 1.75rem; border-right: 1px solid var(--theme-border); } .col-side { flex: 1 1 34%; max-width: 36%; padding-left: 1.75rem; padding-top: 0; border-top: none; margin-top: 0; } } .resume-section { margin-bottom: 1.25rem; } .resume-section-heading { position: relative; padding-bottom: 0.5rem; margin-bottom: 1.5rem; display: inline-block; font-size: 1.05rem; font-weight: 900; letter-spacing: 0.12rem; text-transform: uppercase; color: var(--theme-text-primary); } .resume-section-heading::after { content: ""; position: absolute; left: 0; bottom: 0; width: 40px; height: 4px; background: var(--theme-primary); border-radius: 2px; } .resume-summary-desc { font-size: 1rem; line-height: 1.8; color: var(--theme-text-secondary); background: #fff; padding: 1.5rem; border-radius: 12px; box-shadow: 0 4px 12px rgba(0, 0, 0, 0.02); } .section-rule { border: none; border-top: 1px solid var(--theme-border); margin: 1.25rem 0; } .muted-block { margin: 0; color: var(--theme-text-secondary); } /* Timeline */ /* Work Experience Timeline Improvements */ .resume-timeline { position: relative; padding-left: 1.5rem; } .resume-timeline::before { content: ""; position: absolute; left: 0; top: 5px; bottom: 0; width: 2px; background: linear-gradient(to bottom, var(--theme-primary) 0%, var(--theme-border) 100%); border-radius: 4px; opacity: 0.6; } .resume-timeline-item { position: relative; padding-bottom: 2.5rem; transition: all 0.3s ease; } .resume-timeline-item:last-child { padding-bottom: 0; } .resume-timeline-item::before { content: ""; position: absolute; left: -1.5rem; top: 6px; width: 12px; height: 12px; border-radius: 50%; border: 3px solid #fff; background: var(--theme-primary); box-shadow: 0 0 0 3px rgba(254, 101, 92, 0.2); z-index: 1; transform: translateX(-50%); } .resume-timeline-item:hover::before { transform: translateX(-50%) scale(1.2); box-shadow: 0 0 0 5px rgba(254, 101, 92, 0.3); } .resume-timeline-item-header { margin-bottom: 0.75rem; } .resume-position-meta { display: flex; flex-direction: row-reverse; /* Put date on the right usually, or keep consistent */ justify-content: space-between; align-items: center; margin-bottom: 0.5rem; } .resume-position-time { font-size: 0.8rem; font-weight: 700; color: var(--theme-text-primary); background: #f1f5f9; padding: 0.25rem 0.75rem; border-radius: 20px; border: 1px solid var(--theme-border); } .resume-company-name { font-size: 0.9rem; font-weight: 800; color: var(--theme-primary); text-transform: uppercase; letter-spacing: 0.05rem; } .resume-position-title { margin: 0; font-size: 1.15rem; font-weight: 800; color: var(--theme-text-primary); line-height: 1.3; } .resume-timeline-list { margin: 0.5rem 0 0; padding-left: 1.25rem; list-style: none; } .resume-timeline-list li { position: relative; margin-bottom: 0.6rem; color: var(--theme-text-secondary); line-height: 1.6; } .resume-timeline-list li::before { content: "→"; position: absolute; left: -1.25rem; color: var(--theme-primary); font-weight: bold; font-size: 0.9rem; } @media (max-width: 640px) { .resume-position-meta { flex-direction: column; align-items: flex-start; gap: 0.5rem; } .resume-timeline { padding-left: 1.25rem; } } /* Tech stack progress */ .skill-progress-list { list-style: none; margin: 0; padding: 0; } .skill-progress-list > li { margin-bottom: 0.85rem; } .resume-skill-name { font-size: 0.875rem; font-weight: 700; color: var(--theme-text-primary); margin-bottom: 0.35rem; display: flex; justify-content: space-between; } .resume-progress { height: 8px; background: #eef2f7; border-radius: 10px; overflow: hidden; } .resume-progress-bar { height: 100%; border-radius: 10px; background: linear-gradient(90deg, var(--theme-primary) 0%, #ff8e87 100%); box-shadow: 0 2px 4px rgba(254, 101, 92, 0.2); } /* Soft skill badges */ .badge-list { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 0.5rem; } .resume-skill-badge { display: inline-block; background: #fff; color: var(--theme-text-primary); border: 1px solid var(--theme-border); padding: 0.5rem 1rem; font-size: 0.8rem; font-weight: 600; border-radius: 10px; transition: all 0.3s ease; } .resume-skill-badge:hover { background: var(--theme-primary); color: #fff; border-color: var(--theme-primary); transform: translateY(-2px); box-shadow: 0 4px 10px rgba(254, 101, 92, 0.2); } /* Certifications / projects block */ .resume-projects-section .item { background: #fff; padding: 0.75rem; /* Reduced padding */ border-radius: 10px; border: 1px solid var(--theme-border); transition: all 0.3s ease; margin-bottom: 0.75rem; } .resume-projects-section .item:hover { box-shadow: 0 4px 12px rgba(0, 0, 0, 0.05); border-color: var(--theme-primary); } .item-heading { margin: 0; font-size: 0.85rem; /* Even smaller */ font-weight: 700; color: var(--theme-text-primary); display: flex; align-items: center; gap: 0.3rem; } .item-icon { font-size: 0.65rem; color: var(--theme-primary); } .item-desc { font-size: 0.75rem; padding-left: 1rem; color: var(--theme-text-secondary); line-height: 1.2; } .item-desc a { display: block; /* Forced to be on its own line */ width: fit-content; /* Only as wide as the text */ margin-top: 0.4rem; /* Added more space from the text */ font-size: 0.6rem; font-weight: 700; text-transform: uppercase; color: var(--theme-primary); text-decoration: none; border: 1px solid var(--theme-primary); padding: 0.15rem 0.4rem; border-radius: 3px; transition: all 0.3s ease; } .item-desc a:hover { background: var(--theme-primary); color: #fff; text-decoration: none; } .education-list { list-style: none; margin: 0; padding: 0; } .education-list li { padding: 1rem; background: #fcfdfe; border-radius: 10px; border: 1px solid var(--theme-border); margin-bottom: 1rem; } .resume-degree { font-weight: 700; font-size: 1rem; color: var(--theme-primary); } .resume-degree-org, .resume-degree-time { font-size: 0.85rem; } /* Languages level */ .resume-lang-list { list-style: none; margin: 0; padding: 0; } .resume-lang-list > li { margin-bottom: 0.75rem; } .resume-lang-name { font-weight: 700; font-size: 0.875rem; color: var(--theme-text-primary); margin-bottom: 0.25rem; } .resume-level-indicator { display: flex; gap: 4px; width: 100%; } .resume-level-indicator .item { flex: 1; min-height: 6px; border-radius: 4px; background: #eef2f7; } .resume-level-indicator .item-full { background: linear-gradient(90deg, var(--theme-primary) 0%, #ff8e87 100%); } .resume-level-indicator .item-half { position: relative; background: #eef2f7; } .resume-level-indicator .item-half::after { content: ""; position: absolute; left: 0; top: 0; width: 50%; height: 100%; background: linear-gradient(90deg, var(--theme-primary) 0%, #ff8e87 100%); border-radius: 4px 0 0 4px; } /* Sidebar Sections as Cards */ .col-side .resume-section { background: #fff; padding: 1.5rem; border-radius: 15px; box-shadow: 0 4px 15px rgba(0, 0, 0, 0.03); margin-bottom: 2rem; } .col-side .section-rule { display: none; } .footer { text-align: center; padding: 3rem 1rem; max-width: var(--resume-max-width); margin: 0 auto; opacity: 0.7; } .copyright { font-size: 0.72rem; color: var(--theme-text-secondary); line-height: 1.5; } .copyright a { color: var(--theme-text-secondary); text-decoration: underline; } @media print { @page { margin: 0.8cm; size: A4; } body { background: #fff !important; font-size: 9pt !important; line-height: 1.3; color: #000 !important; font-family: serif !important; /* Classic serif for formal print */ } .no-print, .resume-profile-pic, .resume-contact-list i, .soft-skill-item i, .progress, .resume-level-indicator, .footer, .section-rule, .top-bar { display: none !important; } .resume-wrapper { margin: 0 !important; padding: 0 !important; box-shadow: none !important; border: none !important; width: 100% !important; max-width: 100% !important; } .resume-header { padding: 0 0 0.5rem 0 !important; border-bottom: 1px solid #000 !important; margin-bottom: 1rem !important; text-align: left !important; } .resume-name { font-size: 20pt !important; font-weight: bold !important; text-transform: uppercase !important; margin: 0 !important; } .resume-role-title { font-size: 11pt !important; font-weight: bold !important; margin: 0.2rem 0 !important; padding: 0 !important; background: none !important; } .resume-contact-list { display: block !important; margin: 0.3rem 0 !important; } .resume-contact-list li { display: inline !important; font-size: 8.5pt !important; } .resume-contact-list li:not(:last-child)::after { content: " | "; margin: 0 0.3rem; } /* Column Reordering for Print */ .resume-body { display: flex !important; flex-direction: column !important; } .col-main, .col-side { width: 100% !important; display: flex !important; flex-direction: column !important; } /* Assigning orders to match user request */ #section-about { order: 1; } #section-education { order: 2; } #section-certifications { order: 3; } #section-tech-skills { order: 4; } #section-experience { order: 5; page-break-before: always; margin-top: 1cm; } #section-soft-skills { order: 6; } #section-languages { order: 7; } .resume-section { margin-bottom: 1rem !important; } .resume-section-heading { font-size: 11pt !important; font-weight: bold !important; text-transform: uppercase !important; border-bottom: 0.5px solid #000 !important; margin-bottom: 0.5rem !important; padding-bottom: 1px !important; } /* Professional lists for skills */ .soft-skills-grid, .skill-progress-list { display: block !important; margin: 0 !important; } .soft-skill-item, .skill-progress-list li { display: inline !important; border: none !important; padding: 0 !important; background: none !important; } .soft-skill-item span, .resume-skill-name { font-size: 9pt !important; } .soft-skill-item:not(:last-child)::after, .skill-progress-list li:not(:last-child)::after { content: " | "; margin: 0 0.3rem; } /* Experience styling */ .resume-timeline-item-header { display: flex !important; justify-content: space-between !important; font-weight: bold !important; } .resume-company-name { font-style: italic !important; margin-bottom: 0.2rem !important; } .resume-timeline-list { margin-top: 0.2rem !important; padding-left: 1rem !important; } .item { display: flex !important; justify-content: space-between !important; margin-bottom: 0.3rem !important; } } /* Soft Skills Grid */ .soft-skills-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 1.5rem; margin-top: 1.5rem; } .soft-skill-item { display: flex; align-items: center; gap: 1rem; background: #fff; padding: 1rem; border-radius: 12px; border: 1px solid var(--theme-border); transition: all 0.3s ease; } .soft-skill-item:hover { transform: translateY(-3px); box-shadow: 0 8px 20px rgba(0, 0, 0, 0.06); border-color: var(--theme-primary); } .soft-skill-item i { font-size: 1.25rem; color: var(--theme-primary); background: rgba(255, 107, 107, 0.1); width: 40px; height: 40px; display: flex; align-items: center; justify-content: center; border-radius: 10px; flex-shrink: 0; } .soft-skill-item span { font-size: 0.9rem; font-weight: 600; color: var(--theme-text-primary); } @media (max-width: 767.98px) { .soft-skills-grid { grid-template-columns: 1fr; gap: 1rem; } }