﻿/* ===== Egy.An.Hr.V2 design tokens ===== */
:root {
    --app-font: "Segoe UI", "Noto Sans Arabic", Tahoma, Arial, sans-serif;
    /* brand (logo): royal blue, sky blue, red */
    --brand-blue: #0b5fb4;
    --brand-sky: #23b5ea;
    --brand-red: #e11d2a;
    --app-bg: #e9f2fb;
    --app-bg-art: radial-gradient(1200px 420px at 100% -10%, rgba(35, 181, 234, .18), transparent 60%),
                  radial-gradient(900px 380px at 0% 0%, rgba(11, 95, 180, .10), transparent 60%);
    --app-surface: #ffffff;
    --app-surface-2: #f3f8fd;
    --app-border: #d9e6f3;
    --app-text: #0f172a;
    --app-muted: #5b6b82;
    --app-primary: #0b5fb4;
    --app-primary-soft: #e3f0fc;
    --app-sidebar: #082a52;
    --app-sidebar-art: linear-gradient(180deg, #0a3466 0%, #082a52 55%, #061f3d 100%);
    --app-sidebar-text: #c9dcf2;
    --app-sidebar-active: #0b5fb4;
    --app-topbar: linear-gradient(90deg, #0b5fb4 0%, #1287d4 60%, #23b5ea 100%);
    --app-ok: #15803d;      --app-ok-soft: #e7f6ec;
    --app-info: #1d4ed8;    --app-info-soft: #e6edfd;
    --app-warn: #b45309;    --app-warn-soft: #fdf2e2;
    --app-bad: #b91c1c;     --app-bad-soft: #fdeaea;
    --app-radius: 14px;
    --app-shadow: 0 1px 2px rgba(15, 23, 42, .04), 0 4px 16px rgba(15, 23, 42, .05);
    --bs-body-font-family: var(--app-font);
    --bs-body-bg: var(--app-bg);
    --bs-body-color: var(--app-text);
    --bs-border-color: var(--app-border);
    --bs-primary: var(--app-primary);
    --bs-link-color: var(--app-primary);
    --bs-link-hover-color: #084a8c;
}

[data-bs-theme="dark"] {
    --app-bg: #08121f;
    --app-bg-art: radial-gradient(1200px 420px at 100% -10%, rgba(35, 181, 234, .10), transparent 60%);
    --app-surface: #0f1c2e;
    --app-surface-2: #0c1828;
    --app-border: #1d3350;
    --app-text: #e5ebf5;
    --app-muted: #93a3bd;
    --app-primary: #4fb7f0;
    --app-primary-soft: #0f3150;
    --app-sidebar: #06182e;
    --app-sidebar-art: linear-gradient(180deg, #08223f 0%, #06182e 100%);
    --app-sidebar-active: #0b4f93;
    --app-topbar: linear-gradient(90deg, #0a3f78 0%, #0b5fb4 100%);
    --app-ok: #4ade80;   --app-ok-soft: #12301f;
    --app-info: #8fb0ff; --app-info-soft: #172a55;
    --app-warn: #fbbf24; --app-warn-soft: #3a2a0c;
    --app-bad: #f87171;  --app-bad-soft: #3b1515;
    --app-shadow: 0 1px 2px rgba(0, 0, 0, .3);
    --bs-body-bg: var(--app-bg);
    --bs-body-color: var(--app-text);
    --bs-border-color: var(--app-border);
    --bs-link-color: var(--app-primary);
    --bs-link-hover-color: #8fd3f7;
}

html, body { background: var(--app-bg); color: var(--app-text); font-family: var(--app-font); }
body { background-image: var(--app-bg-art); background-attachment: fixed; background-repeat: no-repeat; }
body { font-size: .95rem; -webkit-font-smoothing: antialiased; }
.ic { width: 1.15em; height: 1.15em; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; vertical-align: -.2em; flex-shrink: 0; }
.text-muted, .muted { color: var(--app-muted) !important; }
.num { font-variant-numeric: tabular-nums; }

/* ===== shell ===== */
[hidden] { display: none !important; }   /* bootstrap d-flex / d-block would otherwise show elements marked hidden */
.app-shell { display: flex; min-height: 100vh; }
.app-sidebar { width: 252px; --bs-offcanvas-width: 280px; color: var(--app-sidebar-text); flex-shrink: 0; }
.app-sidebar.offcanvas-lg { background-color: var(--app-sidebar) !important; background-image: var(--app-sidebar-art); } /* bootstrap makes offcanvas-lg transparent at lg+ */
.btn-primary { --bs-btn-bg: var(--app-primary); --bs-btn-border-color: var(--app-primary); --bs-btn-hover-bg: #084a8c; --bs-btn-hover-border-color: #084a8c;
               --bs-btn-active-bg: #073d74; --bs-btn-active-border-color: #073d74; --bs-btn-disabled-bg: var(--app-primary); --bs-btn-disabled-border-color: var(--app-primary); }
[data-bs-theme="dark"] .btn-primary { --bs-btn-color: #04121f; --bs-btn-hover-color: #04121f; --bs-btn-hover-bg: #8fd3f7; --bs-btn-hover-border-color: #8fd3f7; }
@media (min-width: 992px) { .app-sidebar { position: sticky; top: 0; height: 100vh; } }
.app-sidebar .offcanvas-body { display: flex; flex-direction: column; padding: 0; height: 100%;
                               overflow-y: auto; overscroll-behavior: contain; scrollbar-width: thin; scrollbar-color: rgba(255, 255, 255, .25) transparent; }
.app-brand { display: flex; flex-direction: column; align-items: stretch; gap: .65rem; padding: 1.1rem 1rem .75rem; color: #fff; text-decoration: none; }
.app-brand:hover { color: #fff; }
.brand-logo { display: block; background: #fff; border-radius: 12px; padding: .55rem .7rem; box-shadow: 0 4px 14px rgba(0, 0, 0, .25); }
.brand-logo img { display: block; width: 100%; height: auto; }
.brand-title { text-align: center; font-weight: 700; font-size: .95rem; letter-spacing: .01em; }
.app-role { margin: .75rem .9rem 0; padding: .55rem .7rem; border-radius: 10px; background: rgba(255, 255, 255, .06); color: #c7d2e5;
            font-size: .76rem; line-height: 1.5; display: flex; gap: .45rem; align-items: flex-start; }
.app-brand-mark { width: 38px; height: 38px; border-radius: 10px; display: grid; place-items: center; background: linear-gradient(135deg, var(--brand-blue), var(--brand-sky)); font-weight: 700; }
.app-brand small { display: block; color: var(--app-sidebar-text); font-size: .75rem; }
.app-nav { list-style: none; margin: .5rem 0 0; padding: 0 .75rem; }
.app-nav-title { color: #7d8aa5; font-size: .72rem; letter-spacing: .02em; padding: 1rem .75rem .35rem; }
.app-nav ul { list-style: none; margin: 0; padding: 0; }
.app-nav summary.app-nav-title { color: #9fb2cf; font-size: .78rem; font-weight: 600; display: flex; align-items: center; justify-content: space-between; cursor: pointer; list-style: none; border-radius: 8px; user-select: none; }
.app-nav summary.app-nav-title::-webkit-details-marker { display: none; }
.app-nav summary.app-nav-title:hover { color: #c7d2e5; }
.app-nav summary .chev { width: 14px; height: 14px; transition: transform .15s; }
.app-nav details:not([open]) .chev { transform: rotate(90deg); }
.app-nav a { display: flex; align-items: center; gap: .7rem; padding: .62rem .8rem; border-radius: 10px; color: var(--app-sidebar-text); text-decoration: none; }
.app-nav a:hover { background: rgba(255, 255, 255, .06); color: #fff; }
.app-nav a.active { background: var(--app-sidebar-active); color: #fff; box-shadow: inset -3px 0 0 var(--brand-sky); }
.app-sidebar-foot { margin-top: auto; padding: 1rem 1.25rem; font-size: .75rem; color: #7d8aa5; }

.app-main { flex: 1; min-width: 0; display: flex; flex-direction: column; }
.app-topbar { position: sticky; top: 0; z-index: 1020; display: flex; align-items: center; gap: .75rem; padding: .7rem 1.5rem;
              background: var(--app-topbar); color: #fff; border-bottom: 3px solid var(--brand-red); box-shadow: 0 4px 14px -6px rgba(8, 42, 82, .45); }
.app-topbar h1 { font-size: 1.15rem; font-weight: 700; margin: 0; color: #fff; }
.app-topbar .icon-btn, .app-topbar .user-chip { background: rgba(255, 255, 255, .14); border-color: rgba(255, 255, 255, .28); color: #fff; }
.app-topbar .icon-btn:hover, .app-topbar .user-chip:hover { background: rgba(255, 255, 255, .24); color: #fff; }
.app-topbar .avatar { background: #fff; color: var(--brand-blue); }
.app-content { padding: 1.5rem; max-width: 1440px; width: 100%; margin-inline: auto; }
@media (max-width: 575.98px) { .app-content { padding: 1rem; } .app-topbar { padding: .6rem 1rem; } }

.icon-btn { display: inline-grid; place-items: center; width: 38px; height: 38px; border-radius: 10px; border: 1px solid var(--app-border);
            background: var(--app-surface); color: var(--app-text); }
.icon-btn:hover { background: var(--app-surface-2); }
.user-chip { display: flex; align-items: center; gap: .6rem; padding: .25rem .35rem .25rem .75rem; border-radius: 999px; border: 1px solid var(--app-border);
             background: var(--app-surface); color: var(--app-text); }
.avatar { width: 32px; height: 32px; border-radius: 50%; display: grid; place-items: center; background: var(--app-primary-soft); color: var(--app-primary); font-weight: 700; font-size: .85rem; }

/* ===== surfaces ===== */
.panel { background: var(--app-surface); border: 1px solid var(--app-border); border-radius: var(--app-radius); box-shadow: var(--app-shadow); }
.panel-head { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: .75rem 1rem; padding: 1rem 1.25rem; border-bottom: 1px solid var(--app-border); }
.panel-head h2 { font-size: 1rem; font-weight: 700; margin: 0; display: flex; align-items: center; gap: .5rem; }
.panel-body { padding: 1.25rem; }
.section-no { display: inline-grid; place-items: center; width: 26px; height: 26px; border-radius: 8px; background: var(--app-primary-soft); color: var(--app-primary); font-size: .8rem; }

.stat { padding: 1.1rem 1.25rem; height: 100%; }
.stat-label { color: var(--app-muted); font-size: .82rem; }
.stat-value { font-size: 1.75rem; font-weight: 700; line-height: 1.2; }
.stat-icon { width: 42px; height: 42px; border-radius: 12px; display: grid; place-items: center; }
.tone-ok { background: var(--app-ok-soft); color: var(--app-ok); }
.tone-info { background: var(--app-info-soft); color: var(--app-info); }
.tone-warn { background: var(--app-warn-soft); color: var(--app-warn); }
.tone-bad { background: var(--app-bad-soft); color: var(--app-bad); }

/* colored statistic cards */
.stat-card { position: relative; overflow: hidden; height: 100%; display: flex; align-items: center; justify-content: space-between; gap: 1rem;
             padding: 1.15rem 1.35rem; border-radius: var(--app-radius); color: #fff; box-shadow: 0 10px 22px -12px var(--sc, rgba(0, 0, 0, .4));
             transition: transform .15s ease, box-shadow .15s ease; }
.stat-card:hover { transform: translateY(-2px); box-shadow: 0 14px 26px -12px var(--sc, rgba(0, 0, 0, .45)); }
.stat-card::after { content: ""; position: absolute; width: 140px; height: 140px; border-radius: 50%; background: rgba(255, 255, 255, .09);
                    inset-inline-end: -40px; bottom: -60px; pointer-events: none; }
.stat-card .stat-label { color: rgba(255, 255, 255, .9); font-weight: 600; font-size: .9rem; }
.stat-card .stat-value { color: #fff; font-size: 2rem; }
.stat-card .stat-icon { background: rgba(255, 255, 255, .2); color: #fff; width: 46px; height: 46px; }
.stat-card .stat-foot { color: rgba(255, 255, 255, .85); font-size: .8rem; }
.c-blue   { background: linear-gradient(135deg, #2196f3, #1565c0); --sc: rgba(21, 101, 192, .7); }
.c-green  { background: linear-gradient(135deg, #43a047, #2e7d32); --sc: rgba(46, 125, 50, .7); }
.c-red    { background: linear-gradient(135deg, #f4511e, #c62828); --sc: rgba(198, 40, 40, .7); }
.c-purple { background: linear-gradient(135deg, #8e24aa, #5e35b1); --sc: rgba(94, 53, 177, .7); }
.bar.on-color { background: rgba(255, 255, 255, .25); border-color: transparent; }
.bar.on-color > span { background: #fff; }
.manager-pick { max-width: 360px; }

.bar { height: 6px; border-radius: 999px; background: var(--app-surface-2); border: 1px solid var(--app-border); overflow: hidden; }
.bar > span { display: block; height: 100%; background: var(--app-primary); border-radius: inherit; }
.bar.ok > span { background: var(--app-ok); }

/* ===== tables ===== */
.table-app { margin: 0; --bs-table-bg: transparent; --bs-table-color: var(--app-text); --bs-table-hover-bg: var(--app-surface-2); --bs-table-hover-color: var(--app-text); }
.table-app thead th { position: sticky; top: 0; z-index: 1; background: var(--app-surface-2); color: var(--app-muted); font-weight: 600; font-size: .8rem;
                      border-bottom: 1px solid var(--app-border); white-space: nowrap; padding: .7rem .9rem; }
.table-app td { padding: .75rem .9rem; vertical-align: middle; border-color: var(--app-border); }
.table-app tbody tr:last-child td { border-bottom: 0; }
.table-wrap { overflow: auto; max-height: 70vh; border-radius: 0 0 var(--app-radius) var(--app-radius); }
.cell-title { font-weight: 600; }
.nowrap { white-space: nowrap; }
#teamTable td:first-child { min-width: 190px; }
#teamTable td:nth-child(2) { min-width: 150px; }
a.cell-title { text-decoration: none; }
a.cell-title:hover { color: var(--app-primary) !important; text-decoration: underline; }
.cell-sub { color: var(--app-muted); font-size: .8rem; }
.clamp { display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.grade { display: inline-block; min-width: 3.2rem; text-align: center; padding: .2rem .5rem; border-radius: 8px; background: var(--app-surface-2); border: 1px solid var(--app-border); font-weight: 600; }
.grade.empty { color: var(--app-muted); font-weight: 400; }
.grade-input { width: 5.5rem; text-align: center; font-weight: 600; }
.note-input { min-width: 180px; font-size: .85rem; resize: vertical; }
.grade-input.is-saving, .note-input.is-saving { border-color: var(--app-warn); box-shadow: 0 0 0 .15rem var(--app-warn-soft); }
.cell-msg { color: var(--app-bad); font-size: .76rem; margin-top: .25rem; max-width: 220px; }
.cell-msg:empty { display: none; }

.chip { display: inline-flex; align-items: center; gap: .3rem; padding: .18rem .55rem; border-radius: 999px; font-size: .76rem; font-weight: 600; white-space: nowrap; }
.chip-ok { background: var(--app-ok-soft); color: var(--app-ok); }
.chip-info { background: var(--app-info-soft); color: var(--app-info); }
.chip-warn { background: var(--app-warn-soft); color: var(--app-warn); }
.chip-bad { background: var(--app-bad-soft); color: var(--app-bad); }
.chip-muted { background: var(--app-surface-2); color: var(--app-muted); border: 1px solid var(--app-border); }

.quota-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(140px, 1fr)); gap: .75rem; }
.quota { --qc: var(--app-primary); --qs: var(--app-surface-2); border: 1px solid var(--app-border); border-top: 4px solid var(--qc);
         border-radius: 12px; padding: .75rem .9rem; background: linear-gradient(180deg, var(--qs), var(--app-surface) 70%); }
.quota .cell-title { color: var(--qc); }
.quota .bar > span { background: var(--qc); }
.quota.q-ok   { --qc: var(--app-ok);   --qs: var(--app-ok-soft); }
.quota.q-info { --qc: var(--app-info); --qs: var(--app-info-soft); }
.quota.q-warn { --qc: var(--app-warn); --qs: var(--app-warn-soft); }
.quota.q-bad  { --qc: var(--app-bad);  --qs: var(--app-bad-soft); }
.quota.over { border-color: var(--app-bad); border-top-color: var(--app-bad); background: var(--app-bad-soft); }
.quota-actual { font-size: 1.4rem; font-weight: 700; line-height: 1; }
.quota-pct { flex-shrink: 0; padding: .15rem .55rem; border-radius: 999px; background: var(--qc); color: #fff; font-weight: 800; font-size: .95rem;
             line-height: 1.4; box-shadow: 0 3px 8px -3px var(--qc); }
[data-bs-theme="dark"] .quota-pct { color: #0b1220; }

/* sortable table headers (server side: each header is a link) */
.sort-link { color: inherit; text-decoration: none; white-space: nowrap; }
.sort-link:hover, .sort-link:focus-visible { color: var(--app-primary); }
.sort-link::after { content: "⇅"; margin-inline-start: .35rem; opacity: .35; font-size: .8em; }
th[aria-sort="ascending"] .sort-link, th[aria-sort="descending"] .sort-link { color: var(--app-primary); }
th[aria-sort="ascending"] .sort-link::after { content: "▲"; opacity: .9; }
th[aria-sort="descending"] .sort-link::after { content: "▼"; opacity: .9; }
/* client-side sort buttons (site.js: sortable), same look as the team table's sort links */
.sort-btn { all: unset; cursor: pointer; white-space: nowrap; border-radius: 4px; }
.sort-btn:hover, .sort-btn:focus-visible { color: var(--app-primary); }
.sort-btn:focus-visible { outline: 2px solid var(--app-primary); outline-offset: 2px; }
.sort-btn::after { content: "⇅"; margin-inline-start: .35rem; opacity: .35; font-size: .8em; }
th[aria-sort="ascending"] .sort-btn, th[aria-sort="descending"] .sort-btn { color: var(--app-primary); }
th[aria-sort="ascending"] .sort-btn::after { content: "▲"; opacity: .9; }
th[aria-sort="descending"] .sort-btn::after { content: "▼"; opacity: .9; }
@media print { .sort-btn::after { content: none; } }

/* [data-live] list (site.js): clear the sticky top bar when scrolled to; dim only if the reload is slow */
[data-live] { scroll-margin-top: 5rem; }
[data-live] [data-region="list"] { transition: opacity .2s ease .15s; }
[data-live][aria-busy="true"] [data-region="list"] { opacity: .5; }

/* goals: plain lists inside a panel, quoted reasons, the inline accept / refuse boxes */
.list-plain { list-style: none; margin: 0; padding: 0; }
.list-plain > li { padding: .9rem 1.1rem; border-bottom: 1px solid var(--app-border); }
.list-plain > li:last-child { border-bottom: 0; }
.list-plain > li:target { background: var(--app-primary-soft); }
.quote { margin: .4rem 0 0; padding: .4rem .75rem; border-inline-start: 3px solid var(--app-bad); background: var(--app-surface-2);
         border-radius: 6px; font-size: .85rem; white-space: pre-line; }
.answer-box > summary { list-style: none; }
.answer-box > summary::-webkit-details-marker { display: none; }
.answer-box[open] > summary { background: var(--app-bad); color: #fff; border-color: var(--app-bad); }
.answer-form { margin-top: .5rem; width: min(320px, 80vw); }
.grade-self { background: var(--app-info-soft); color: var(--app-info); border-color: transparent; }

/* report: rating distribution bars (tone classes from Ui.RatingTone) */
.dist-row { display: grid; grid-template-columns: 7.5rem 1fr 6.5rem; align-items: center; gap: .75rem; padding: .35rem 0; }
.dist-name { justify-content: center; }
.dist-bar { height: 10px; border-radius: 999px; background: var(--app-surface-2); border: 1px solid var(--app-border); overflow: hidden; }
.dist-bar > span { display: block; height: 100%; border-radius: inherit; }
.dist-bar > .chip-ok { background: var(--app-ok); } .dist-bar > .chip-info { background: var(--app-info); }
.dist-bar > .chip-warn { background: var(--app-warn); } .dist-bar > .chip-bad { background: var(--app-bad); }
.dist-val { text-align: end; }

/* a temporary password shown to the admin */
.temp-password { font-size: 2rem; font-weight: 800; letter-spacing: .12em; padding: .75rem 1rem; border-radius: 12px;
                 background: var(--app-primary-soft); color: var(--app-primary); border: 2px dashed var(--app-primary); user-select: all; }

/* pager under a paged table */
.pager { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .75rem 1.25rem;
         padding: .85rem 1.1rem; border-top: 1px solid var(--app-border); }
.pager .pagination { --bs-pagination-border-color: var(--app-border); --bs-pagination-bg: var(--app-surface); --bs-pagination-color: var(--app-text);
                     --bs-pagination-hover-bg: var(--app-primary-soft); --bs-pagination-hover-color: var(--app-primary);
                     --bs-pagination-active-bg: var(--app-primary); --bs-pagination-active-border-color: var(--app-primary);
                     --bs-pagination-disabled-bg: var(--app-surface); --bs-pagination-disabled-color: var(--app-muted); flex-wrap: wrap; }
.pager .form-select { width: auto; }

.filter-group .btn { border-radius: 999px !important; margin-inline-end: .35rem; --bs-btn-color: var(--app-primary); --bs-btn-border-color: var(--app-border);
                     --bs-btn-bg: var(--app-surface); --bs-btn-hover-bg: var(--app-primary-soft); --bs-btn-hover-color: var(--app-primary); --bs-btn-hover-border-color: var(--app-primary);
                     --bs-btn-active-bg: var(--app-primary); --bs-btn-active-color: #fff; --bs-btn-active-border-color: var(--app-primary); }
.filter-group .btn.active { background: var(--app-primary); color: #fff; border-color: var(--app-primary); }
[data-bs-theme="dark"] .filter-group .btn.active { color: #04121f; }
/* bootstrap's info alert in the brand blue instead of its own cyan */
.alert-info { --bs-alert-bg: var(--app-primary-soft); --bs-alert-color: var(--app-text); --bs-alert-border-color: color-mix(in srgb, var(--app-primary) 25%, transparent);
              border-inline-start: 4px solid var(--app-primary); }
.btn-soft { background: var(--app-primary-soft); color: var(--app-primary); border: 0; }
.btn-soft:hover { background: var(--app-primary); color: #fff; }
.form-control, .form-select { border-color: var(--app-border); background-color: var(--app-surface); color: var(--app-text); }
.search-box { position: relative; min-width: 240px; }
.search-box .ic { position: absolute; inset-inline-start: .75rem; top: 50%; transform: translateY(-50%); color: var(--app-muted); }
.search-box input { padding-inline-start: 2.3rem; border-radius: 10px; }

/* ===== evaluation ===== */
.emp-head { display: flex; flex-wrap: wrap; gap: 1.25rem; align-items: center; }
.emp-avatar { width: 56px; height: 56px; border-radius: 16px; display: grid; place-items: center; font-size: 1.3rem; font-weight: 700; background: linear-gradient(135deg, var(--brand-blue), var(--brand-sky)); color: #fff; }
.meta { display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: .9rem 1.5rem; margin: 0; }
.meta dt { color: var(--app-muted); font-weight: 400; font-size: .78rem; }
.meta dd { margin: 0; font-weight: 600; }
.summary-sticky { position: sticky; top: 76px; }
.score-ring { --p: 0; width: 132px; height: 132px; border-radius: 50%; margin: 0 auto; display: grid; place-items: center;
              background: conic-gradient(var(--app-primary) calc(var(--p) * 1%), var(--app-surface-2) 0); }
.score-ring > div { width: 104px; height: 104px; border-radius: 50%; background: var(--app-surface); display: grid; place-items: center; text-align: center; }
.score-ring strong { font-size: 1.6rem; line-height: 1; }
.total-row { display: flex; justify-content: space-between; padding: .55rem 0; border-bottom: 1px dashed var(--app-border); }
.total-row:last-child { border-bottom: 0; }
details.scale summary { cursor: pointer; font-weight: 600; list-style: none; }
details.scale summary::-webkit-details-marker { display: none; }

/* ===== login ===== */
.login-page { min-height: 100vh; display: grid; grid-template-columns: 1.1fr 1fr; }
.login-art { background: linear-gradient(150deg, #082a52 0%, #0b5fb4 55%, #23b5ea 120%); border-inline-start: 4px solid var(--brand-red); color: #fff; padding: 3rem; display: flex; flex-direction: column; justify-content: space-between; }
.login-art h1 { font-size: 2.1rem; font-weight: 800; max-width: 22ch; }
.login-art p { color: #c7d2e5; max-width: 46ch; }
.login-form { display: grid; place-items: center; padding: 2rem; }
.login-logo { width: 260px; padding: .8rem 1rem; }
.login-logo-sm { display: block; width: 220px; max-width: 70%; margin-inline: auto; }
.login-card { width: 100%; max-width: 400px; }
.login-card .form-control { padding: .7rem .9rem; border-radius: 10px; }
@media (max-width: 991.98px) { .login-page { grid-template-columns: 1fr; } .login-art { display: none; } }

/* ===== print ===== */
@media print {
    .app-sidebar, .app-topbar, .no-print, .btn { display: none !important; }
    body, .app-content { background: #fff !important; padding: 0 !important; }
    .panel { box-shadow: none; border-color: #bbb; break-inside: avoid; }
    .table-wrap { max-height: none; overflow: visible; }
    .summary-sticky { position: static; }
    .print-only { display: block !important; }
}
.print-only { display: none; }

/* searchable <select> (site.js: searchable) */
.ss { position: relative; display: block; }
.ss.w-auto { display: inline-block; width: auto; }
/* the native select stays in the flow at zero height, so the box is as wide as it was (longest option, or full width) */
.ss-native { height: 0 !important; min-height: 0; padding-top: 0 !important; padding-bottom: 0 !important; border-width: 0 !important;
             margin: 0 !important; opacity: 0; pointer-events: none; overflow: hidden; display: block; }
.ss-btn { width: 100%; text-align: start; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; cursor: pointer; }
.ss-btn[aria-expanded="true"] { border-color: var(--app-primary); box-shadow: 0 0 0 .2rem color-mix(in srgb, var(--app-primary) 20%, transparent); }
.ss-pop { position: fixed; z-index: 1080; max-width: min(560px, calc(100vw - 16px)); background: var(--app-surface); color: var(--app-text);
          border: 1px solid var(--app-border); border-radius: 10px; box-shadow: 0 10px 30px rgba(15, 23, 42, .18); padding: .4rem; }
.ss-pop .form-control { margin-bottom: .35rem; }
.ss-list { list-style: none; margin: 0; padding: 0; max-height: 260px; overflow-y: auto; overscroll-behavior: contain; }
.ss-opt { padding: .35rem .6rem; border-radius: 6px; cursor: pointer; }
.ss-opt.selected { font-weight: 600; color: var(--app-primary); }
.ss-opt.active { background: var(--app-primary); color: #fff; }
.ss-opt.disabled { opacity: .5; cursor: default; }
.ss-group { padding: .45rem .6rem .15rem; font-weight: 700; font-size: .8rem; color: var(--app-muted); }
.ss-list:not(:has(.ss-opt:not([hidden])))::after { content: "لا يوجد نتايج"; display: block; padding: .5rem .6rem; color: var(--app-muted); }

/* training plan / recommendations on the sheet */
.extra-list > li { padding: .45rem 0; border-bottom: 1px solid var(--app-border); }
.extra-list > li:last-child { border-bottom: 0; }
.extra-list details summary { cursor: pointer; width: fit-content; }
.extra-form { display: grid; gap: .5rem; justify-items: start; }
.extra-form > .form-control, .extra-form > .d-flex { width: 100%; }
details > .extra-form { margin-top: .4rem; }
