:root {
  --tb-primary: #0b7fbd;
  --tb-primary-dark: #075a9c;
  --tb-primary-soft: #e8f6fc;
  --tb-navy: #073a6b;
  --tb-navy-soft: #0b4f85;
  --tb-bg: #f3f6f9;
  --tb-surface: #ffffff;
  --tb-border: #e3e9ef;
  --tb-text: #1e293b;
  --tb-muted: #64748b;
  --tb-shadow: 0 8px 28px rgba(25, 42, 70, .07);
  --tb-radius: 14px;
}

html { font-size: 15px; min-height: 100%; }
body { min-height: 100vh; margin: 0; color: var(--tb-text); background: var(--tb-bg); font-family: "Segoe UI", Tahoma, Arial, sans-serif; }
a { color: var(--tb-primary); }
a:hover { color: var(--tb-primary-dark); }

.app-topbar { height: 68px; background: #fff; border-bottom: 1px solid var(--tb-border); position: sticky; top: 0; z-index: 1040; }
.app-brand { display: inline-flex; align-items: center; gap: .7rem; color: var(--tb-navy); text-decoration: none; font-size: 1.18rem; font-weight: 800; letter-spacing: -.02em; white-space: nowrap; }
.app-brand:hover { color: var(--tb-navy); }
.brand-mark { width: 38px; height: 38px; display: grid; place-items: center; color: #fff; border-radius: 11px; background: linear-gradient(145deg, #075a9c, #1bb6e8); box-shadow: 0 7px 17px rgba(7, 90, 156, .24); font-size: .82rem; letter-spacing: .02em; }
.brand-logo { display: block; object-fit: contain; }
.brand-logo-full { width: 150px; height: 50px; flex: 0 0 150px; }
.brand-logo-mark { display: none; width: 38px; height: 38px; flex: 0 0 38px; }
.brand-name > span { color: #0b8fd0; }
.public-nav { align-items: center; gap: .35rem; margin-inline-start: 1.5rem; }
.public-nav a { padding: .55rem .8rem; color: var(--tb-muted); text-decoration: none; border-radius: 9px; font-weight: 600; }
.public-nav a:hover, .public-nav a.active { color: var(--tb-primary); background: var(--tb-primary-soft); }

.language-switch { display: flex; align-items: center; padding: 3px; background: #f1f5f9; border-radius: 9px; }
.language-switch form { display: flex; }
.language-switch button { min-width: 32px; height: 29px; padding: 0 .45rem; border: 0; border-radius: 7px; background: transparent; color: var(--tb-muted); font-size: .76rem; font-weight: 700; }
.language-switch button.active { color: var(--tb-primary-dark); background: #fff; box-shadow: 0 1px 4px rgba(15, 23, 42, .12); }
.auth-links { display: flex; align-items: center; gap: .8rem; }
.auth-links > a:not(.btn) { color: var(--tb-text); text-decoration: none; font-weight: 600; }
.user-menu-button { display: flex; align-items: center; gap: .55rem; max-width: 245px; padding: .32rem .55rem; border: 0; border-radius: 10px; color: var(--tb-text); background: transparent; }
.user-menu-button:hover { background: #f8fafc; }
.user-avatar { flex: 0 0 auto; width: 34px; height: 34px; display: grid; place-items: center; border-radius: 10px; color: #fff; background: var(--tb-navy); font-weight: 700; }
.user-email { max-width: 155px; overflow: hidden; text-overflow: ellipsis; font-size: .82rem; }
.dropdown-menu { border-color: var(--tb-border); border-radius: 12px; }

.sidebar-toggle { width: 38px; height: 38px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 4px; border: 1px solid var(--tb-border); border-radius: 9px; background: #fff; }
.sidebar-toggle span { width: 17px; height: 2px; background: var(--tb-navy); border-radius: 3px; }
.admin-layout { min-height: calc(100vh - 68px); }
.admin-sidebar { width: 268px; position: fixed; inset-block: 68px 0; inset-inline-start: 0; z-index: 1030; overflow-y: auto; padding: 1.35rem 1rem 1rem; color: #dce5f1; background: linear-gradient(180deg, var(--tb-navy) 0%, #052b52 100%); }
.sidebar-caption { margin: 0 .65rem 1rem; color: #8291a7; font-size: .7rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.sidebar-nav { display: flex; flex-direction: column; gap: .28rem; }
.sidebar-nav a { display: flex; align-items: center; gap: .8rem; min-height: 45px; padding: .65rem .75rem; border-radius: 10px; color: #cbd5e1; text-decoration: none; font-size: .9rem; font-weight: 600; transition: .18s ease; }
.sidebar-nav a:hover { color: #fff; background: rgba(255,255,255,.07); transform: translateX(var(--hover-shift, 2px)); }
[dir="rtl"] .sidebar-nav a:hover { --hover-shift: -2px; }
.sidebar-nav a.active { color: #fff; background: rgba(27, 182, 232, .2); box-shadow: inset 3px 0 0 #37c5f3; }
[dir="rtl"] .sidebar-nav a.active { box-shadow: inset -3px 0 0 #37c5f3; }
.nav-icon { width: 28px; height: 28px; display: grid; place-items: center; border-radius: 8px; background: rgba(255,255,255,.07); font-size: 1rem; }
.sidebar-nav a.active .nav-icon { color: #78d7f7; background: rgba(27,182,232,.18); }
.sidebar-divider { height: 1px; margin: .85rem .65rem; background: rgba(255,255,255,.09); }
.sidebar-label { margin: 0 .75rem .35rem; color: #8291a7; font-size: .7rem; font-weight: 800; }
.sidebar-sub-link { min-height: 36px !important; padding-block: .42rem !important; padding-inline-start: 2.2rem !important; font-size: .8rem !important; font-weight: 500 !important; }
.sidebar-footer { position: absolute; inset-inline: 1.4rem; inset-block-end: 1rem; display: flex; flex-direction: column; align-items: flex-start; gap: .35rem; color: #8190a5; font-size: .72rem; }
.sidebar-footer-logo { width: 135px; height: 45px; object-fit: contain; }
.powered-by { color: inherit; font-size: .72rem; font-weight: 600; text-decoration: none; transition: color .15s ease; }
.powered-by:hover { color: var(--tb-primary); text-decoration: underline; }
.admin-sidebar .powered-by:hover { color: #78d7f7; }
.status-dot { display: inline-block; width: 7px; height: 7px; margin-inline-end: .35rem; border-radius: 50%; background: #37c5f3; box-shadow: 0 0 0 4px rgba(55,197,243,.12); }

.admin-content { min-height: calc(100vh - 68px); margin-inline-start: 268px; padding: 2rem; }
.content-wrap { width: min(100%, 1440px); margin-inline: auto; }
.content-wrap > h1, .content-wrap > .d-flex > h1 { color: var(--tb-navy); font-weight: 750; letter-spacing: -.02em; }
.page-header h1 { color: var(--tb-navy); font-weight: 800; letter-spacing: -.025em; }
.page-header p { font-size: .84rem; }

.card { border: 1px solid var(--tb-border); border-radius: var(--tb-radius); box-shadow: var(--tb-shadow); overflow: hidden; }
.card-header { min-height: 54px; display: flex; align-items: center; padding: .85rem 1.15rem; border-bottom: 1px solid var(--tb-border); background: #fbfcfd; color: var(--tb-navy); font-weight: 750; }
.card-body { padding: 1.25rem; }
.table-responsive, .content-wrap > table.table { border: 1px solid var(--tb-border); border-radius: var(--tb-radius); background: #fff; box-shadow: var(--tb-shadow); overflow: hidden; }
.card .table-responsive { border: 0; border-radius: 0; box-shadow: none; }
.table { --bs-table-bg: transparent; margin-bottom: 0; }
.table > :not(caption) > * > * { padding: .9rem 1rem; border-bottom-color: #edf1f5; vertical-align: middle; }
.table thead th { padding-block: .75rem; color: #64748b; background: #f8fafc; border-bottom-width: 1px; font-size: .74rem; font-weight: 800; letter-spacing: .02em; text-transform: uppercase; white-space: nowrap; }
.table tbody tr { transition: background .15s ease; }
.table tbody tr:hover { --bs-table-accent-bg: #f4fafd; }
.table .empty-state { padding: 3.2rem 1rem; color: var(--tb-muted); text-align: center; font-size: .85rem; }
.empty-state span { width: 44px; height: 44px; display: grid; place-items: center; margin: 0 auto .7rem; border-radius: 12px; color: var(--tb-primary); background: var(--tb-primary-soft); font-size: 1.2rem; }
.table-striped > tbody > tr:nth-of-type(odd) > * { --bs-table-bg-type: rgba(248,250,252,.55); }

.btn { min-height: 39px; padding: .46rem .85rem; border-radius: 9px; font-weight: 650; font-size: .86rem; }
.btn-sm { min-height: 32px; padding: .3rem .65rem; border-radius: 8px; font-size: .78rem; }
.btn-primary { --bs-btn-bg: var(--tb-primary); --bs-btn-border-color: var(--tb-primary); --bs-btn-hover-bg: var(--tb-primary-dark); --bs-btn-hover-border-color: var(--tb-primary-dark); --bs-btn-active-bg: var(--tb-primary-dark); }
.btn-outline-primary { --bs-btn-color: var(--tb-primary); --bs-btn-border-color: #8dc9e4; --bs-btn-hover-bg: var(--tb-primary); --bs-btn-hover-border-color: var(--tb-primary); }
.badge { padding: .42rem .62rem; border-radius: 999px; font-weight: 650; }
.text-bg-secondary { color: #475569 !important; background: #eef2f6 !important; }
.text-bg-success { color: #166534 !important; background: #dcfce7 !important; }

.form-label { margin-bottom: .45rem; color: #334155; font-size: .82rem; font-weight: 700; }
.form-control, .form-select { min-height: 43px; padding: .58rem .75rem; border-color: #d8e0e8; border-radius: 9px; background-color: #fff; }
textarea.form-control { min-height: auto; }
.form-control:focus, .form-select:focus, .form-check-input:focus { border-color: #4db5e0; box-shadow: 0 0 0 .22rem rgba(11,127,189,.14); }
.form-check-input:checked { background-color: var(--tb-primary); border-color: var(--tb-primary); }
.form-text { color: var(--tb-muted); font-size: .76rem; }
.content-wrap > form { padding: 1.35rem; border: 1px solid var(--tb-border); border-radius: var(--tb-radius); background: #fff; box-shadow: var(--tb-shadow); }
.content-wrap > form > .card { box-shadow: none; }
.validation-summary-errors { padding: .8rem 1rem; border: 1px solid #fecaca; border-radius: 9px; background: #fef2f2; }
.validation-summary-errors ul { margin: 0; padding-inline-start: 1.2rem; }
.field-validation-error { display: block; margin-top: .3rem; font-size: .75rem; }
.form-steps { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: .55rem; }
.form-steps span { display: flex; align-items: center; gap: .55rem; padding: .7rem .8rem; color: var(--tb-muted); border: 1px solid var(--tb-border); border-radius: 10px; background: #fff; font-size: .78rem; font-weight: 650; }
.form-steps b { width: 25px; height: 25px; flex: 0 0 25px; display: grid; place-items: center; border-radius: 8px; color: var(--tb-primary); background: var(--tb-primary-soft); }
.form-actions { margin: .5rem -1.35rem -1.35rem; padding: 1rem 1.35rem; border-top: 1px solid var(--tb-border); background: #f8fafc; }
.tender-heading { padding: 1.25rem 1.35rem; border: 1px solid var(--tb-border); border-radius: var(--tb-radius); background: #fff; box-shadow: var(--tb-shadow); }
.tender-reference { margin-bottom: .25rem; color: var(--tb-primary); font-size: .75rem; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.tender-summary > div { padding: .9rem 1rem; border-inline-start: 3px solid #b9e1f2; border-radius: 8px; background: #f4fafd; }
.tender-summary strong { display: block; margin-bottom: .35rem; color: var(--tb-muted); font-size: .72rem; }
.tender-summary strong + div { color: var(--tb-navy); font-weight: 700; }
.committee-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .75rem; }
.committee-card { display: flex; align-items: center; gap: .7rem; padding: .85rem; border: 1px solid var(--tb-border); border-radius: 11px; background: #fff; }
.committee-card.manager { border-color: #83c8e6; background: #f1f9fd; }
.committee-avatar { width: 39px; height: 39px; flex: 0 0 39px; display: grid; place-items: center; border-radius: 11px; color: var(--tb-primary-dark); background: var(--tb-primary-soft); font-size: .9rem; font-weight: 800; }
.committee-info { min-width: 0; display: flex; flex: 1; flex-direction: column; }
.committee-info strong { overflow: hidden; color: var(--tb-navy); text-overflow: ellipsis; white-space: nowrap; font-size: .86rem; }
.committee-info small { overflow: hidden; color: var(--tb-muted); text-overflow: ellipsis; white-space: nowrap; font-size: .72rem; }
.committee-role { flex: 0 0 auto; padding: .3rem .5rem; border-radius: 999px; color: #475569; background: #eef2f6; font-size: .68rem; font-weight: 700; }
.committee-card.manager .committee-role { color: var(--tb-primary-dark); background: #d9f0fa; }
.committee-help { display: flex; flex-direction: column; gap: .25rem; padding: .9rem 1rem; border-inline-start: 4px solid var(--tb-primary); border-radius: 9px; background: var(--tb-primary-soft); }
.committee-help strong { color: var(--tb-primary-dark); font-size: .86rem; }
.committee-help span { color: #365f7d; font-size: .78rem; }
.committee-picker { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .7rem; }
.committee-option { display: flex; align-items: center; gap: .7rem; padding: .85rem; cursor: pointer; border: 1px solid var(--tb-border); border-radius: 11px; background: #fff; transition: border-color .15s ease, background .15s ease; }
.committee-option:hover { border-color: #9bcfe5; background: #f8fcfe; }
.manager-choice { display: flex; align-items: center; gap: .35rem; color: var(--tb-muted); font-size: .72rem; white-space: nowrap; }

.dashboard-hero { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-bottom: 1.3rem; padding: 1.45rem 1.6rem; overflow: hidden; position: relative; border-radius: 18px; color: #fff; background: linear-gradient(120deg, var(--tb-navy), #1e3a5f); box-shadow: 0 12px 35px rgba(23,37,61,.18); }
.dashboard-hero::after { content: ""; position: absolute; width: 210px; height: 210px; inset-inline-end: -60px; inset-block-start: -105px; border-radius: 50%; background: rgba(55,197,243,.14); }
.dashboard-hero h1 { margin: 0 0 .35rem; font-size: 1.55rem; font-weight: 800; }
.dashboard-hero p { margin: 0; color: #bdc9d9; }
.dashboard-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; }
.dashboard-card { min-height: 152px; display: flex; flex-direction: column; padding: 1.2rem; position: relative; border: 1px solid var(--tb-border); border-radius: var(--tb-radius); color: var(--tb-text); background: #fff; box-shadow: var(--tb-shadow); text-decoration: none; transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease; }
.dashboard-card:hover { color: var(--tb-text); transform: translateY(-3px); border-color: #9dcfe4; box-shadow: 0 13px 35px rgba(25,42,70,.12); }
.dashboard-card-icon { width: 43px; height: 43px; display: grid; place-items: center; margin-bottom: .85rem; border-radius: 12px; color: var(--tb-primary); background: var(--tb-primary-soft); font-size: 1.25rem; font-weight: 700; }
.dashboard-card strong { color: var(--tb-navy); font-size: 1rem; }
.dashboard-card .text-muted { margin-top: .3rem; font-size: .8rem; line-height: 1.55; }
.dashboard-card-arrow { position: absolute; inset-inline-end: 1.1rem; inset-block-end: 1rem; color: #94a3b8; font-size: 1.2rem; }
.dashboard-links { display: flex; flex-direction: column; gap: .28rem; margin-top: .45rem; }
.dashboard-links a { font-size: .78rem; text-decoration: none; }

.public-content { min-height: calc(100vh - 128px); padding: 4rem 0; }
.public-content.public-catalogue { padding: 2rem 0 3rem; }
.public-footer { padding: 1.25rem 0; color: var(--tb-muted); border-top: 1px solid var(--tb-border); background: #fff; font-size: .8rem; }
.public-footer-content { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: .35rem; }
.public-footer-brand { display: flex; align-items: center; justify-content: center; gap: .5rem; }
.account-shell { max-width: 530px; margin: 1rem auto; }
.registration-shell { max-width: 860px; margin: 0 auto; }
.account-card { padding: 1.75rem; border: 1px solid var(--tb-border); border-radius: 18px; background: #fff; box-shadow: var(--tb-shadow); }
.account-heading { display: flex; align-items: center; gap: .85rem; margin-bottom: 1.5rem; padding-bottom: 1.1rem; border-bottom: 1px solid var(--tb-border); }
.account-heading h1 { color: var(--tb-navy); font-weight: 800; }
.account-heading p { margin: 0; color: var(--tb-muted); font-size: .8rem; }
.account-brand-logo { width: 210px; height: 70px; flex: 0 0 210px; object-fit: contain; }
.home-hero { max-width: 850px; margin: 4rem auto; padding: 4rem 2rem; text-align: center; position: relative; overflow: hidden; border: 1px solid var(--tb-border); border-radius: 24px; background: linear-gradient(145deg, #fff, #f0f9fd); box-shadow: 0 18px 50px rgba(25,42,70,.1); }
.home-hero::before, .home-hero::after { content: ""; position: absolute; border-radius: 50%; background: rgba(27,182,232,.1); }
.home-hero::before { width: 220px; height: 220px; inset-inline-start: -90px; inset-block-start: -110px; }
.home-hero::after { width: 170px; height: 170px; inset-inline-end: -70px; inset-block-end: -90px; }
.home-badge { display: inline-block; margin-bottom: 1rem; padding: .38rem .75rem; border-radius: 999px; color: var(--tb-primary-dark); background: var(--tb-primary-soft); font-size: .75rem; font-weight: 800; letter-spacing: .08em; }
.home-hero h1 { color: var(--tb-navy); font-size: clamp(2rem, 5vw, 3.3rem); font-weight: 850; letter-spacing: -.04em; }
.home-hero p { max-width: 620px; margin: .8rem auto 0; color: var(--tb-muted); font-size: 1.05rem; }
.content-wrap fieldset { padding: 1rem; border: 1px solid var(--tb-border); border-radius: 11px; background: #f8fafc; }
.content-wrap fieldset legend { float: none; width: auto; padding-inline: .35rem; color: var(--tb-navy); font-weight: 750; }

.supplier-hero { min-height: 168px; display: flex; align-items: center; justify-content: space-between; gap: 1.5rem; padding: 1.7rem 1.9rem; overflow: hidden; position: relative; border-radius: 20px; color: #fff; background: linear-gradient(125deg, #073a6b 0%, #087fba 100%); box-shadow: 0 14px 36px rgba(7, 58, 107, .22); }
.supplier-hero::before, .supplier-hero::after { content: ""; position: absolute; border-radius: 50%; background: rgba(120, 215, 247, .13); }
.supplier-hero::before { width: 190px; height: 190px; inset-inline-end: -42px; inset-block-start: -90px; }
.supplier-hero::after { width: 105px; height: 105px; inset-inline-end: 110px; inset-block-end: -62px; }
.supplier-hero > div { position: relative; z-index: 1; }
.supplier-hero span { display: block; margin-bottom: .35rem; color: #92def7; font-size: .72rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.supplier-hero h1 { margin: 0 0 .4rem; font-size: clamp(1.55rem, 3vw, 2.15rem); font-weight: 850; }
.supplier-hero p { max-width: 720px; margin: 0; color: #c8d9e1; line-height: 1.7; }
.supplier-hero-icon { width: 76px; height: 76px; flex: 0 0 76px; display: grid; place-items: center; border: 1px solid rgba(255,255,255,.16); border-radius: 22px; background: rgba(255,255,255,.09); font-size: 2.1rem; }
.section-heading { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-bottom: 1rem; }
.section-heading h2 { margin: 0 0 .22rem; color: var(--tb-navy); font-size: 1.15rem; font-weight: 800; }
.section-heading p { margin: 0; color: var(--tb-muted); font-size: .8rem; }
.count-pill { min-width: 34px; height: 34px; display: grid; place-items: center; padding: 0 .6rem; border-radius: 999px; color: var(--tb-primary-dark); background: var(--tb-primary-soft); font-size: .78rem; font-weight: 800; }
.opportunity-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; }
.opportunity-card { min-height: 260px; display: flex; flex-direction: column; padding: 1.2rem; border: 1px solid var(--tb-border); border-radius: 15px; background: #fff; box-shadow: var(--tb-shadow); transition: transform .18s ease, border-color .18s ease, box-shadow .18s ease; }
.opportunity-card:hover { transform: translateY(-3px); border-color: #9bcfe5; box-shadow: 0 14px 34px rgba(25,42,70,.12); }
.opportunity-card-top { display: flex; align-items: center; justify-content: space-between; gap: .7rem; margin-bottom: .8rem; }
.opportunity-card h3 { margin: 0 0 .45rem; color: var(--tb-navy); font-size: 1rem; font-weight: 800; line-height: 1.55; }
.opportunity-category { color: var(--tb-muted); font-size: .76rem; }
.opportunity-meta { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .65rem; margin: 1rem 0; }
.opportunity-meta > div { padding: .72rem; border-radius: 10px; background: #f6f9fa; }
.opportunity-meta small { display: block; margin-bottom: .28rem; color: var(--tb-muted); font-size: .67rem; }
.opportunity-meta strong { display: block; color: #334155; font-size: .77rem; }
.opportunity-footer { display: flex; align-items: center; justify-content: space-between; gap: .6rem; margin-top: auto; padding-top: .85rem; border-top: 1px solid #edf1f5; }
.access-state { color: #52657a; font-size: .7rem; font-weight: 750; }
.access-state::before { content: ""; width: 7px; height: 7px; display: inline-block; margin-inline-end: .35rem; border-radius: 50%; background: #94a3b8; }
.access-state.access-granted { color: #13715e; }
.access-state.access-granted::before { background: #10b981; }
.access-state.access-pending { color: #9a6310; }
.access-state.access-pending::before { background: #f59e0b; }
.supplier-empty { min-height: 155px; display: grid; place-items: center; align-content: center; padding: 1.5rem; color: var(--tb-muted); border: 1px dashed #cfd9e3; border-radius: 14px; background: rgba(255,255,255,.6); text-align: center; }
.supplier-empty span { width: 42px; height: 42px; display: grid; place-items: center; margin-bottom: .55rem; border-radius: 12px; color: var(--tb-primary); background: var(--tb-primary-soft); }
.supplier-empty p { margin: 0; font-size: .82rem; }
.invitation-badge { color: var(--tb-primary-dark); background: #d9f0fa; }
.access-gate { display: flex; align-items: center; gap: 1rem; margin-bottom: 1.5rem; padding: 1.25rem; border: 1px solid #aad8eb; border-radius: 15px; background: linear-gradient(120deg, #f0f9fd, #fff); box-shadow: var(--tb-shadow); }
.access-gate.payment { border-color: #f1d69a; background: linear-gradient(120deg, #fff9e9, #fff); }
.access-gate-icon { width: 50px; height: 50px; flex: 0 0 50px; display: grid; place-items: center; border-radius: 14px; color: var(--tb-primary-dark); background: #d9f0fa; font-size: 1.4rem; }
.access-gate.payment .access-gate-icon { color: #9a6310; background: #fdf0c8; }
.access-gate > div:nth-child(2) { flex: 1; }
.access-gate h2 { margin: 0 0 .3rem; color: var(--tb-navy); font-size: 1rem; font-weight: 800; }
.access-gate p { margin: 0; color: var(--tb-muted); font-size: .8rem; line-height: 1.65; }
.protected-text { color: #3d4b5e; line-height: 1.85; white-space: pre-line; }
.rich-text-content { color: #3d4b5e; line-height: 1.85; overflow-wrap: anywhere; }
.rich-text-content > :last-child { margin-bottom: 0; }
.rich-text-content table { width: 100%; margin-bottom: 1rem; border-collapse: collapse; }
.rich-text-content th, .rich-text-content td { padding: .55rem .65rem; border: 1px solid var(--tb-border); }
.summernote-field + .note-editor { border-color: #d8e0e8; border-radius: 10px; overflow: hidden; }
.summernote-field + .note-editor:focus-within { border-color: #4db5e0; box-shadow: 0 0 0 .22rem rgba(11,127,189,.14); }
.summernote-field + .note-editor .note-toolbar { padding: .45rem; border-bottom-color: #e5ebf0; background: #f8fafc; }
.summernote-field + .note-editor .note-editable { min-height: 180px; color: var(--tb-text); background: #fff; line-height: 1.75; }
.summernote-field + .note-editor .note-editable[dir="rtl"] { text-align: right; }
.language-card .card-body { padding-top: .75rem; }
.language-tabs { gap: .3rem; border-bottom-color: var(--tb-border); }
.language-tabs .nav-link { display: flex; align-items: center; gap: .5rem; padding: .72rem 1rem; color: var(--tb-muted); border-radius: 10px 10px 0 0; font-size: .82rem; font-weight: 750; }
.language-tabs .nav-link:hover { color: var(--tb-primary-dark); border-color: transparent; background: #f3f8f7; }
.language-tabs .nav-link.active { color: var(--tb-primary-dark); border-color: var(--tb-border) var(--tb-border) #fff; background: #fff; }
.language-code { min-width: 27px; height: 27px; display: grid; place-items: center; border-radius: 8px; color: var(--tb-primary-dark); background: var(--tb-primary-soft); font-size: .68rem; font-weight: 850; }
.language-tab-content { padding: 1.3rem 1rem .2rem; border: 1px solid var(--tb-border); border-top: 0; border-radius: 0 0 12px 12px; }
.input-group-text.currency-preview { min-width: 64px; justify-content: center; color: var(--tb-primary-dark); background: var(--tb-primary-soft); border-color: #d8e0e8; font-size: .75rem; font-weight: 800; }
.guarantee-required-check { width: 100%; min-height: 43px; display: flex; align-items: center; gap: .5rem; margin: 0; padding: .65rem .8rem; border: 1px solid #d8e0e8; border-radius: 9px; background: #f8fafc; }
.guarantee-required-check .form-check-input { flex: 0 0 auto; margin: 0; }
.guarantee-required-check .form-check-label { color: #334155; font-size: .82rem; font-weight: 700; }
.tender-tabs-shell { overflow: hidden; border: 1px solid var(--tb-border); border-radius: 16px; background: #fff; box-shadow: var(--tb-shadow); }
.tender-tabs-scroll { overflow-x: auto; border-bottom: 1px solid var(--tb-border); background: #f8fafc; scrollbar-width: thin; }
.tender-tabs { min-width: max-content; padding: .6rem .75rem 0; border-bottom: 0; gap: .2rem; }
.tender-tabs .nav-link { min-height: 48px; display: flex; align-items: center; gap: .45rem; padding: .7rem .85rem; color: #64748b; border: 0; border-bottom: 3px solid transparent; border-radius: 9px 9px 0 0; font-size: .78rem; font-weight: 750; }
.tender-tabs .nav-link:hover { color: var(--tb-primary-dark); background: #eef7f5; }
.tender-tabs .nav-link.active { color: var(--tb-primary-dark); border-bottom-color: var(--tb-primary); background: #fff; }
.tender-tabs .nav-link > span { color: var(--tb-primary); font-size: 1rem; }
.tender-tabs .nav-link > b { min-width: 20px; height: 20px; display: grid; place-items: center; padding: 0 .3rem; border-radius: 999px; background: #e7edf3; font-size: .62rem; }
.tender-tabs .nav-link.active > b { color: #fff; background: var(--tb-primary); }
.tender-details-content { padding: 1.35rem; }
.tender-details-content .tab-pane > .card:last-child { margin-bottom: 0; }
.brief-description { padding: 1.15rem 1.25rem; border-inline-start: 4px solid var(--tb-primary); border-radius: 11px; background: linear-gradient(110deg, var(--tb-primary-soft), #fff); }
.brief-description span { display: block; margin-bottom: .35rem; color: var(--tb-primary-dark); font-size: .72rem; font-weight: 800; }
.brief-description p { margin: 0; color: #31465b; line-height: 1.75; font-weight: 600; }
.publish-readiness-card { padding: 1.1rem 1.2rem; border: 1px solid #f0d69d; border-radius: 13px; background: linear-gradient(115deg, #fffaf0, #fff); }
.publish-readiness-card.is-ready { border-color: #9fd5cb; background: linear-gradient(115deg, #effaf7, #fff); }
.publish-readiness-heading { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-bottom: .9rem; }
.publish-readiness-heading h2 { margin: 0 0 .25rem; color: var(--tb-navy); font-size: 1rem; font-weight: 800; }
.publish-readiness-heading p { margin: 0; color: var(--tb-muted); font-size: .75rem; }
.publish-readiness-heading > span { min-width: 45px; height: 32px; display: grid; place-items: center; padding: 0 .55rem; border-radius: 999px; color: #8a5a10; background: #fff0c9; font-size: .72rem; font-weight: 850; }
.publish-readiness-card.is-ready .publish-readiness-heading > span { color: #126153; background: #d9f3ed; }
.publish-check-list { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: .55rem; }
.publish-check-list > div { display: flex; align-items: center; gap: .5rem; padding: .55rem .65rem; border-radius: 8px; color: #5d6877; background: rgba(255,255,255,.75); font-size: .73rem; }
.publish-check-list > div > span { width: 21px; height: 21px; flex: 0 0 21px; display: grid; place-items: center; border-radius: 50%; font-size: .67rem; font-weight: 900; }
.publish-check-list .is-complete > span { color: #fff; background: #159070; }
.publish-check-list .is-missing > span { color: #fff; background: #d78b19; }
.date-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .75rem; }
.date-card { padding: .9rem 1rem; border: 1px solid #e6edf2; border-radius: 10px; background: #f8fafc; }
.date-card strong { display: block; margin-bottom: .35rem; color: var(--tb-muted); font-size: .7rem; }
.date-card div { color: var(--tb-navy); font-size: .84rem; font-weight: 750; }
.date-card small { display: block; margin-top: .3rem; color: #8a98aa; font-size: .66rem; }
.date-extension-link { display: inline-flex; margin-top: .65rem; padding-top: .5rem; border-top: 1px solid #e3e9ef; font-size: .7rem; font-weight: 750; text-decoration: none; }
.extension-current-date { display: flex; flex-direction: column; gap: .25rem; padding: .9rem 1rem; border-inline-start: 4px solid var(--tb-primary); border-radius: 9px; background: var(--tb-primary-soft); }
.extension-current-date span { color: #52706b; font-size: .72rem; font-weight: 700; }
.extension-current-date strong { color: var(--tb-navy); font-size: .95rem; }
.invited-supplier-list { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .7rem; }
.invited-supplier-list > span { display: flex; flex-direction: column; padding: .8rem .9rem; border: 1px solid var(--tb-border); border-radius: 10px; background: #f8fafc; }
.invited-supplier-list b { color: var(--tb-navy); font-size: .82rem; }
.invited-supplier-list small { margin-top: .18rem; color: var(--tb-muted); font-size: .68rem; }
.section-tab-heading { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-bottom: 1.2rem; }
.section-tab-heading h2 { margin: 0 0 .25rem; color: var(--tb-navy); font-size: 1.12rem; font-weight: 800; }
.section-tab-heading p { margin: 0; color: var(--tb-muted); font-size: .78rem; }
.document-upload-form { padding: 1rem; border: 1px solid var(--tb-border); border-radius: 12px; background: #f8fafc; }

/* Public tender catalogue */
.public-tenders-page { padding-bottom: 1rem; }
.public-tenders-hero { min-height: 180px; display: flex; align-items: center; justify-content: space-between; gap: 2rem; margin-bottom: 1.25rem; padding: 1.8rem 2rem; overflow: hidden; position: relative; border-radius: 22px; color: #fff; background: linear-gradient(125deg, #073a6b 0%, #087fba 100%); box-shadow: 0 16px 38px rgba(7,58,107,.2); }
.public-tenders-hero::before, .public-tenders-hero::after { content: ""; position: absolute; border-radius: 50%; background: rgba(120,215,247,.13); }
.public-tenders-hero::before { width: 240px; height: 240px; inset-inline-end: -80px; inset-block-start: -130px; }
.public-tenders-hero::after { width: 130px; height: 130px; inset-inline-end: 120px; inset-block-end: -85px; }
.public-tenders-hero > * { position: relative; z-index: 1; }
.public-tenders-eyebrow { display: block; margin-bottom: .45rem; color: #92def7; font-size: .72rem; font-weight: 850; letter-spacing: .1em; text-transform: uppercase; }
.public-tenders-hero h1 { margin: 0 0 .45rem; font-size: clamp(1.65rem, 4vw, 2.35rem); font-weight: 850; letter-spacing: -.025em; }
.public-tenders-hero p { max-width: 720px; margin: 0; color: #c9dbe2; line-height: 1.75; }
.public-tenders-hero-mark { width: 82px; height: 82px; flex: 0 0 82px; display: grid; place-items: center; border: 1px solid rgba(255,255,255,.16); border-radius: 23px; background: rgba(255,255,255,.09); }
.public-tenders-hero-mark svg { width: 42px; height: 42px; fill: none; stroke: #9fe4fb; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.public-tenders-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-bottom: 1rem; padding: .9rem 1rem; border: 1px solid var(--tb-border); border-radius: 14px; background: #fff; box-shadow: 0 5px 18px rgba(25,42,70,.05); }
.public-tenders-count { display: flex; align-items: center; gap: .75rem; }
.public-tenders-count > span { min-width: 42px; height: 42px; display: grid; place-items: center; padding: 0 .6rem; border-radius: 12px; color: var(--tb-primary-dark); background: var(--tb-primary-soft); font-size: 1rem; font-weight: 850; }
.public-tenders-count div { display: flex; flex-direction: column; }
.public-tenders-count strong { color: var(--tb-navy); font-size: .88rem; }
.public-tenders-count small { color: var(--tb-muted); font-size: .7rem; }
.public-tenders-actions { display: flex; align-items: center; gap: .7rem; }
.public-sort-form { display: flex; align-items: center; gap: .55rem; }
.public-sort-form label { margin: 0; color: var(--tb-muted); font-size: .74rem; font-weight: 700; white-space: nowrap; }
.public-sort-form .form-select { min-width: 185px; min-height: 41px; font-size: .8rem; }
.public-filter-button { display: inline-flex; align-items: center; gap: .45rem; color: var(--tb-primary-dark); border: 1px solid #8dc9e4; background: #f5fbfe; }
.public-filter-button:hover { color: #fff; border-color: var(--tb-primary); background: var(--tb-primary); }
.public-filter-button svg { width: 19px; height: 19px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; }
.public-filter-count { min-width: 21px; height: 21px; display: grid; place-items: center; padding: 0 .3rem; border-radius: 999px; color: #fff; background: var(--tb-primary); font-size: .67rem; font-weight: 800; }
.public-filter-button:hover .public-filter-count { color: var(--tb-primary-dark); background: #fff; }
.public-filter-summary { display: flex; align-items: center; justify-content: space-between; gap: .75rem; margin-bottom: 1rem; padding: .65rem .85rem; border-inline-start: 3px solid var(--tb-primary); border-radius: 8px; color: #365f7d; background: var(--tb-primary-soft); font-size: .76rem; }
.public-filter-summary a { font-weight: 750; }
.public-tender-list { display: flex; flex-direction: column; gap: 1rem; }
.public-tender-card { display: grid; grid-template-columns: 175px minmax(0,1fr); overflow: hidden; border: 1px solid var(--tb-border); border-radius: 16px; background: #fff; box-shadow: var(--tb-shadow); transition: border-color .18s ease, box-shadow .18s ease, transform .18s ease; }
.public-tender-card:hover { border-color: #a8d6e9; box-shadow: 0 13px 32px rgba(25,42,70,.11); transform: translateY(-2px); }
.public-tender-card-aside { display: flex; flex-direction: column; align-items: center; padding: 1.25rem 1rem; border-inline-end: 1px solid var(--tb-border); background: linear-gradient(180deg, #fbfdff, #f3f8fc); text-align: center; }
.public-deadline-icon { width: 53px; height: 53px; display: grid; place-items: center; margin-bottom: .6rem; border-radius: 15px; color: var(--tb-primary); background: var(--tb-primary-soft); }
.public-deadline-icon svg { width: 29px; height: 29px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.public-deadline-value { display: flex; flex-direction: column; align-items: center; }
.public-deadline-value strong { color: var(--tb-navy); font-size: 1.45rem; line-height: 1.15; }
.public-deadline-value span { margin-top: .28rem; color: #64748b; font-size: .8rem; font-weight: 600; }
.public-tender-fee { width: 100%; display: flex; flex-direction: column; margin-top: auto; padding-top: 1rem; border-top: 1px solid var(--tb-border); }
.public-tender-fee span { margin-bottom: .28rem; color: #64748b; font-size: .8rem; font-weight: 600; }
.public-tender-fee strong { color: var(--tb-navy); font-size: .95rem; }
.public-tender-fee strong.is-free { color: #16805d; }
.public-tender-fee small { font-size: .74rem; }
.public-tender-card-main { min-width: 0; padding: 1.2rem 1.35rem; }
.public-tender-card-head { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-bottom: .75rem; }
.public-tender-meta { display: flex; flex-wrap: wrap; gap: .4rem; }
.public-status-pill, .public-scope-pill { display: inline-flex; align-items: center; min-height: 28px; padding: .3rem .68rem; border-radius: 999px; font-size: .76rem; font-weight: 800; }
.public-status-pill { color: #475569; background: #eef2f6; }
.public-status-pill.is-announced { color: var(--tb-primary-dark); background: #d9f0fa; }
.public-status-pill.is-open { color: #155e75; background: #dff5fb; }
.public-status-pill.is-evaluation { color: #8a5509; background: #fff0c7; }
.public-status-pill.is-awarded { color: #166534; background: #dcfce7; }
.public-status-pill.is-cancelled { color: #991b1b; background: #fee2e2; }
.public-scope-pill { color: #475569; background: #f1f5f9; }
.public-reference { color: #334b66; font-size: .88rem; font-weight: 800; white-space: nowrap; }
.public-reference small { margin-inline-end: .3rem; color: #64748b; font-size: .78rem; font-weight: 650; }
.public-tender-card h2 { margin: 0 0 .5rem; color: var(--tb-navy); font-size: 1.24rem; font-weight: 820; line-height: 1.55; }
.public-tender-brief { display: -webkit-box; overflow: hidden; margin: 0 0 .85rem; color: #485c73; font-size: .91rem; line-height: 1.75; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
.public-tender-category { display: flex; align-items: center; gap: .5rem; margin-bottom: .9rem; font-size: .84rem; }
.public-tender-category span { color: #64748b; font-weight: 600; }
.public-tender-category strong { color: var(--tb-primary-dark); }
.public-tender-category .category-chip { padding: .32rem .65rem; font-size: .78rem; }
.public-tender-dates { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: .55rem; padding-top: .8rem; border-top: 1px solid #edf1f5; }
.public-tender-dates > div { min-width: 0; padding: .72rem .78rem; border-radius: 9px; background: #f7f9fb; }
.public-tender-dates span { display: block; overflow: hidden; margin-bottom: .34rem; color: #64748b; text-overflow: ellipsis; white-space: nowrap; font-size: .75rem; font-weight: 600; }
.public-tender-dates strong { display: block; color: #263b55; font-size: .86rem; font-weight: 750; }
.public-tender-card-footer { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-top: .85rem; }
.public-tender-card-footer > span { color: #65758a; font-size: .79rem; line-height: 1.6; }
.public-tender-card-footer .btn { display: inline-flex; align-items: center; gap: .45rem; padding: .58rem .9rem; font-size: .88rem; font-weight: 750; white-space: nowrap; }
[dir="ltr"] .public-tender-card-footer .btn span { transform: rotate(180deg); }
.public-tenders-empty { min-height: 270px; display: grid; place-items: center; align-content: center; padding: 2rem; border: 1px dashed #c9d6df; border-radius: 16px; background: rgba(255,255,255,.7); text-align: center; }
.public-tenders-empty > div { width: 54px; height: 54px; display: grid; place-items: center; margin-bottom: .8rem; border-radius: 15px; color: var(--tb-primary); background: var(--tb-primary-soft); font-size: 1.7rem; }
.public-tenders-empty h2 { margin: 0 0 .35rem; color: var(--tb-navy); font-size: 1.1rem; font-weight: 800; }
.public-tenders-empty p { margin: 0 0 1rem; color: var(--tb-muted); font-size: .8rem; }
.public-filter-offcanvas { width: min(470px, 100vw) !important; border-color: var(--tb-border); }
.public-filter-offcanvas .offcanvas-header { padding: 1.25rem 1.35rem; border-bottom: 1px solid var(--tb-border); background: #f8fafc; }
.public-filter-offcanvas .offcanvas-header span { display: block; margin-bottom: .2rem; color: var(--tb-primary); font-size: .68rem; font-weight: 800; text-transform: uppercase; }
.public-filter-offcanvas .offcanvas-title { color: var(--tb-navy); font-size: 1.15rem; font-weight: 850; }
.public-filter-form { min-height: calc(100vh - 81px); display: flex; flex-direction: column; overflow-y: auto; }
.public-filter-fields { display: flex; flex-direction: column; gap: 1.15rem; padding: 1.35rem; }
.public-search-input { position: relative; }
.public-search-input svg { width: 18px; height: 18px; position: absolute; inset-inline-start: .8rem; inset-block-start: 50%; z-index: 2; transform: translateY(-50%); fill: none; stroke: #7c8da0; stroke-width: 1.8; stroke-linecap: round; }
.public-search-input .form-control { padding-inline-start: 2.6rem; }
.public-date-filter { margin: 0; padding: 1rem; border: 1px solid var(--tb-border); border-radius: 11px; background: #f8fafc; }
.public-date-filter legend { float: none; width: auto; margin: 0; padding-inline: .3rem; color: var(--tb-navy); font-size: .8rem; font-weight: 800; }
.public-filter-footer { display: grid; grid-template-columns: 1fr 1.35fr; gap: .7rem; margin-top: auto; padding: 1rem 1.35rem; position: sticky; inset-block-end: 0; border-top: 1px solid var(--tb-border); background: rgba(255,255,255,.96); backdrop-filter: blur(8px); }

.category-picker { display: grid; grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); gap: .7rem; padding: .8rem; border: 1px solid var(--tb-border); border-radius: 12px; background: #f8fafc; }
.category-option { min-height: 62px; display: flex; align-items: flex-start; gap: .7rem; padding: .75rem; border: 1px solid #dce5ed; border-radius: 10px; background: #fff; cursor: pointer; transition: border-color .18s ease, box-shadow .18s ease, transform .18s ease; }
.category-option:hover { border-color: var(--tb-primary); box-shadow: 0 5px 14px rgba(15, 87, 93, .09); transform: translateY(-1px); }
.category-option .form-check-input { flex: 0 0 auto; margin-top: .2rem; }
.category-option span { min-width: 0; display: flex; flex-direction: column; gap: .12rem; }
.category-option strong { color: var(--tb-navy); font-size: .8rem; line-height: 1.45; }
.category-option small { color: var(--tb-muted); font-size: .68rem; line-height: 1.35; }
.category-chip { display: inline-flex; align-items: center; width: fit-content; padding: .28rem .58rem; border: 1px solid rgba(11, 127, 189, .2); border-radius: 999px; color: var(--tb-primary-dark); background: var(--tb-primary-soft); font-size: .68rem; font-weight: 750; line-height: 1.2; }

.offer-entry-card { display: flex; align-items: center; justify-content: space-between; gap: 1.25rem; padding: 1.15rem 1.25rem; border: 1px solid rgba(11,127,189,.2); border-radius: 14px; background: linear-gradient(135deg, #f0f9fd, #fff); }
.offer-entry-card span { color: var(--tb-primary); font-size: .68rem; font-weight: 800; text-transform: uppercase; }
.offer-entry-card h2 { margin: .15rem 0 .25rem; color: var(--tb-navy); font-size: 1.05rem; font-weight: 820; }
.offer-entry-card p { margin: 0; color: var(--tb-muted); font-size: .76rem; }
.offer-list-grid { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 1rem; }
.offer-list-card { padding: 1.15rem; border: 1px solid var(--tb-border); border-radius: 14px; background: #fff; box-shadow: 0 7px 22px rgba(15,23,42,.05); }
.offer-list-card-head, .offer-list-footer { display: flex; align-items: center; justify-content: space-between; gap: .8rem; }
.offer-list-card h2 { margin: .85rem 0; color: var(--tb-navy); font-size: 1rem; font-weight: 820; line-height: 1.55; }
.offer-list-meta { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: .55rem; margin-bottom: .9rem; }
.offer-list-meta div { padding: .65rem; border-radius: 9px; background: #f8fafc; }
.offer-list-meta span, .offer-status-strip span { display: block; margin-bottom: .2rem; color: var(--tb-muted); font-size: .65rem; }
.offer-list-meta strong, .offer-status-strip strong { color: #334155; font-size: .74rem; }
.offer-list-footer { padding-top: .8rem; border-top: 1px solid #edf1f5; }
.offer-list-footer > span { color: var(--tb-muted); font-size: .68rem; }
.offer-status-strip { display: grid; grid-template-columns: repeat(auto-fit,minmax(180px,1fr)); gap: 1px; overflow: hidden; border: 1px solid var(--tb-border); border-radius: 13px; background: var(--tb-border); }
.offer-status-strip > div { padding: .85rem 1rem; background: #fff; }
.offer-status-strip.draft > div:first-child { border-inline-start: 4px solid #eab308; }
.offer-status-strip.submitted > div:first-child { border-inline-start: 4px solid #16a34a; }
.offer-readiness-card { display: flex; align-items: center; justify-content: space-between; gap: 1.25rem; padding: 1rem 1.15rem; border: 1px solid var(--tb-border); border-radius: 13px; background: #fff; }
.offer-readiness-card h2, .offer-submit-panel h2 { margin: 0 0 .2rem; color: var(--tb-navy); font-size: 1rem; font-weight: 820; }
.offer-readiness-card p, .offer-submit-panel p { margin: 0; color: var(--tb-muted); font-size: .73rem; }
.offer-readiness-checks { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: .45rem; }
.offer-readiness-checks span { display: inline-flex; align-items: center; gap: .35rem; padding: .38rem .55rem; border-radius: 8px; color: #9a3412; background: #fff7ed; font-size: .68rem; font-weight: 700; }
.offer-readiness-checks span.done { color: #166534; background: #f0fdf4; }
.offer-readiness-checks b { font-size: .78rem; }
.offer-pricing-table td { vertical-align: middle; }
.offer-pricing-table td small { display: block; margin-top: .18rem; color: var(--tb-muted); }
.offer-pricing-table tfoot td { color: var(--tb-navy); background: #f8fafc; font-weight: 850; }
.offer-submit-panel { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 1.15rem 1.25rem; border: 1px solid rgba(22,163,74,.22); border-radius: 14px; background: #f0fdf4; }
.offers-locked-panel { min-height: 310px; display: grid; place-items: center; align-content: center; padding: 2rem; border: 1px dashed #cbd5e1; border-radius: 16px; background: #f8fafc; text-align: center; }
.offers-lock-icon { width: 58px; height: 58px; display: grid; place-items: center; margin-bottom: .8rem; border-radius: 16px; color: #a16207; background: #fef9c3; font-size: 1.7rem; }
.offers-locked-panel h2 { margin: 0 0 .35rem; color: var(--tb-navy); font-size: 1.15rem; font-weight: 830; }
.offers-locked-panel p { margin: 0; color: var(--tb-muted); font-size: .8rem; }
.evaluation-window { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 1px; overflow: hidden; border: 1px solid var(--tb-border); border-radius: 13px; background: var(--tb-border); }
.evaluation-window > div { padding: .85rem 1rem; background: #fff; }
.evaluation-window span { display: block; margin-bottom: .2rem; color: var(--tb-muted); font-size: .66rem; }
.evaluation-window strong { color: var(--tb-navy); font-size: .78rem; }
.evaluation-flow { display: flex; align-items: stretch; gap: .6rem; }
.evaluation-flow > div { flex: 1; display: grid; grid-template-columns: auto 1fr; align-items: center; gap: .15rem .6rem; padding: .85rem; border: 1px solid var(--tb-border); border-radius: 12px; background: #fff; }
.evaluation-flow > div b { grid-row: span 2; width: 30px; height: 30px; display: grid; place-items: center; border-radius: 50%; color: #64748b; background: #eef2f7; }
.evaluation-flow > div span { color: var(--tb-navy); font-size: .76rem; font-weight: 800; }
.evaluation-flow > div small { color: var(--tb-muted); font-size: .63rem; }
.evaluation-flow > div.active { border-color: rgba(11,127,189,.45); box-shadow: 0 6px 18px rgba(11,127,189,.1); }
.evaluation-flow > div.active b, .evaluation-flow > div.done b { color: #fff; background: var(--tb-primary); }
.evaluation-flow > i { align-self: center; color: #94a3b8; font-style: normal; }
[dir="ltr"] .evaluation-flow > i { transform: rotate(180deg); }
.evaluation-manager-panel, .member-evaluation-submit { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 1rem 1.15rem; border: 1px solid rgba(11,127,189,.2); border-radius: 13px; background: #f0f9fd; }
.evaluation-manager-panel span { color: var(--tb-primary-dark); font-size: .8rem; font-weight: 850; }
.evaluation-manager-panel p, .member-evaluation-submit p { margin: .2rem 0 0; color: var(--tb-muted); font-size: .7rem; }
.member-evaluation-submit h2 { margin: 0; color: var(--tb-navy); font-size: .95rem; font-weight: 820; }
.evaluation-offers-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1rem; }
.evaluation-offer-card { padding: 1rem; border: 1px solid var(--tb-border); border-radius: 14px; background: #fff; box-shadow: 0 6px 20px rgba(15,23,42,.045); }
.evaluation-offer-head { display: flex; align-items: center; justify-content: space-between; gap: .75rem; margin-bottom: .8rem; }
.evaluation-offer-head > strong { color: var(--tb-navy); font-size: .8rem; }
.evaluation-results { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: .45rem; }
.evaluation-results > div { min-width: 0; padding: .65rem; border-radius: 9px; background: #f8fafc; }
.evaluation-results span { display: block; overflow: hidden; margin-bottom: .2rem; color: var(--tb-muted); text-overflow: ellipsis; white-space: nowrap; font-size: .62rem; }
.evaluation-results strong { display: block; color: #334155; font-size: .72rem; }
.evaluation-results small { display: inline-flex; margin-top: .3rem; padding: .15rem .35rem; border-radius: 5px; font-size: .58rem; font-weight: 800; }
.evaluation-results small.passed { color: #166534; background: #dcfce7; }
.evaluation-results small.failed { color: #991b1b; background: #fee2e2; }
.evaluation-results .is-locked { opacity: .62; background: #f1f5f9; }
.evaluation-results-link { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 1.1rem 1.2rem; border: 1px solid #b5ddec; border-radius: 14px; background: linear-gradient(135deg,#f0f9fd,#f8fcff); }
.evaluation-results-link h2 { margin: 0 0 .2rem; color: var(--tb-navy); font-size: 1rem; font-weight: 820; }
.evaluation-results-link p { margin: 0; color: var(--tb-muted); font-size: .78rem; }
.award-decision-banner { display: flex; align-items: center; gap: 1rem; padding: 1.2rem; border: 1px solid #9fd6c1; border-radius: 15px; color: #14532d; background: linear-gradient(135deg,#ecfdf5,#f7fffb); }
.award-decision-icon { width: 52px; height: 52px; flex: 0 0 52px; display: grid; place-items: center; border-radius: 50%; color: #fff; background: #16805d; font-size: 1.4rem; font-weight: 900; }
.award-decision-banner span, .award-decision-copy > span { color: #16805d; font-size: .72rem; font-weight: 850; text-transform: uppercase; letter-spacing: .04em; }
.award-decision-banner h2 { margin: .15rem 0; color: #14532d; font-size: 1.15rem; font-weight: 850; }
.award-decision-banner p, .award-decision-banner small { display: block; margin: 0; color: #42725b; font-size: .78rem; }
.award-results-table th { white-space: nowrap; font-size: .72rem; }
.award-results-table td { vertical-align: middle; font-size: .78rem; }
.award-results-table tr.is-recommended td { background: #f0fdfa; }
.award-results-table tr.is-awarded td { background: #ecfdf5; }
.award-results-table tr.is-disqualified { opacity: .68; }
.award-rank { width: 30px; height: 30px; display: grid; place-items: center; border-radius: 50%; color: var(--tb-navy); background: #eef2f6; font-weight: 850; }
.recommended-label, .awarded-label { display: block; width: fit-content; margin-top: .25rem; padding: .15rem .4rem; border-radius: 5px; color: #0f766e; background: #ccfbf1; font-size: .61rem; font-weight: 800; }
.awarded-label { color: #166534; background: #dcfce7; }
.result-state { display: inline-flex; padding: .22rem .5rem; border-radius: 999px; font-size: .66rem; font-weight: 800; }
.result-state.passed { color: #166534; background: #dcfce7; }
.result-state.failed { color: #991b1b; background: #fee2e2; }
.award-decision-panel { display: grid; grid-template-columns: minmax(220px,.7fr) minmax(340px,1.3fr); gap: 1.5rem; padding: 1.3rem; border: 1px solid var(--tb-border); border-radius: 15px; background: #fff; box-shadow: var(--tb-shadow); }
.award-decision-copy h2 { margin: .2rem 0 .4rem; color: var(--tb-navy); font-size: 1.15rem; font-weight: 850; }
.award-decision-copy p { margin: 0; color: var(--tb-muted); font-size: .8rem; line-height: 1.7; }
.award-decision-form { display: grid; gap: .9rem; }
.award-decision-form .btn { justify-self: end; min-width: 150px; }
.settings-card { max-width: 850px; }
.settings-switch { display: flex; align-items: flex-start; gap: .8rem;}
.settings-switch .form-check-input { width: 2.6rem; height: 1.35rem; margin-inline-start: -2.7rem; }
.settings-switch label { display: flex; flex-direction: column; gap: .3rem; }
.settings-switch label strong { color: var(--tb-navy); font-size: .92rem; }
.settings-switch label span { color: var(--tb-muted); font-size: .78rem; line-height: 1.65; }
.supplier-award-result { display: flex; align-items: center; gap: 1rem; padding: 1.2rem; border: 1px solid; border-radius: 15px; }
.supplier-award-result.is-winner { color: #14532d; border-color: #a7d9c4; background: #ecfdf5; }
.supplier-award-result.is-not-awarded { color: #334155; border-color: #cbd5e1; background: #f8fafc; }
.supplier-award-result-icon { width: 50px; height: 50px; flex: 0 0 50px; display: grid; place-items: center; border-radius: 50%; color: #fff; font-size: 1.25rem; font-weight: 900; }
.supplier-award-result.is-winner .supplier-award-result-icon { background: #16805d; }
.supplier-award-result.is-not-awarded .supplier-award-result-icon { background: #64748b; }
.supplier-award-result span { font-size: .7rem; font-weight: 850; }
.supplier-award-result h2 { margin: .15rem 0 .25rem; color: inherit; font-size: 1.08rem; font-weight: 850; }
.supplier-award-result p { margin: 0; opacity: .82; font-size: .8rem; }
.supplier-score-summary { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: .75rem; }
.supplier-score-summary > div { padding: 1rem; border: 1px solid var(--tb-border); border-radius: 12px; background: #fff; }
.supplier-score-summary span, .supplier-score-summary small { display: block; color: var(--tb-muted); font-size: .72rem; }
.supplier-score-summary strong { display: block; margin: .3rem 0; color: var(--tb-navy); font-size: 1rem; }
.supplier-score-summary small.passed { color: #16805d; }
.supplier-score-summary small.failed { color: #b42318; }
.access-state.access-not-awarded { color: #475569; background: #e2e8f0; }

/* Portal typography: keep admin and supplier workspaces comfortably readable. */
html.portal-html { font-size: 16px; }
.admin-body { line-height: 1.6; }
.admin-body .admin-content { color: #24364d; }
.admin-body .sidebar-caption, .admin-body .sidebar-label { font-size: .8rem; }
.admin-body .sidebar-sub-link { font-size: .9rem !important; }
.admin-body .sidebar-footer { font-size: .8rem; }
.admin-body .sidebar-nav > a { font-size: .92rem; }
.admin-body .page-header p, .admin-body .section-heading p { font-size: .9rem; line-height: 1.65; }
.admin-body .tender-reference { font-size: .84rem; }
.admin-body .card-header { font-size: .98rem; }
.admin-body .card-body, .admin-body .table { font-size: .94rem; }
.admin-body .table thead th { font-size: .82rem; }
.admin-body .table tbody td { line-height: 1.55; }
.admin-body .btn { font-size: .92rem; }
.admin-body .btn-sm { font-size: .84rem; }
.admin-body .badge { font-size: .78rem; }
.admin-body .form-label, .admin-body .form-check-label { font-size: .9rem; }
.admin-body .form-control, .admin-body .form-select, .admin-body .input-group-text { font-size: .94rem; }
.admin-body .form-text, .admin-body .field-validation-error { font-size: .82rem; line-height: 1.55; }
.admin-body small, .admin-body .text-muted { font-size: .82rem; }
.admin-body .form-steps span { font-size: .86rem; }
.admin-body .dashboard-card .text-muted, .admin-body .dashboard-links a { font-size: .87rem; }
.admin-body .tender-summary strong { font-size: .8rem; }
.admin-body .committee-info strong, .admin-body .committee-help strong { font-size: .94rem; }
.admin-body .committee-info small, .admin-body .committee-help span, .admin-body .manager-choice { font-size: .82rem; }
.admin-body .committee-role { font-size: .76rem; }
.admin-body .language-tabs .nav-link, .admin-body .tender-tabs .nav-link { font-size: .88rem; }
.admin-body .language-code, .admin-body .tender-tabs .nav-link > b { font-size: .74rem; }
.admin-body .brief-description span, .admin-body .publish-readiness-heading p { font-size: .82rem; }
.admin-body .publish-readiness-heading > span { font-size: .8rem; }
.admin-body .publish-check-list > div { font-size: .82rem; }
.admin-body .date-card strong, .admin-body .date-card small, .admin-body .date-extension-link { font-size: .8rem; }
.admin-body .date-card div { font-size: .94rem; }
.admin-body .extension-current-date span, .admin-body .invited-supplier-list small, .admin-body .section-tab-heading p { font-size: .82rem; }
.admin-body .invited-supplier-list b { font-size: .92rem; }
.admin-body .category-chip { font-size: .78rem; }
.admin-body .supplier-hero span, .admin-body .opportunity-category { font-size: .82rem; }
.admin-body .opportunity-meta small, .admin-body .access-state { font-size: .78rem; }
.admin-body .opportunity-meta strong { font-size: .88rem; }
.admin-body .access-gate p, .admin-body .supplier-empty p { font-size: .9rem; }
.admin-body .offer-entry-card span, .admin-body .offer-list-meta span, .admin-body .offer-status-strip span { font-size: .78rem; }
.admin-body .offer-entry-card p, .admin-body .offer-list-footer > span, .admin-body .offer-readiness-card p, .admin-body .offer-submit-panel p { font-size: .84rem; }
.admin-body .offer-list-meta strong, .admin-body .offer-status-strip strong { font-size: .86rem; }
.admin-body .offer-readiness-checks span { font-size: .78rem; }
.admin-body .evaluation-window span { font-size: .8rem; }
.admin-body .evaluation-window strong { font-size: .92rem; }
.admin-body .evaluation-flow > div span { font-size: .9rem; }
.admin-body .evaluation-flow > div small { font-size: .78rem; }
.admin-body .evaluation-manager-panel span { font-size: .9rem; }
.admin-body .evaluation-manager-panel p, .admin-body .member-evaluation-submit p { font-size: .84rem; }
.admin-body .evaluation-offer-head > strong { font-size: .92rem; }
.admin-body .evaluation-results span { font-size: .78rem; }
.admin-body .evaluation-results strong { font-size: .88rem; }
.admin-body .evaluation-results small { font-size: .74rem; }
.admin-body .evaluation-results-link p { font-size: .84rem; }
.admin-body .award-decision-banner span, .admin-body .award-decision-copy > span { font-size: .8rem; }
.admin-body .award-decision-banner p, .admin-body .award-decision-banner small { font-size: .86rem; }
.admin-body .award-results-table th { font-size: .8rem; }
.admin-body .award-results-table td { font-size: .88rem; }
.admin-body .recommended-label, .admin-body .awarded-label, .admin-body .result-state { font-size: .75rem; }
.admin-body .award-decision-copy p, .admin-body .settings-switch label span { font-size: .86rem; }
.admin-body .supplier-award-result span, .admin-body .supplier-score-summary span, .admin-body .supplier-score-summary small { font-size: .8rem; }
.admin-body .supplier-award-result p { font-size: .88rem; }
.evaluation-offer-actions { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: .8rem; padding-top: .8rem; border-top: 1px solid #edf1f5; }
.evaluation-score-table td { vertical-align: middle; }
.evaluation-score-table input[type="number"] { min-width: 120px; }
.evaluation-score-table textarea { min-width: 220px; resize: vertical; }

@media (max-width: 991.98px) {
  .admin-sidebar { width: min(292px, 86vw); box-shadow: 12px 0 30px rgba(15,23,42,.18); }
  [dir="rtl"] .admin-sidebar { box-shadow: -12px 0 30px rgba(15,23,42,.18); }
  .admin-content { margin-inline-start: 0; padding: 1.25rem; }
  .dashboard-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .committee-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .opportunity-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .date-grid, .invited-supplier-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .publish-check-list { grid-template-columns: 1fr; }
  .public-tender-dates { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .offer-list-grid { grid-template-columns: 1fr; }
  .evaluation-offers-grid { grid-template-columns: 1fr; }
}

@media (max-width: 767.98px) {
  .public-tenders-hero { min-height: 155px; padding: 1.4rem; }
  .public-tenders-hero-mark { display: none; }
  .public-tenders-toolbar { align-items: stretch; flex-direction: column; }
  .public-tenders-actions { justify-content: space-between; }
  .public-tender-card { grid-template-columns: 1fr; }
  .public-tender-card-aside { flex-direction: row; gap: .8rem; padding: .85rem 1rem; border-inline-end: 0; border-bottom: 1px solid var(--tb-border); text-align: start; }
  .public-deadline-icon { width: 42px; height: 42px; flex: 0 0 42px; margin: 0; }
  .public-deadline-value { align-items: flex-start; }
  .public-deadline-value strong { font-size: 1.05rem; }
  .public-tender-fee { width: auto; margin: 0 0 0 auto; padding: 0 0 0 1rem; border-top: 0; border-inline-start: 1px solid var(--tb-border); text-align: end; }
  [dir="rtl"] .public-tender-fee { margin: 0 auto 0 0; }
  .award-decision-panel { grid-template-columns: 1fr; }
  .supplier-score-summary { grid-template-columns: 1fr; }
}

@media (max-width: 575.98px) {
  html { font-size: 14px; }
  .app-topbar { height: 62px; }
  .brand-name { display: none; }
  .brand-mark { width: 35px; height: 35px; flex-basis: 35px; }
  .brand-logo-full { display: none; }
  .brand-logo-mark { display: block; }
  .admin-sidebar { inset-block-start: 62px; }
  .admin-content { padding: 1rem .75rem; }
  .content-wrap > .d-flex.justify-content-between { align-items: stretch !important; flex-direction: column; gap: .75rem; }
  .content-wrap > .d-flex.justify-content-between .btn { width: 100%; }
  .dashboard-grid { grid-template-columns: 1fr; }
  .form-steps { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .committee-grid, .committee-picker { grid-template-columns: 1fr; }
  .manager-choice span { display: none; }
  .dashboard-hero { padding: 1.2rem; }
  .table > :not(caption) > * > * { padding: .72rem; }
  .user-menu-button { padding-inline: .25rem; }
  .public-content { padding: 2rem 0; }
  .supplier-hero { min-height: auto; padding: 1.3rem; }
  .supplier-hero-icon { display: none; }
  .opportunity-grid { grid-template-columns: 1fr; }
  .access-gate { align-items: flex-start; flex-wrap: wrap; }
  .access-gate form, .access-gate form .btn { width: 100%; }
  .tender-heading { flex-direction: column; gap: 1rem; }
  .tender-heading > .btn { width: 100%; }
  .tender-details-content { padding: .85rem; }
  .date-grid, .invited-supplier-list { grid-template-columns: 1fr; }
  .section-tab-heading { align-items: stretch; flex-direction: column; }
  .section-tab-heading .btn { width: 100%; }
  .public-tenders-hero { border-radius: 16px; }
  .public-tenders-actions, .public-sort-form { align-items: stretch; flex-direction: column; }
  .public-sort-form label { display: none; }
  .public-sort-form .form-select, .public-filter-button { width: 100%; }
  .public-filter-button { justify-content: center; }
  .public-tender-card-main { padding: 1rem; }
  .public-tender-card-head { align-items: flex-start; flex-direction: column-reverse; gap: .55rem; }
  .public-reference { white-space: normal; }
  .public-tender-dates { grid-template-columns: 1fr; }
  .public-tender-card-footer { align-items: stretch; flex-direction: column; }
  .public-tender-card-footer .btn { justify-content: center; width: 100%; }
  .offer-entry-card, .offer-readiness-card, .offer-submit-panel { align-items: stretch; flex-direction: column; }
  .offer-entry-card .btn, .offer-submit-panel form, .offer-submit-panel .btn { width: 100%; }
  .offer-readiness-checks { justify-content: flex-start; }
  .offer-list-meta { grid-template-columns: 1fr; }
  .evaluation-window, .evaluation-results { grid-template-columns: 1fr; }
  .evaluation-flow { flex-direction: column; }
  .evaluation-flow > i { transform: rotate(-90deg); text-align: center; }
  [dir="ltr"] .evaluation-flow > i { transform: rotate(90deg); }
  .evaluation-manager-panel, .member-evaluation-submit { align-items: stretch; flex-direction: column; }
  .evaluation-manager-panel form, .evaluation-manager-panel .btn, .member-evaluation-submit form, .member-evaluation-submit .btn { width: 100%; }
  .evaluation-results-link { align-items: stretch; flex-direction: column; }
  .evaluation-results-link .btn, .award-decision-form .btn { width: 100%; }
}

@media (max-width: 390px) {
  .form-steps { grid-template-columns: 1fr; }
}
