@font-face { font-family: "Bahij TheSansArabic"; src: url("./font/Bahij_TheSansArabic-Plain.ttf") format("truetype"); font-weight: 400 700; font-display: swap; } @font-face { font-family: "Bahij TheSansArabic"; src: url("./font/Bahij_TheSansArabic-Black.ttf") format("truetype"); font-weight: 800 900; font-display: swap; } :root { --ink: #172033; --muted: #5C6E88; --primary: #4137A8; --violet: #7030A0; --cyan: #1CADE4; --aqua: #27CED7; --green: #00B050; --mint: #42BA97; --yellow: #FFC000; --red: #F5554A; --paper: #FFFFFF; --line: rgba(92, 110, 136, .18); --soft: #F4F8FC; --shadow: 0 22px 70px rgba(65, 55, 168, .13); --radius: 8px; } * { box-sizing: border-box; } body { margin: 0; min-height: 100vh; font-family: "Bahij TheSansArabic", Tahoma, Arial, sans-serif; color: var(--ink); background: linear-gradient(135deg, rgba(65, 55, 168, .10), transparent 31%), linear-gradient(225deg, rgba(28, 173, 228, .15), transparent 35%), linear-gradient(0deg, rgba(39, 206, 215, .10), transparent 46%), var(--soft); padding-bottom: 76px; } button, input, select { font: inherit; } .pageShell { width: min(1120px, calc(100% - 28px)); margin: 0 auto; padding: 24px 0 26px; } .hero { min-height: 190px; display: grid; grid-template-columns: auto 1fr auto; gap: 18px; align-items: center; padding: 26px 0 18px; } .brandMark { width: 74px; height: 74px; border-radius: 8px; background: linear-gradient(135deg, rgba(255,255,255,.72), rgba(255,255,255,0) 34%), linear-gradient(135deg, var(--primary), var(--cyan) 58%, var(--green)); box-shadow: 0 18px 42px rgba(65, 55, 168, .22); } .kicker { margin: 0 0 8px; color: var(--muted); font-size: 15px; } h1 { margin: 0; color: var(--primary); font-size: clamp(34px, 5vw, 64px); line-height: 1.05; } .summaryStrip { display: grid; grid-template-columns: repeat(3, minmax(106px, 1fr)); gap: 8px; min-width: min(460px, 100%); } .summaryStrip span { display: grid; gap: 4px; min-height: 72px; align-content: center; padding: 12px; border-radius: var(--radius); color: #fff; background: linear-gradient(135deg, var(--primary), var(--cyan)); box-shadow: 0 14px 32px rgba(65, 55, 168, .16); text-align: center; } .summaryStrip span:nth-child(2) { background: linear-gradient(135deg, var(--violet), var(--aqua)); } .summaryStrip span:nth-child(3) { background: linear-gradient(135deg, var(--mint), var(--green)); } .summaryStrip b { font-size: 24px; } .toolSurface { background: rgba(255, 255, 255, .88); border: 1px solid rgba(255, 255, 255, .72); box-shadow: var(--shadow); border-radius: var(--radius); padding: 14px; } .modeTabs { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin-bottom: 14px; } .modeTab { min-height: 50px; border: 1px solid var(--line); border-radius: var(--radius); background: #fff; color: var(--muted); cursor: pointer; } .modeTab.active { color: #fff; border-color: transparent; background: linear-gradient(135deg, var(--primary), var(--cyan)); } .searchPanel { display: none; } .searchPanel.active { display: block; } .searchBox { display: grid; grid-template-columns: 48px 1fr; align-items: center; min-height: 74px; background: #fff; border: 1px solid var(--line); border-radius: var(--radius); padding: 10px 14px; } .searchIcon { width: 38px; height: 38px; display: grid; place-items: center; color: #fff; border-radius: var(--radius); background: linear-gradient(135deg, var(--primary), var(--cyan)); } input { width: 100%; border: 0; outline: 0; color: var(--ink); background: transparent; font-size: 20px; } input::placeholder { color: rgba(92, 110, 136, .66); } .selectBox { display: grid; grid-template-columns: auto 1fr; gap: 12px; align-items: center; min-height: 58px; margin-top: 12px; padding: 9px 12px; border: 1px solid var(--line); border-radius: var(--radius); background: #fff; } .selectBox span { color: var(--muted); white-space: nowrap; } select { width: 100%; min-height: 40px; border: 0; outline: 0; color: var(--ink); background: transparent; cursor: pointer; } .inspectorResearchersBox { background: linear-gradient(180deg, #fff, rgba(28, 173, 228, .06)); } .inspectorGrid { display: grid; grid-template-columns: repeat(auto-fill, minmax(160px, 1fr)); gap: 8px; margin-top: 12px; } .inspectorChip { border: 1px solid var(--line); border-radius: var(--radius); background: #fff; color: var(--ink); min-height: 48px; padding: 9px 12px; cursor: pointer; text-align: right; } .inspectorChip { color: #fff; border-color: transparent; background: linear-gradient(135deg, var(--violet), var(--primary)); } .inspectorChip:hover { transform: translateY(-1px); } .inspectorChip.selected { background: linear-gradient(135deg, var(--primary), var(--cyan)); box-shadow: 0 12px 28px rgba(65, 55, 168, .18); } .resultHeader { display: flex; align-items: end; justify-content: space-between; gap: 14px; margin: 22px 0 12px; } .resultHeader p { margin: 0 0 3px; color: var(--muted); font-size: 14px; } .resultHeader h2 { margin: 0; color: var(--primary); font-size: 24px; } .resultBadge { min-width: 50px; min-height: 42px; display: grid; place-items: center; border-radius: var(--radius); color: #fff; background: var(--red); padding: 8px 14px; } .resultsGrid { display: grid; grid-template-columns: repeat(auto-fill, minmax(318px, 1fr)); gap: 12px; } .sampleCard { position: relative; overflow: hidden; min-height: 212px; background: rgba(255, 255, 255, .94); border: 1px solid rgba(255, 255, 255, .74); border-radius: var(--radius); box-shadow: 0 16px 44px rgba(92, 110, 136, .14); padding: 16px; } .sampleCard::before { content: ""; position: absolute; inset-inline-start: 0; inset-block: 0; width: 6px; background: linear-gradient(180deg, var(--primary), var(--cyan), var(--green), var(--yellow)); } .sampleName { margin: 0 0 12px; font-size: 20px; color: var(--ink); line-height: 1.55; } .metaLine { display: flex; flex-wrap: wrap; gap: 7px; margin-bottom: 12px; } .metaLine span, .statusBox strong { display: inline-flex; align-items: center; min-height: 30px; border-radius: var(--radius); padding: 4px 9px; background: rgba(28, 173, 228, .10); color: var(--primary); font-size: 13px; } .statusGrid { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; } .statusBox { display: grid; gap: 6px; padding: 10px; border-radius: var(--radius); background: #F8FAFE; border: 1px solid var(--line); } .statusBox strong { width: fit-content; background: rgba(255, 192, 0, .17); color: #835f00; } .statusBox p { margin: 0; line-height: 1.55; color: var(--ink); } .statusBox em { display: inline-flex; width: fit-content; max-width: 100%; margin-top: 2px; padding: 4px 9px; border-radius: var(--radius); color: var(--primary); background: rgba(28, 173, 228, .10); font-style: normal; font-size: 13px; line-height: 1.5; } .emptyState { grid-column: 1 / -1; min-height: 150px; display: grid; place-items: center; text-align: center; padding: 24px; border: 1px dashed rgba(92, 110, 136, .36); border-radius: var(--radius); color: var(--muted); background: rgba(255, 255, 255, .75); } .credit { position: fixed; left: 0; right: 0; bottom: 0; z-index: 10; display: flex; justify-content: center; align-items: center; gap: 10px; min-height: 58px; padding: 10px 14px; color: #fff; background: linear-gradient(90deg, var(--primary), var(--cyan), var(--mint)); box-shadow: 0 -12px 32px rgba(65, 55, 168, .16); } .credit span { padding: 4px 10px; border-radius: var(--radius); background: rgba(255, 255, 255, .16); } @media (max-width: 820px) { .pageShell { width: min(100% - 18px, 680px); padding-top: 10px; } .hero { grid-template-columns: 58px 1fr; min-height: 0; padding-top: 16px; } .brandMark { width: 58px; height: 58px; } .summaryStrip { grid-column: 1 / -1; min-width: 0; } .toolSurface { padding: 10px; } .resultsGrid { grid-template-columns: 1fr; } .statusGrid { grid-template-columns: 1fr; } .resultHeader h2 { font-size: 20px; } input { font-size: 18px; } .selectBox { grid-template-columns: 1fr; gap: 6px; } }