/* Procurement route only. Original photos remain separate, composed with CSS. */
.site-frame:has(.procurement-page) { position:relative; }
.site-frame:has(.procurement-page) > .portal-header { position:absolute; inset:0 0 auto; background:transparent; }
.portal-main--procurement { padding:0; background:#f2f8fb; }
.portal-container--procurement { max-width:none; }
.procurement-page { color:var(--navy); background:linear-gradient(145deg,#f5fafc,#eaf3f8); padding-bottom:52px; }
.procurement-page [hidden] { display:none!important; }
.procurement-hero { position:relative; isolation:isolate; height:40svh; min-height:360px; max-height:600px; overflow:hidden; background:#002b3c; color:#fff; }
.procurement-photos,.procurement-hero-shade { position:absolute; inset:0; z-index:-1; }
.procurement-photos { overflow:hidden; animation:procurement-photo-enter 1.2s ease-out both; }
.procurement-photos img { position:absolute; top:0; height:100%; object-fit:cover; }
.procurement-photo-console { left:0; width:100%; opacity:.33; object-position:40% 60%; }
.procurement-photo-main { right:0; width:70%; object-position:center 80%; mask-image:linear-gradient(90deg,transparent,#000 35%); }
.procurement-hero-shade { background:linear-gradient(90deg,#002532fa 0%,#002532d9 36%,#00253265 60%,#00253233),linear-gradient(180deg,#001c29a6,transparent 40%,#00253259); }
.procurement-hero-copy { display:flex; flex-direction:column; justify-content:center; height:100%; padding:106px 4.15vw 38px; }
.procurement-hero h1 { width:fit-content; max-width:100%; margin:0; font-family:var(--display); font-size:clamp(48px,6.8vw,108px); font-weight:600; line-height:1; letter-spacing:-.055em; animation:procurement-enter .65s both; }
.procurement-hero-copy > p { max-width:630px; width:53%; margin:23px 0 0; font-size:clamp(15px,1.18vw,20px); line-height:1.65; color:#dae9ef; animation:procurement-enter .7s .09s both; }
.procurement-hero-note { position:absolute; right:4.15vw; top:135px; display:flex; flex-direction:column; gap:18px; width:170px; color:#c3e3f1; opacity:.9; }
.procurement-hero-note span { font-size:12px; font-weight:600; line-height:1.5; letter-spacing:.08em; }
.procurement-hero-note svg { width:150px; height:35px; }
.procurement-body { padding:24px 4.15vw 0; }
.procurement-body > .breadcrumbs { margin:0 0 27px; font-size:12px; }
.procurement-filters { display:grid; grid-template-columns:minmax(0,1fr) 235px 195px; gap:12px; }
.procurement-search,.procurement-select { min-width:0; border:1px solid #d5e4eb; border-radius:14px; background:#ffffffda; box-shadow:0 5px 22px #52788e05; }
.procurement-search { display:flex; align-items:center; padding:0 20px; gap:14px; }
.procurement-search > svg { flex-shrink:0; width:24px; height:24px; }
.procurement-search input { min-width:0; width:100%; height:70px; padding:0; border:0; outline:0; background:transparent; color:var(--navy); font:16px Arial,sans-serif; }
.procurement-search input::placeholder { color:#68818f; opacity:1; }
.procurement-search:focus-within { border-color:#82afc4; box-shadow:var(--focus-halo); }
.procurement-select { display:flex; flex-direction:column; gap:3px; padding:10px 14px; }
.procurement-select > span { font-size:11px; color:#66808f; }
.procurement-select select { width:100%; min-height:30px; padding:2px 22px 2px 0; border:0; outline-offset:3px; background:transparent; color:var(--navy); font:14px Arial,sans-serif; }
.procurement-summary { display:flex; align-items:center; justify-content:space-between; gap:12px; min-height:42px; color:#65808e; font-size:12px; }
.procurement-summary p { margin:0; }
.procurement-summary button { padding:7px 0 7px 12px; background:transparent; color:var(--navy); font-size:12px; }
.procurement-table-wrap { min-width:0; }
.procurement-table { width:100%; border-collapse:separate; border-spacing:0 5px; table-layout:fixed; }
.procurement-table thead th { padding:12px 16px; background:#e2eef5; color:#527181; font-size:10px; font-weight:600; line-height:1.4; text-align:left; text-transform:uppercase; letter-spacing:.035em; }
.procurement-table th:first-child { width:5%; }
.procurement-table th:nth-child(2) { width:30%; }
.procurement-table th:nth-child(3) { width:17%; }
.procurement-table th:nth-child(4) { width:14%; }
.procurement-table th:nth-child(5) { width:15%; }
.procurement-table th:nth-child(6) { width:19%; }
.procurement-table thead th:first-child,.procurement-table tbody td:first-child { border-radius:12px 0 0 12px; }
.procurement-table thead th:last-child,.procurement-table tbody td:last-child { border-radius:0 12px 12px 0; }
.procurement-table tbody tr { filter:drop-shadow(0 2px 4px #42647c03); }
.procurement-table tbody td,.procurement-table tbody th { padding:18px 16px; border-top:1px solid #fff; border-bottom:1px solid #e1ecf3; background:#ffffffd9; text-align:left; font-size:13px; line-height:1.5; vertical-align:middle; transition:background .2s; }
.procurement-number { color:#6b8796; font-variant-numeric:tabular-nums; }
.procurement-title { padding:0; background:transparent; color:var(--navy); font:600 15px/1.4 Arial,sans-serif; text-align:left; user-select:text; }
.procurement-id { display:block; margin-top:6px; color:#688391; font:11px/1.4 Arial,sans-serif; overflow-wrap:anywhere; }
.procurement-status { display:inline-flex; align-items:center; gap:7px; padding:7px 10px; border-radius:10px; background:#eaf2f7; color:#46677b; font:11px/1.5 Arial,sans-serif; }
.procurement-status i { width:7px; height:7px; flex-shrink:0; border:1.5px solid currentColor; border-radius:50%; background:#c0d7e3; }
.procurement-status[data-status=active] { background:#fcf1d2; color:#76620e; }
.procurement-status[data-status=complete] { background:#e5f1ec; color:#416451; }
.procurement-status[data-status=cancelled] { background:#e8edf3; color:#5f7183; }
.procurement-table time { white-space:nowrap; color:#567687; font-size:13px; font-variant-numeric:tabular-nums; }
.procurement-price strong { display:block; color:#002b3c; font-size:15px; white-space:nowrap; }
.procurement-price small { display:block; margin-top:2px; color:#688391; font-size:11px; font-weight:400; }
.procurement-table .procurement-actions { padding-left:8px; padding-right:13px; }
.procurement-actions > a { display:inline-flex; align-items:center; gap:9px; max-width:calc(100% - 43px); color:#15384b; font-size:12px; font-weight:600; text-decoration:underline; text-underline-offset:4px; line-height:1.5; }
.procurement-actions > a svg { width:16px; height:16px; flex-shrink:0; }
.procurement-document { float:right; display:grid; place-items:center; width:36px; height:40px; border-radius:10px; background:#e9f2f7; color:var(--navy); transition:background .2s,box-shadow .2s,transform .2s; }
.procurement-document svg { width:22px; height:22px; }
.procurement-empty { padding:40px 24px; border:1px solid #d7e6ef; border-radius:16px; background:#fff; text-align:center; }
.procurement-empty h3 { font-family:var(--display); font-size:clamp(19px,2vw,26px); }
.procurement-empty p { color:#607d8c; font-size:15px; }
.procurement-empty button { display:inline-flex; align-items:center; gap:12px; padding:12px 18px; border-radius:99px; color:#fff; background:var(--navy); font-size:13px; }
.procurement-empty button svg { width:18px; height:18px; }
.procurement-data-note { display:flex; align-items:flex-start; gap:10px; max-width:860px; margin:18px 0 0; color:#688492; font-size:12px; line-height:1.7; }
.procurement-data-note svg { width:17px; height:17px; flex-shrink:0; margin-top:2px; }
.procurement-dialog { width:610px; max-width:calc(100vw - 32px); max-height:calc(100dvh - 40px); padding:35px; border-radius:22px; background:#f6fbfe; color:var(--navy); box-shadow:0 24px 90px #001f3566; overflow:auto; overscroll-behavior:contain; }
.procurement-dialog::backdrop { background:#001e2dc9; backdrop-filter:blur(5px); }
.procurement-dialog[open] { animation:procurement-enter .26s both; }
.procurement-dialog-close { position:absolute; top:13px; right:14px; width:36px; height:36px; border-radius:50%; background:#e3f0f6; color:var(--navy); font:25px Arial,sans-serif; }
.procurement-dialog-kicker { font-family:var(--display); color:#7697a7; font-size:10px; }
.procurement-dialog h2 { margin:24px 0 12px; font-family:var(--display); font-size:clamp(21px,3vw,29px); line-height:1.25; }
.procurement-dialog-id { margin:0; color:#5b7e91; font-size:13px; overflow-wrap:anywhere; }
.procurement-dialog dl { display:grid; gap:12px; margin:24px 0; padding:18px 0; border-block:1px solid #dce8ef; }
.procurement-dialog dl > div { display:flex; justify-content:space-between; gap:14px; font-size:13px; line-height:1.5; }
.procurement-dialog dt { color:#688391; }
.procurement-dialog dd { margin:0; font-weight:600; text-align:right; }
.procurement-dialog > p[data-procurement-field] { font-size:14px; line-height:1.7; }
.procurement-dialog .procurement-dialog-notice { color:#688391; font-size:12px; line-height:1.6; }
.procurement-dialog-link { display:inline-flex; align-items:center; justify-content:space-between; gap:20px; margin-top:10px; padding:13px 20px; border-radius:99px; background:var(--navy); color:#fff; font-size:13px; line-height:1.5; }
.procurement-dialog-link svg { flex-shrink:0; width:20px; height:20px; }
@media(hover:hover) { .procurement-table tbody tr:hover > * { background:#eef8fd; } .procurement-title:hover { text-decoration:underline; text-underline-offset:3px; } .procurement-document:hover { background:#cee8f5; box-shadow:0 0 18px #6c9fb33b; transform:translateY(-2px); } .procurement-dialog-link:hover { box-shadow:0 0 20px #8fb7c975; } }
@media(max-width:1100px) and (min-width:761px) { .procurement-hero { min-height:380px; } .procurement-hero-copy { padding-top:156px; } .procurement-hero-note { top:180px; } .procurement-filters { grid-template-columns:minmax(0,1fr) 200px 150px; } .procurement-table tbody td,.procurement-table tbody th,.procurement-table thead th { padding:13px 9px; } .procurement-table th:nth-child(2) { width:29%; } .procurement-table th:nth-child(6) { width:20%; } .procurement-title { font-size:13px; } .procurement-status { font-size:10px; padding:6px 7px; } .procurement-actions > a { font-size:11px; } .procurement-price strong { font-size:13px; } .procurement-table time { font-size:11px; } }
@media(max-width:760px) {
 .procurement-page { padding-bottom:35px; }
 .procurement-hero { height:430px; min-height:430px; max-height:none; }
 .procurement-photo-main { width:100%; object-position:62% 80%; mask-image:none; opacity:.8; }
 .procurement-photo-console { opacity:.2; }
 .procurement-hero-shade { background:linear-gradient(90deg,#002532e8,#00253266),linear-gradient(0deg,#002532dd,transparent 80%); }
 .procurement-hero-copy { justify-content:flex-end; padding:115px 20px 44px; }
 .procurement-hero h1 { font-size:clamp(32px,8.5vw,60px); }
 .procurement-hero-copy > p { width:100%; max-width:480px; margin-top:20px; font-size:15px; line-height:1.6; }
 .procurement-hero-note { display:none; }
 .procurement-body { padding:21px 20px 0; }
 .procurement-body > .breadcrumbs { margin-bottom:22px; font-size:11px; }
 .procurement-filters { grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr); gap:10px; }
 .procurement-search { grid-column:1/-1; padding:0 14px; gap:10px; border-radius:12px; }
 .procurement-search input { height:54px; font-size:14px; }
 .procurement-search > svg { width:21px; height:21px; }
 .procurement-select { border-radius:11px; padding:9px 12px; }
 .procurement-select select { font-size:13px; min-height:27px; }
 .procurement-select > span { font-size:10px; }
 .procurement-summary { min-height:43px; font-size:11px; }
 .procurement-table,.procurement-table tbody { display:block; width:100%; }
 .procurement-table thead { display:none; }
 .procurement-table tbody { display:grid; gap:12px; }
 .procurement-table tbody tr { display:grid; position:relative; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:15px 10px; padding:20px 16px 16px; border:1px solid #dce8ef; border-radius:16px; background:#fff; filter:none; box-shadow:0 5px 22px #47738a05; }
 .procurement-table tbody tr[hidden] { display:none; }
 .procurement-table tbody td,.procurement-table tbody th { display:block; width:auto!important; padding:0; border:0; border-radius:0!important; background:transparent; font-size:12px; }
 .procurement-table tbody .procurement-number { display:none; }
 .procurement-table .procurement-title-cell { grid-column:1/-1; }
 .procurement-title { font-size:16px; line-height:1.4; }
 .procurement-id { margin-top:7px; font-size:10px; }
 .procurement-table tbody td[data-label]::before { content:attr(data-label); display:block; margin-bottom:6px; color:#77909d; font-size:10px; }
 .procurement-status { padding:6px 8px; border-radius:8px; font-size:10px; }
 .procurement-table time { font-size:13px; }
 .procurement-table .procurement-price { grid-column:1/-1; }
 .procurement-price strong { font-size:17px; }
 .procurement-price small { font-size:10px; }
 .procurement-table .procurement-actions { display:flex; justify-content:space-between; align-items:center; grid-column:1/-1; padding-top:13px; border-top:1px solid #e2edf3; }
 .procurement-actions > a { font-size:12px; gap:12px; }
 .procurement-document { float:none; width:40px; height:40px; border-radius:11px; }
 .procurement-data-note { margin-top:20px; font-size:11px; }
 .procurement-empty { padding:26px 18px; }
 .procurement-dialog { margin:auto 0 0; width:100%; max-width:none; max-height:calc(100dvh - 24px); padding:30px 22px calc(26px + env(safe-area-inset-bottom)); border-radius:24px 24px 0 0; }
 .procurement-dialog h2 { margin-top:20px; font-size:23px; }
 .procurement-dialog dl > div { font-size:12px; }
 .procurement-dialog-link { width:100%; padding:13px 16px; font-size:12px; }
}
@keyframes procurement-enter { from {opacity:0;transform:translateY(9px)} to {opacity:1;transform:translateY(0)} }
@keyframes procurement-photo-enter { from {opacity:.7;transform:scale(1.035)} to {opacity:1;transform:scale(1)} }
@media(prefers-reduced-motion:reduce) { .procurement-page * { animation:none!important; transition:none!important; } .procurement-document:hover { transform:none; } }
