*{box-sizing:border-box}body{margin:0;font-family:Arial,Helvetica,sans-serif;background:#f4f6f8;color:#17202a}.page{min-height:100vh;padding:60px 24px}.card{width:100%;max-width:850px;margin:0 auto;background:#fff;border-radius:12px;padding:48px;box-shadow:0 8px 30px #00000014}.brand{color:#52606d;font-size:13px;font-weight:700;letter-spacing:1px;text-transform:uppercase}.tender-number{margin-top:30px;color:#52606d;font-size:15px}h1{margin:8px 0 12px;font-size:36px;line-height:1.2}h2{margin:0 0 20px;font-size:22px}.description{max-width:700px;color:#5f6c7b;font-size:17px;line-height:1.6}.participant{display:flex;flex-direction:column;gap:5px;margin:32px 0;padding:18px 20px;background:#f6f8fa;border-radius:8px}.participant span{color:#66788a;font-size:13px;text-transform:uppercase}.documents{margin-top:40px}.document{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:18px 0;border-top:1px solid #e6e9ed}.document:last-child{border-bottom:1px solid #e6e9ed}.document small{display:block;margin-top:6px;color:#7b8794}.download{display:inline-block;padding:10px 18px;border-radius:6px;background:#17202a;color:#fff;text-decoration:none;font-weight:600}.download:hover{opacity:.88}.error{margin-top:25px;padding:16px;border-radius:8px;background:#fff1f0;color:#9f1c16}.footer-note{margin-top:40px;color:#7b8794;font-size:13px;line-height:1.5}@media(max-width:600px){.page{padding:20px 12px}.card{padding:28px 20px}h1{font-size:28px}.document{align-items:flex-start;flex-direction:column}.download{width:100%;text-align:center}}.admin-login{max-width:520px}.admin-subtitle{margin:0 0 32px;color:#66788a;font-size:18px}.admin-form{display:flex;flex-direction:column;gap:22px;margin-top:30px}.admin-form label{display:flex;flex-direction:column;gap:8px;color:#52606d;font-size:14px;font-weight:600}.admin-form input{width:100%;padding:13px 14px;border:1px solid #cbd2d9;border-radius:6px;background:#fff;color:#17202a;font:inherit}.admin-form input:focus{border-color:#52606d;outline:none}.primary-button,.secondary-button{border:0;border-radius:6px;padding:11px 18px;font:inherit;font-weight:600;cursor:pointer}.primary-button{background:#17202a;color:#fff}.primary-button:disabled{cursor:not-allowed;opacity:.45}.secondary-button{border:1px solid #cbd2d9;background:#fff;color:#17202a}.admin-dashboard{max-width:1050px}.admin-header,.admin-toolbar{display:flex;align-items:center;justify-content:space-between;gap:24px}.admin-header{padding-bottom:28px;border-bottom:1px solid #e6e9ed}.admin-toolbar{margin:32px 0 24px}.admin-toolbar h2{margin-bottom:5px}.admin-toolbar p{margin:0;color:#66788a}.tender-list{border-top:1px solid #e6e9ed}.admin-tender{display:flex;align-items:center;justify-content:space-between;gap:30px;padding:22px 0;border-bottom:1px solid #e6e9ed}.admin-tender h3{margin:6px 0;font-size:18px}.admin-tender small{color:#7b8794}.status{padding:6px 10px;border-radius:20px;background:#eef1f4;font-size:12px;font-weight:700;text-transform:uppercase}.status-published{background:#e9f7ef;color:#1e7045}.status-closed{background:#f1f2f4;color:#66788a}.status-draft{background:#fff6dd;color:#805b10}@media(max-width:700px){.admin-header,.admin-toolbar,.admin-tender{align-items:stretch;flex-direction:column}.admin-header .secondary-button,.admin-toolbar .primary-button{width:100%}}.participant-access{margin-top:28px}.participant-access h2{margin-bottom:20px}.participant-access h3{margin:18px 0 12px}.participant-row{display:grid;grid-template-columns:minmax(220px,1fr) minmax(260px,1fr) auto;gap:10px;align-items:center;margin-bottom:10px}.participant-row input{width:100%;box-sizing:border-box;padding:10px 12px;border:1px solid #cfd6dd;border-radius:4px;font-size:14px}.participant-access input[type=datetime-local]{padding:9px 12px;margin-left:10px;border:1px solid #cfd6dd;border-radius:4px}.participant-access>.secondary-button{margin:4px 0 16px}.participant-access>.primary-button{margin-top:14px}.created-bulk-links{margin-top:24px}.created-access-link{padding:14px 0;border-bottom:1px solid #e6e9ed}.created-access-link input{width:min(520px,70%);box-sizing:border-box;padding:9px 10px;margin-right:8px}@media(max-width:700px){.participant-row{grid-template-columns:1fr}.participant-row .secondary-button{width:100%}.participant-access input[type=datetime-local]{display:block;width:100%;margin:8px 0 0;box-sizing:border-box}.created-access-link input{width:100%;margin:0 0 8px}}.access-actions{display:flex;align-items:flex-end;gap:16px;margin-top:18px;margin-bottom:8px}.access-expiry{display:flex;flex-direction:column;gap:6px;font-size:14px;font-weight:600}.access-expiry input[type=datetime-local]{margin:0;min-width:220px;height:42px;box-sizing:border-box}.access-actions .primary-button{height:42px;margin:0}@media(max-width:700px){.access-actions{flex-direction:column;align-items:stretch}.access-expiry input[type=datetime-local],.access-actions .primary-button{width:100%}}.public-header{background:#fff;border-bottom:1px solid #dfe3e8}.public-header-inner{max-width:1180px;margin:0 auto;padding:24px 32px;display:flex;align-items:center;justify-content:space-between;gap:40px}.public-project{display:flex;flex-direction:column;gap:5px}.public-project strong{font-size:20px;font-weight:700;letter-spacing:.4px}.public-project span{font-size:13px;color:#66788a}.public-portal-title{font-size:14px;font-weight:700;letter-spacing:1.5px;white-space:nowrap}@media(max-width:700px){.public-header-inner{padding:20px;flex-direction:column;align-items:flex-start;gap:14px}.public-project strong{font-size:18px}.public-portal-title{padding-top:12px;border-top:1px solid #e6e9ed;width:100%}}.public-tender-info{padding-bottom:30px;margin-bottom:30px;border-bottom:1px solid #e1e5e9}.public-tender-label{margin-bottom:8px;color:#66788a;font-size:14px;font-weight:700;letter-spacing:1.5px}.public-tender-number{margin-bottom:10px;color:#10233f;font-size:30px;font-weight:700;line-height:1.2}.public-tender-info h1{margin:0 0 14px;font-size:28px;line-height:1.25}.public-tender-info .description{max-width:780px;margin:0;color:#455568;font-size:16px;line-height:1.6}@media(max-width:700px){.public-tender-number{font-size:25px}.public-tender-info h1{font-size:23px}}.public-documents h2{margin:0 0 20px;font-size:22px}.document-table{width:100%;border-top:1px solid #dfe3e8}.document-table-header,.document-table-row{display:grid;grid-template-columns:50px minmax(0,1fr) 120px 130px;gap:16px;align-items:center}.document-table-header{padding:12px 14px;background:#f5f7f9;border-bottom:1px solid #dfe3e8;color:#66788a;font-size:13px;font-weight:700}.document-table-row{padding:14px;border-bottom:1px solid #e1e5e9}.document-index,.document-size{color:#455568;font-size:14px}.document-name{min-width:0;overflow-wrap:anywhere;font-size:14px}.document-table-row .download{justify-self:end;min-width:100px;box-sizing:border-box;text-align:center}@media(max-width:700px){.document-table-header{display:none}.document-table-row{grid-template-columns:32px 1fr;gap:8px 12px;padding:16px 4px}.document-index{grid-row:1 / 4;font-weight:700}.document-name,.document-size{grid-column:2}.document-table-row .download{grid-column:2;justify-self:start;margin-top:4px}}.public-access-expiry{margin-top:28px;padding:16px 18px;background:#f0f6fc;border:1px solid #d7e5f3;border-radius:6px;color:#34465a;font-size:14px}.public-access-expiry strong{color:#10233f}@media(max-width:700px){.public-access-expiry{margin-top:20px;padding:14px}}.admin-header-new{padding-bottom:22px;margin-bottom:28px;border-bottom:1px solid #dfe3e8}.admin-project{display:flex;flex-direction:column;gap:5px}.admin-project strong{font-size:20px;font-weight:700;letter-spacing:.4px}.admin-project span{color:#66788a;font-size:13px}.admin-header-right{display:flex;align-items:center;gap:18px}.admin-portal-title{font-size:14px;font-weight:700;letter-spacing:1.5px;white-space:nowrap}.admin-section-title{padding-left:18px;border-left:1px solid #dfe3e8;color:#66788a;font-size:14px}@media(max-width:700px){.admin-header-new{gap:20px}.admin-project strong{font-size:18px}.admin-header-right{width:100%;flex-wrap:wrap;gap:12px}.admin-section-title{padding-left:12px}.admin-header-right .secondary-button{width:100%}}
