.egpportal-wrap{max-width:1180px;margin:1.5rem auto;padding:0 1rem;font-family:Tahoma,Arial,sans-serif}
.egpportal-wrap h1{color:#075d47;margin:0 0 .4rem}.egpportal-wrap h2{color:#075d47;font-size:1.25rem;margin:0 0 1rem}
.egpportal-note{color:#52616d;margin:.2rem 0 1.2rem}.egpportal-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.25rem}
.egpportal-panel{background:#fff;border:1px solid #d8e1e5;border-radius:10px;padding:1.1rem;box-shadow:0 1px 3px rgba(0,0,0,.04)}
.egpportal-card{border-left:5px solid #0c7255;background:#f9fcfb;padding:.85rem 1rem;margin-bottom:.8rem;border-radius:4px}
.egpportal-card h3{font-size:1.05rem;margin:0 0 .35rem}.egpportal-card h3 a{color:#123e34;text-decoration:none}.egpportal-meta{font-size:.91rem;color:#55616b;line-height:1.65}
.egpportal-actions{display:flex;gap:.55rem;flex-wrap:wrap;margin:.75rem 0}.egpportal-btn{display:inline-block;padding:.52rem .8rem;border:0;border-radius:5px;background:#0a6a4c;color:#fff!important;text-decoration:none;cursor:pointer;font:inherit}.egpportal-btn.secondary{background:#5d6870}.egpportal-btn.warn{background:#9b3b20}.egpportal-btn.light{background:#e7f2ee;color:#075d47!important}
.egpportal-table{width:100%;border-collapse:collapse;background:#fff}.egpportal-table th,.egpportal-table td{border:1px solid #d9e2e5;padding:.65rem;vertical-align:top;text-align:left}.egpportal-table th{background:#eef7f3;color:#135340}
.egpportal-form{background:#fff;border:1px solid #d8e1e5;border-radius:10px;padding:1.2rem}.egpportal-form label{display:block;font-weight:700;margin:.75rem 0 .25rem}.egpportal-form input,.egpportal-form select,.egpportal-form textarea{box-sizing:border-box;width:100%;padding:.58rem;border:1px solid #b9c7ce;border-radius:4px;font:inherit}.egpportal-form textarea{min-height:88px}.egpportal-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.egpportal-help{font-size:.9rem;color:#5d6870}.egpportal-files{padding:0;margin:.5rem 0;list-style:none}.egpportal-files li{padding:.5rem;background:#f5f8f9;margin-bottom:.35rem;border-radius:4px}.egpportal-status{font-weight:700}.egpportal-status.pending{color:#a35b00}.egpportal-status.published{color:#087142}.egpportal-status.returned{color:#b02c2c}.egpportal-message{padding:.75rem 1rem;border-radius:5px;margin:0 0 1rem;background:#e9f8ef;color:#0b5f38}.egpportal-error{padding:.75rem 1rem;border-radius:5px;margin:0 0 1rem;background:#ffeded;color:#9d1e24}.egpportal-login{padding:1rem;background:#fff7d8;border:1px solid #e7ca6b;border-radius:6px;margin:1rem 0}.egpportal-footer-note{font-size:.9rem;color:#5a676e;margin-top:1rem}
@media(max-width:760px){.egpportal-grid,.egpportal-row{grid-template-columns:1fr}.egpportal-table{display:block;overflow:auto;white-space:nowrap}}


.egpportal-label{display:block;font-weight:700;margin:14px 0 6px}
.egpportal-input{width:100%;max-width:100%;padding:10px 12px;border:1px solid #c7d1d8;border-radius:5px;box-sizing:border-box;font:inherit}


/* Build008: dedicated full-page workspace rendered with tmpl=component */
html{background:#eef5f2}
body{min-height:100vh;background:#eef5f2}
.egpportal-wrap{max-width:1280px;margin:0 auto;padding:28px 22px 42px}
.egpportal-wrap>h1{font-size:1.9rem;border-bottom:3px solid #0a6a4c;padding-bottom:.7rem;margin-bottom:.8rem}
@media(max-width:760px){
  .egpportal-wrap{padding:18px 12px 28px}
  .egpportal-wrap>h1{font-size:1.45rem}
}


/* Build009: styling for Joomla tmpl=component workspace mode. */
body.com_egpportal,
body{
    background:#eef5f2;
}
.egpportal-wrap{
    box-sizing:border-box;
    width:100%;
    max-width:1240px;
    min-height:100vh;
    margin:0 auto;
    padding:28px 24px 48px;
    background:#eef5f2;
}
.egpportal-wrap > h1{
    margin:0 0 1rem;
    padding:0 0 .7rem;
    color:#075d47;
    font-size:2rem;
    border-bottom:3px solid #0a6a4c;
}
@media (max-width:760px) {
    .egpportal-wrap{padding:18px 12px 32px}
    .egpportal-wrap > h1{font-size:1.55rem}
}


/* Build012: make the direct link to each individual announcement clear. */
.egpportal-public-detail-link {
    margin-top: .8rem;
}
.egpportal-public-detail-link .egpportal-btn {
    font-size: .92rem;
}


/* Build013: compact public list items to save front-page space. */
.egpportal-card-compact{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:1rem;
    padding:.7rem .9rem;
}
.egpportal-card-compact-main{
    min-width:0;
    flex:1 1 auto;
}
.egpportal-card-compact h3{
    margin:0 0 .15rem;
    font-size:1rem;
    line-height:1.35;
}
.egpportal-card-compact .egpportal-meta{
    line-height:1.45;
    font-size:.9rem;
}
.egpportal-public-detail-link.compact{
    margin-top:0;
    flex:0 0 auto;
    white-space:nowrap;
}
.egpportal-detail-inline{
    color:#0a6a4c;
    text-decoration:none;
    font-weight:700;
}
.egpportal-detail-inline:hover{
    text-decoration:underline;
}
@media (max-width:760px){
    .egpportal-card-compact{
        display:block;
    }
    .egpportal-public-detail-link.compact{
        margin-top:.45rem;
    }
}


/* Build014: modal preview and inline PDF reader for each announcement. */
.egpportal-modal[hidden]{display:none!important}
.egpportal-modal{position:fixed;inset:0;z-index:99999}
.egpportal-modal-backdrop{position:absolute;inset:0;background:rgba(15,24,32,.58)}
.egpportal-modal-dialog{position:relative;z-index:1;width:min(1280px,96vw);height:min(92vh,980px);margin:4vh auto;background:#fff;border-radius:14px;box-shadow:0 24px 80px rgba(0,0,0,.3);display:flex;flex-direction:column;overflow:hidden}
.egpportal-modal-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem 1.25rem;background:#0a6a4c;color:#fff}
.egpportal-modal-header h2{margin:0;font-size:1.15rem;color:#fff}
.egpportal-modal-close{background:transparent;border:0;color:#fff;font-size:2rem;line-height:1;cursor:pointer;padding:0 .25rem}
.egpportal-modal-body{flex:1 1 auto;background:#eef5f2}
.egpportal-modal-body iframe{display:block;width:100%;height:100%;border:0;background:#fff}
.egpportal-pdf-toolbar{display:flex;gap:.6rem;align-items:center;flex-wrap:wrap;margin:.5rem 0 1rem}
.egpportal-file-tab{border:1px solid #bcd1ca;background:#f4fbf8;color:#0a6a4c;border-radius:999px;padding:.48rem .85rem;cursor:pointer;font:inherit;font-size:.92rem}
.egpportal-file-tab.active{background:#0a6a4c;color:#fff;border-color:#0a6a4c}
.egpportal-pdf-viewer-wrap{margin:0 0 1rem;border:1px solid #d8e1e5;border-radius:10px;overflow:hidden;background:#fff}
.egpportal-pdf-viewer{display:block;width:100%;height:75vh;min-height:620px;border:0;background:#fff}
@media (max-width:760px){
  .egpportal-modal-dialog{width:98vw;height:96vh;margin:2vh auto}
  .egpportal-modal-header{padding:.8rem 1rem}
  .egpportal-modal-header h2{font-size:1rem}
  .egpportal-pdf-viewer{height:62vh;min-height:420px}
}

/* Build015: large floating document reader, modeled after the hospital document viewer. */
.egpportal-modal{z-index:2147483000}
.egpportal-modal-dialog{
    width:min(1600px,98vw);
    height:min(97vh,1180px);
    margin:1.5vh auto;
    border-radius:14px;
    overflow:hidden;
    background:#fff;
}
.egpportal-modal-dialog > iframe{
    display:block;
    width:100%;
    height:100%;
    border:0;
    background:#fff;
}
.egpportal-reader{
    width:100%;
    height:100vh;
    min-height:100vh;
    display:flex;
    flex-direction:column;
    margin:0;
    padding:0;
    overflow:hidden;
    background:#edf2f4;
    font-family:Tahoma,Arial,sans-serif;
    box-sizing:border-box;
}
.egpportal-reader-header{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:1rem;
    padding:.85rem 1.1rem;
    background:#07624c;
    color:#fff;
    box-shadow:0 2px 7px rgba(0,0,0,.15);
}
.egpportal-reader-title{
    display:flex;
    align-items:center;
    gap:.65rem;
    min-width:0;
    font-size:1rem;
}
.egpportal-reader-title strong{
    overflow:hidden;
    white-space:nowrap;
    text-overflow:ellipsis;
}
.egpportal-reader-icon{font-size:1.25rem;color:#d8fff1}
.egpportal-reader-header-actions{display:flex;align-items:center;gap:.5rem;flex:0 0 auto}
.egpportal-reader-action{
    display:inline-block;
    border:1px solid rgba(255,255,255,.8);
    border-radius:6px;
    padding:.42rem .7rem;
    background:transparent;
    color:#fff!important;
    text-decoration:none;
    cursor:pointer;
    font:inherit;
    font-size:.9rem;
}
.egpportal-reader-action.primary{background:#11a880;border-color:#11a880}
.egpportal-reader-close{
    width:35px;
    height:35px;
    border:0;
    border-radius:6px;
    background:transparent;
    color:#fff;
    font-size:1.8rem;
    line-height:1;
    cursor:pointer;
}
.egpportal-reader-close:hover,.egpportal-reader-action:hover{background:rgba(255,255,255,.14)}
.egpportal-reader-action.primary:hover{background:#0d8c6b}
.egpportal-reader-info{
    flex:0 0 auto;
    padding:.55rem 1rem;
    background:#fff;
    border-bottom:1px solid #d9e2e5;
}
.egpportal-reader-info details{font-size:.9rem;color:#42525d}
.egpportal-reader-info summary{font-weight:700;color:#0a6a4c;cursor:pointer}
.egpportal-reader-info .egpportal-announcement-facts{margin-top:.65rem}
.egpportal-reader-document{
    flex:1 1 auto;
    min-height:0;
    display:flex;
    flex-direction:column;
    padding:.7rem 1rem 1rem;
}
.egpportal-reader-document .reader-toolbar{flex:0 0 auto;margin:0 0 .6rem}
.egpportal-reader-document .reader-viewer-wrap{
    flex:1 1 auto;
    min-height:0;
    margin:0;
    border-radius:8px;
}
.egpportal-reader-document .egpportal-pdf-viewer{
    height:100%;
    min-height:0;
}
@media(max-width:760px){
    .egpportal-modal-dialog{width:100vw;height:100vh;margin:0;border-radius:0}
    .egpportal-reader-header{padding:.7rem .75rem}
    .egpportal-reader-title{max-width:42vw;font-size:.9rem}
    .egpportal-reader-header-actions{gap:.3rem}
    .egpportal-reader-action{padding:.38rem .5rem;font-size:.78rem}
    .egpportal-reader-document{padding:.55rem}
}


/* Build016: normal detail page link is always available; floating PDF reader is optional. */
.egpportal-public-detail-link.compact{display:flex;align-items:center;gap:.65rem;white-space:nowrap}
button.egpportal-open-preview{border:0;border-radius:5px;background:#0a6a4c;color:#fff;padding:.4rem .6rem;font:inherit;font-size:.86rem;cursor:pointer}
button.egpportal-open-preview:hover{background:#075d47}
@media(max-width:760px){.egpportal-public-detail-link.compact{gap:.5rem;flex-wrap:wrap;white-space:normal}}


/* Build019: detail page + large floating PDF preview. */
.egpportal-detail-panel{max-width:1080px}
.egpportal-detail-documents-title{margin-top:1.3rem!important}
.egpportal-document-list{display:flex;flex-direction:column;gap:.7rem;margin:.75rem 0 1.25rem}
.egpportal-document-row{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.85rem 1rem;background:#f6faf8;border:1px solid #d5e5df;border-left:5px solid #0a6a4c;border-radius:6px}
.egpportal-document-name{display:flex;flex-direction:column;gap:.18rem;min-width:0;color:#123e34}
.egpportal-document-name strong{overflow-wrap:anywhere}
.egpportal-document-name span{font-size:.86rem;color:#607078}
.egpportal-document-actions{display:flex;align-items:center;gap:.55rem;flex:0 0 auto}
.egpportal-preview-file{border:0;border-radius:5px;background:#0a6a4c;color:#fff;padding:.52rem .8rem;font:inherit;cursor:pointer;white-space:nowrap}
.egpportal-preview-file:hover{background:#075d47}
.egpportal-document-modal[hidden]{display:none!important}
.egpportal-document-modal{position:fixed;inset:0;z-index:2147483600!important}
.egpportal-document-modal-backdrop{position:absolute;inset:0;background:rgba(20,31,41,.64)}
.egpportal-document-modal-dialog{position:relative;z-index:1;display:flex;flex-direction:column;width:min(1540px,97vw);height:min(96vh,1120px);margin:2vh auto;background:#fff;border-radius:14px;box-shadow:0 26px 90px rgba(0,0,0,.42);overflow:hidden}
.egpportal-document-modal-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.8rem 1.1rem;background:#075d47;color:#fff}
.egpportal-document-modal-title{display:flex;align-items:center;gap:.7rem;min-width:0}
.egpportal-document-modal-title span{display:inline-block;font-size:.82rem;padding:.25rem .48rem;border-radius:4px;background:rgba(255,255,255,.18)}
.egpportal-document-modal-title strong{font-size:1rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.egpportal-document-modal-controls{display:flex;align-items:center;gap:.45rem;flex:0 0 auto}
.egpportal-document-modal-controls button,.egpportal-document-modal-controls a{display:inline-block;border:1px solid rgba(255,255,255,.8);border-radius:5px;background:transparent;color:#fff!important;padding:.42rem .68rem;font:inherit;font-size:.9rem;text-decoration:none;cursor:pointer}
.egpportal-document-modal-controls a{background:#12a77f;border-color:#12a77f}
.egpportal-document-modal-controls .close{width:35px;height:35px;padding:0;border:0;font-size:1.8rem;line-height:1}
.egpportal-document-modal-controls button:hover,.egpportal-document-modal-controls a:hover{background:rgba(255,255,255,.17)}
.egpportal-document-modal-controls a:hover{background:#0d8d6d}
.egpportal-document-modal-body{flex:1 1 auto;min-height:0;background:#2d3336}
.egpportal-document-modal-body iframe{display:block;width:100%;height:100%;border:0;background:#fff}
@media(max-width:760px){
  .egpportal-document-row{align-items:flex-start;flex-direction:column}
  .egpportal-document-actions{width:100%;flex-wrap:wrap}
  .egpportal-document-modal-dialog{width:100vw;height:100vh;margin:0;border-radius:0}
  .egpportal-document-modal-header{align-items:flex-start;flex-direction:column;padding:.75rem}
  .egpportal-document-modal-title strong{max-width:76vw}
  .egpportal-document-modal-controls{width:100%;flex-wrap:wrap}
}


/* Build020: direct full-page PDF actions — no small preview popup. */
.egpportal-document-actions{
    display:flex;
    align-items:center;
    gap:.65rem;
    flex:0 0 auto;
}
.egpportal-document-print,
.egpportal-document-download{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:.35rem;
    min-height:40px;
    box-sizing:border-box;
    padding:.55rem .95rem;
    border-radius:8px;
    text-decoration:none!important;
    font-weight:700;
    font-size:.92rem;
    line-height:1;
    transition:transform .15s ease, box-shadow .15s ease, background .15s ease;
}
.egpportal-document-print{
    background:linear-gradient(135deg,#2563eb,#1d4ed8);
    color:#fff!important;
    box-shadow:0 4px 12px rgba(37,99,235,.24);
}
.egpportal-document-print::before{content:'🖨';font-size:1rem}
.egpportal-document-download{
    background:linear-gradient(135deg,#0f9f75,#047857);
    color:#fff!important;
    box-shadow:0 4px 12px rgba(4,120,87,.22);
}
.egpportal-document-download::before{content:'↓';font-size:1.2rem;font-weight:700;line-height:.8}
.egpportal-document-print:hover,
.egpportal-document-download:hover{
    transform:translateY(-1px);
    color:#fff!important;
    box-shadow:0 7px 18px rgba(15,23,42,.22);
}
.egpportal-document-print:focus,
.egpportal-document-download:focus{
    outline:3px solid rgba(59,130,246,.32);
    outline-offset:2px;
}
@media(max-width:760px){
    .egpportal-document-actions{width:100%;flex-wrap:wrap}
    .egpportal-document-print,
    .egpportal-document-download{flex:1 1 150px}
}


/* Build022: structured project detail and clearer PDF file information. */
.egpportal-project-section{
    margin:0 0 1.15rem;
    padding:1rem 1.05rem;
    border:1px solid #d7e8e1;
    border-radius:10px;
    background:linear-gradient(180deg,#fbfefd 0%,#f4faf7 100%);
}
.egpportal-project-heading{
    margin:0 0 .8rem!important;
    padding-bottom:.55rem;
    border-bottom:1px solid #d7e8e1;
    color:#075d47;
    font-size:1.16rem!important;
}
.egpportal-project-facts{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:.55rem 1rem;
    margin:0;
}
.egpportal-project-facts>div{
    display:grid;
    grid-template-columns:132px minmax(0,1fr);
    gap:.45rem;
    align-items:start;
    padding:.35rem 0;
}
.egpportal-project-facts>div:first-child{
    grid-column:1/-1;
}
.egpportal-project-facts dt{
    margin:0;
    font-weight:700;
    color:#385350;
}
.egpportal-project-facts dt::after{content:':'}
.egpportal-project-facts dd{
    margin:0;
    color:#162c2a;
    font-weight:500;
    overflow-wrap:anywhere;
}
.egpportal-project-facts>div:first-child dd{
    color:#075d47;
    font-weight:700;
}
.egpportal-document-row{
    align-items:center;
}
.egpportal-document-icon{
    display:flex;
    align-items:center;
    justify-content:center;
    flex:0 0 auto;
    width:44px;
    height:50px;
    border-radius:8px;
    background:linear-gradient(135deg,#f43f5e,#be123c);
    color:#fff;
    font-family:Arial,sans-serif;
    font-size:.72rem;
    font-weight:800;
    letter-spacing:.04em;
    box-shadow:0 4px 10px rgba(190,18,60,.18);
}
.egpportal-document-name{
    flex:1 1 auto;
}
.egpportal-document-line{
    display:flex;
    align-items:baseline;
    gap:.55rem;
    min-width:0;
}
.egpportal-document-label{
    display:inline-block;
    flex:0 0 82px;
    color:#607078;
    font-size:.83rem;
    font-weight:700;
}
.egpportal-document-size{
    color:#0a6a4c;
    font-size:.92rem;
    font-weight:700;
}
@media(max-width:760px){
    .egpportal-project-facts{grid-template-columns:1fr}
    .egpportal-project-facts>div,
    .egpportal-project-facts>div:first-child{grid-column:auto}
    .egpportal-project-facts>div{grid-template-columns:116px minmax(0,1fr)}
    .egpportal-document-row{align-items:flex-start}
    .egpportal-document-icon{width:38px;height:44px}
    .egpportal-document-line{align-items:flex-start;flex-direction:column;gap:.1rem}
    .egpportal-document-label{flex:auto}
}


/* Build023: compact one-line project facts and easier PDF filename display. */
.egpportal-project-section-simple{
    padding:1rem 1.05rem;
}
.egpportal-project-facts-simple{
    margin:0;
}
.egpportal-project-facts-simple p{
    margin:.42rem 0;
    color:#162c2a;
    line-height:1.55;
    overflow-wrap:anywhere;
}
.egpportal-project-facts-simple p strong{
    display:inline-block;
    min-width:155px;
    color:#385350;
}
.egpportal-project-facts-simple p:first-child{
    color:#075d47;
    font-weight:600;
}
.egpportal-document-name-simple{
    display:flex;
    align-items:baseline;
    flex-wrap:wrap;
    gap:.5rem;
}
.egpportal-document-filename{
    color:#162c2a;
    overflow-wrap:anywhere;
}
.egpportal-document-name-simple .egpportal-document-size{
    color:#5a676e;
    font-size:.9rem;
    white-space:nowrap;
}
.egpportal-document-name-simple .egpportal-document-size::before{
    content:'• ';
    color:#94a3b8;
}
@media(max-width:760px){
    .egpportal-project-facts-simple p strong{
        min-width:0;
    }
}


/* Build024: import e-GP list from an Excel file without relying on browser session URLs. */
.egpportal-import-callout{margin:0 0 1rem;padding:1rem 1.1rem;border:1px solid #b9ded1;border-left:5px solid #0a6a4c;background:#f6fcf9;border-radius:8px;color:#245344}
.egpportal-import-callout span{display:inline-block;margin:.25rem 0 .65rem;color:#52616d}
.egpportal-import-panel{max-width:850px}
.egpportal-import-warning{margin:0 0 1rem;padding:.8rem 1rem;border-radius:7px;background:#fff8df;color:#775800;border:1px solid #f0d990}
.egpportal-import-table-wrap{overflow:auto;margin:1rem 0;border:1px solid #d9e2e5;border-radius:8px;background:#fff}
.egpportal-import-table{min-width:980px;margin:0}
.egpportal-import-table select{min-width:210px;padding:.45rem;border:1px solid #b9c7ce;border-radius:4px;background:#fff;font:inherit}
.egpportal-import-source{font-size:.9rem;color:#0a6a4c;font-weight:700;text-decoration:none}
.egpportal-import-source:hover{text-decoration:underline}



/* Build025: public e-GP RSS connectivity diagnostic (runs from the hospital hosting). */
.egpportal-rss-guide{margin:0 0 1rem;padding:1rem 1.1rem;border:1px solid #b9d8ea;border-left:5px solid #2563eb;border-radius:8px;background:#f4f9ff;color:#1f496e}
.egpportal-rss-guide span{display:inline-block;margin-top:.35rem;color:#52616d;font-size:.92rem}
.egpportal-rss-panel{max-width:930px}
.egpportal-rss-result{margin-top:1rem;max-width:1000px}
.egpportal-rss-result .egpportal-table th{width:250px;white-space:nowrap}
.egpportal-rss-error{margin-top:1rem;padding:.8rem 1rem;border:1px solid #efb5b5;border-radius:7px;background:#fff2f2;color:#9b1c1c}
@media(max-width:760px){
  .egpportal-rss-result .egpportal-table th{width:auto;white-space:normal}
}


/* Build026: RSS import preview and safe archive/recycle-bin controls. */
.egpportal-inline-form{display:inline-block;margin:0 .35rem .35rem 0}
.egpportal-rss-preview-summary{margin:.8rem 0;padding:.8rem 1rem;border-radius:7px;background:#edf7f3;border:1px solid #cfe6dc;color:#075d47}
.egpportal-rss-preview .egpportal-table td{vertical-align:middle}
.egpportal-rss-preview .egpportal-table input[type="checkbox"]{width:auto;transform:scale(1.15)}
.egpportal-rss-preview .egpportal-table select{min-width:180px;padding:.42rem}
.egpportal-rss-source{font-size:.88rem;word-break:break-all}


/* Build027: direct safe-delete control in management table. */
.egpportal-dashboard-delete{display:inline-block;margin:.35rem 0 0 .35rem}
.egpportal-delete-hint{margin:-.2rem 0 .85rem;color:#775800}
@media(max-width:760px){.egpportal-dashboard-delete{margin:.35rem .3rem 0 0}}


/* Build033: public full-list pages for procurement and winner announcements. */
.egpportal-panel-all-link{
    margin-top:.75rem;
    text-align:right;
}
.egpportal-panel-all-link a{
    color:#0a6a4c;
    font-weight:700;
    text-decoration:none;
}
.egpportal-panel-all-link a:hover{ text-decoration:underline; }
body.egpportal-list-view .egpportal-wrap{
    max-width:1260px;
}
.egpportal-list-panel{
    margin:0 auto;
    max-width:100%;
    padding:1.25rem;
    border:1px solid #d7e4e0;
    border-radius:12px;
    background:#fff;
    box-shadow:0 4px 20px rgba(24,58,52,.06);
}
.egpportal-list-intro{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:1rem;
    margin:0 0 1rem;
    padding:1rem 1.1rem;
    border-left:5px solid #0a6a4c;
    border-radius:8px;
    background:#f2f9f6;
}
.egpportal-list-intro p{
    margin:0;
    color:#385350;
    line-height:1.55;
}
.egpportal-list-switch{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    flex:0 0 auto;
    min-height:38px;
    padding:.45rem .8rem;
    border:1px solid #0a6a4c;
    border-radius:7px;
    color:#0a6a4c!important;
    font-weight:700;
    text-decoration:none!important;
    white-space:nowrap;
}
.egpportal-list-switch:hover{ background:#e7f4ee; }
.egpportal-list-search{
    margin:1.15rem 0 .8rem;
}
.egpportal-list-search label{
    display:block;
    margin:0 0 .45rem;
    color:#173e35;
    font-weight:700;
}
.egpportal-list-search-row{
    display:flex;
    align-items:center;
    gap:.65rem;
}
.egpportal-list-search input[type="search"]{
    min-width:0;
    flex:1 1 auto;
    padding:.7rem .85rem;
    border:1px solid #c7d7d1;
    border-radius:7px;
    color:#243b37;
    font:inherit;
    line-height:1.3;
}
.egpportal-list-search button,
.egpportal-list-clear{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:42px;
    padding:.58rem .95rem;
    border:0;
    border-radius:7px;
    background:#0a6a4c;
    color:#fff!important;
    font:inherit;
    font-weight:700;
    text-decoration:none!important;
    cursor:pointer;
}
.egpportal-list-clear{ background:#66757c; }
.egpportal-list-summary{
    margin:.8rem 0;
    color:#4c5f5b;
    font-size:.95rem;
    text-align:right;
}
.egpportal-list-table-wrap{
    overflow-x:auto;
    border:1px solid #dce7e3;
    border-radius:9px;
    background:#fff;
}
.egpportal-list-table{
    width:100%;
    min-width:860px;
    border-collapse:collapse;
}
.egpportal-list-table th,
.egpportal-list-table td{
    padding:.85rem .8rem;
    border-bottom:1px solid #e4ece9;
    text-align:left;
    vertical-align:middle;
}
.egpportal-list-table th{
    background:#edf7f2;
    color:#184f41;
    font-weight:700;
    white-space:nowrap;
}
.egpportal-list-table tbody tr:hover{ background:#f7fbf9; }
.egpportal-list-table tbody tr:last-child td{ border-bottom:0; }
.egpportal-col-date{ width:126px; white-space:nowrap; }
.egpportal-col-no{ width:46px; text-align:center!important; color:#5d706b; }
.egpportal-col-open{ width:66px; text-align:center!important; }
.egpportal-list-title a{
    color:#133f35!important;
    font-weight:700;
    line-height:1.55;
    text-decoration:none!important;
}
.egpportal-list-title a:hover{ color:#0a6a4c!important; text-decoration:underline!important; }
.egpportal-list-title span{
    display:block;
    margin-top:.18rem;
    color:#6b7b78;
    font-size:.86rem;
}
.egpportal-list-date{ white-space:nowrap; color:#455a54; }
.egpportal-list-unit{ color:#455a54; }
.egpportal-list-open{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:34px;
    height:34px;
    border:1px solid #20a0dd;
    border-radius:6px;
    color:#078fd0!important;
    font-size:1.2rem;
    font-weight:700;
    text-decoration:none!important;
}
.egpportal-list-open:hover{ background:#eaf8ff; }
.egpportal-list-empty{
    padding:2rem 1rem;
    border:1px dashed #b9ccc5;
    border-radius:8px;
    background:#fafdfb;
    color:#63726e;
    text-align:center;
}
.egpportal-pagination{
    display:flex;
    align-items:center;
    justify-content:center;
    gap:.35rem;
    flex-wrap:wrap;
    margin:1.2rem 0 0;
}
.egpportal-pagination a{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-width:36px;
    height:36px;
    padding:0 .5rem;
    border:1px solid #c8d9d2;
    border-radius:6px;
    color:#0a6a4c!important;
    font-weight:700;
    text-decoration:none!important;
}
.egpportal-pagination a.current,
.egpportal-pagination a:hover{
    border-color:#0a6a4c;
    background:#0a6a4c;
    color:#fff!important;
}
.egpportal-back-to-list{ max-width:100%; line-height:1.35; }
@media(max-width:760px){
    .egpportal-list-panel{ padding:.85rem; border-radius:9px; }
    .egpportal-list-intro{ align-items:flex-start; flex-direction:column; padding:.85rem; }
    .egpportal-list-switch{ width:100%; }
    .egpportal-list-search-row{ align-items:stretch; flex-wrap:wrap; }
    .egpportal-list-search input[type="search"]{ flex:1 1 100%; }
    .egpportal-list-search button,
    .egpportal-list-clear{ flex:1 1 auto; }
    .egpportal-list-summary{ text-align:left; }
}


/* Build034: floating, resizable PDF print reader for public announcements. */
.egpportal-print-modal[hidden]{display:none!important}
.egpportal-print-modal{position:fixed;inset:0;z-index:2147483600;font-family:Tahoma,Arial,sans-serif}
.egpportal-print-modal-backdrop{position:absolute;inset:0;background:rgba(15,23,42,.55)}
.egpportal-print-modal-dialog{
    position:absolute;
    top:50%;
    left:50%;
    display:flex;
    flex-direction:column;
    width:min(1120px,88vw);
    height:min(780px,82vh);
    min-width:420px;
    min-height:360px;
    max-width:96vw;
    max-height:94vh;
    transform:translate(-50%,-50%);
    resize:both;
    overflow:hidden;
    border:1px solid #d9e2e5;
    border-radius:12px;
    background:#fff;
    box-shadow:0 24px 80px rgba(0,0,0,.42);
}
.egpportal-print-modal-dialog.is-maximized{
    top:2vh;
    left:2vw;
    width:96vw;
    height:96vh;
    max-width:none;
    max-height:none;
    transform:none;
    resize:none;
    border-radius:10px;
}
.egpportal-print-modal-header{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:1rem;
    flex:0 0 auto;
    padding:.78rem 1rem;
    background:#075d47;
    color:#fff;
    user-select:none;
}
.egpportal-print-modal-heading{display:flex;align-items:center;gap:.65rem;min-width:0}
.egpportal-print-modal-heading strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:1rem}
.egpportal-print-modal-badge{display:inline-flex;align-items:center;justify-content:center;min-width:34px;height:28px;padding:0 .35rem;border-radius:5px;background:rgba(255,255,255,.18);font-size:.72rem;font-weight:800;letter-spacing:.04em}
.egpportal-print-modal-controls{display:flex;align-items:center;gap:.35rem;flex:0 0 auto}
.egpportal-print-modal-controls button{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border:1px solid rgba(255,255,255,.72);border-radius:6px;background:transparent;color:#fff;font:inherit;font-size:1.25rem;line-height:1;cursor:pointer}
.egpportal-print-modal-controls button:hover{background:rgba(255,255,255,.16)}
.egpportal-print-modal-controls .egpportal-print-modal-close{border:0;font-size:1.8rem}
.egpportal-print-modal-help{flex:0 0 auto;padding:.45rem .95rem;border-bottom:1px solid #d9e2e5;background:#f5faf8;color:#52616d;font-size:.84rem}
.egpportal-print-modal-body{display:flex;flex:1 1 auto;min-height:0;background:#eef2f5}
.egpportal-print-modal-body iframe{display:block;flex:1 1 auto;width:100%;height:100%;border:0;background:#fff}
body.egpportal-print-open{overflow:hidden}
@media(max-width:760px){
  .egpportal-print-modal-dialog{top:1vh;left:1vw;width:98vw;height:96vh;min-width:0;min-height:0;max-width:none;max-height:none;transform:none;resize:none;border-radius:9px}
  .egpportal-print-modal-heading strong{max-width:61vw;font-size:.9rem}
  .egpportal-print-modal-help{font-size:.75rem}
}


/* Build035: newest-news marker and public unit/warehouse filters. */
.egpportal-new-badge{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    margin-left:.38rem;
    padding:.12rem .36rem;
    border-radius:4px;
    background:#e53935;
    color:#fff;
    font-family:Arial,Tahoma,sans-serif;
    font-size:.64rem;
    font-weight:800;
    line-height:1.1;
    letter-spacing:.04em;
    vertical-align:middle;
    box-shadow:0 1px 3px rgba(185,28,28,.22);
}
.egpportal-unit-link{
    color:#087b5a!important;
    font-weight:700;
    text-decoration:none!important;
    border-bottom:1px dotted currentColor;
}
.egpportal-unit-link:hover{
    color:#075d47!important;
    border-bottom-style:solid;
}
.egpportal-list-intro-actions{
    display:flex;
    align-items:center;
    justify-content:flex-end;
    gap:.55rem;
    flex-wrap:wrap;
    flex:0 0 auto;
}
.egpportal-list-switch.subtle{
    border-color:#9bbdb1;
    color:#48655c!important;
}
.egpportal-list-switch.subtle:hover{
    background:#f0f6f3;
}
.egpportal-unit-filter-note{
    margin-top:.42rem;
    color:#0a6a4c;
    font-size:.92rem;
}
@media(max-width:760px){
    .egpportal-list-intro-actions{width:100%;justify-content:stretch}
    .egpportal-list-intro-actions .egpportal-list-switch{flex:1 1 100%;width:100%}
    .egpportal-new-badge{font-size:.58rem}
}


/* Build038: clarify that the designated unit approver can create and publish own announcements. */
.egpportal-approver-create-note{
    margin: .8rem 0 .55rem;
    padding: .75rem .9rem;
    border: 1px solid #b8dfd0;
    border-left: 5px solid #0a6a4c;
    border-radius: 7px;
    background: #f2fbf7;
    color: #174d3d;
    line-height: 1.55;
}


/* Build039: single clear routine RSS action on the dashboard. */
.egpportal-rss-main-callout{max-width:980px}
.egpportal-rss-main-callout .egpportal-btn{margin-top:.45rem}


/* Build044: show the Excel historical-import path separately from routine RSS import. */
.egpportal-excel-history-callout{border-color:#d8c88e;border-left-color:#b58416;background:#fffcf1;color:#5a4710}
.egpportal-excel-history-callout span{color:#6e6040}

/* Build052: report archive directory by the five warehouse/unit groups. */
.egpportal-unit-directory-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:1rem;
    margin-top:1rem;
}
.egpportal-unit-directory-card{
    background:#fff;
    border:1px solid #d8e1e5;
    border-left:5px solid #0a6a4c;
    border-radius:10px;
    padding:1rem;
    box-shadow:0 1px 3px rgba(0,0,0,.04);
}
.egpportal-unit-directory-card h2{
    margin:0 0 .45rem!important;
    font-size:1.15rem!important;
    color:#075d47!important;
}
.egpportal-unit-directory-card h2 a{
    color:#075d47!important;
    text-decoration:none!important;
}
.egpportal-unit-directory-card h2 a:hover{text-decoration:underline!important}
.egpportal-unit-directory-latest{
    color:#52616d;
    margin-bottom:.75rem;
    font-size:.92rem;
}
.egpportal-unit-directory-stats{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:.6rem;
    margin:.65rem 0 .9rem;
}
.egpportal-unit-directory-stats a{
    display:block;
    padding:.65rem .7rem;
    background:#f6fbf8;
    border:1px solid #d7e8e1;
    border-radius:8px;
    color:#173f36!important;
    text-decoration:none!important;
}
.egpportal-unit-directory-stats a:hover{background:#eef8f3;text-decoration:none!important}
.egpportal-unit-directory-stats strong{
    display:block;
    color:#0a6a4c;
    font-size:1.25rem;
    line-height:1.05;
}
.egpportal-unit-directory-stats span{
    display:block;
    margin-top:.25rem;
    font-size:.86rem;
    line-height:1.35;
}
.egpportal-unit-directory-open{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:34px;
    padding:.45rem .8rem;
    border-radius:6px;
    background:#0a6a4c;
    color:#fff!important;
    font-weight:700;
    text-decoration:none!important;
}
.egpportal-unit-directory-open:hover{background:#075d47;text-decoration:none!important}
@media(max-width:760px){
    .egpportal-unit-directory-grid{grid-template-columns:1fr}
    .egpportal-unit-directory-stats{grid-template-columns:1fr}
}

/* Build064: dashboard search and category filter. */
.egpportal-dashboard-filter{
    margin:1rem 0 1.15rem;
    padding:1rem;
    background:#f7fbf9;
    border:1px solid #d7e8e1;
    border-radius:10px;
}
.egpportal-dashboard-filter-grid{
    display:grid;
    grid-template-columns:minmax(260px,1.5fr) minmax(220px,.9fr) auto;
    gap:.8rem;
    align-items:end;
}
.egpportal-dashboard-filter label{
    display:block;
    font-weight:700;
    color:#075d47;
    margin-bottom:.35rem;
}
.egpportal-dashboard-filter input,
.egpportal-dashboard-filter select{
    width:100%;
    min-height:40px;
    border:1px solid #b7d2c8;
    border-radius:8px;
    padding:.45rem .65rem;
    background:#fff;
}
.egpportal-dashboard-filter-actions{
    display:flex;
    gap:.45rem;
    flex-wrap:wrap;
}
@media(max-width:860px){
    .egpportal-dashboard-filter-grid{grid-template-columns:1fr}
}


/* Build065: cleaner dashboard search, results, and hit counters. */
.egpportal-dashboard-panel{
    padding:0!important;
    overflow:hidden;
    border:1px solid #cfe1dc!important;
    box-shadow:0 10px 28px rgba(7,93,71,.08)!important;
}
.egpportal-dashboard-head{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:1rem;
    padding:1.05rem 1.15rem;
    background:linear-gradient(135deg,#f6fffb 0%,#eef8f4 55%,#e8f5ff 100%);
    border-bottom:1px solid #d7e8e1;
}
.egpportal-dashboard-head h2{margin:0 0 .25rem!important;color:#075d47!important;font-size:1.35rem!important}
.egpportal-dashboard-head .egpportal-help{margin:0!important}
.egpportal-dashboard-count{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:34px;
    padding:.35rem .8rem;
    border-radius:999px;
    background:#0a6a4c;
    color:#fff;
    font-weight:700;
    white-space:nowrap;
    box-shadow:0 5px 14px rgba(10,106,76,.18);
}
.egpportal-dashboard-panel .egpportal-delete-hint{margin:.8rem 1.15rem 0!important}
.egpportal-dashboard-filter{
    margin:1rem 1.15rem .75rem!important;
    padding:1rem!important;
    background:#ffffff!important;
    border:1px solid #cfe1dc!important;
    border-radius:14px!important;
    box-shadow:0 8px 20px rgba(21,60,48,.06)!important;
}
.egpportal-dashboard-filter-grid{
    display:grid!important;
    grid-template-columns:minmax(280px,1.4fr) minmax(230px,.9fr) auto!important;
    gap:.85rem!important;
    align-items:end!important;
}
.egpportal-filter-field label,.egpportal-dashboard-filter label{
    display:block!important;
    font-size:.92rem!important;
    font-weight:800!important;
    color:#075d47!important;
    margin:0 0 .38rem!important;
}
.egpportal-dashboard-filter input,.egpportal-dashboard-filter select{
    width:100%!important;
    min-height:44px!important;
    border:1px solid #b7d2c8!important;
    border-radius:10px!important;
    padding:.55rem .75rem!important;
    background:#fff!important;
    box-shadow:inset 0 1px 2px rgba(0,0,0,.035)!important;
}
.egpportal-dashboard-filter input:focus,.egpportal-dashboard-filter select:focus{
    outline:2px solid rgba(10,106,76,.16)!important;
    border-color:#0a6a4c!important;
}
.egpportal-dashboard-filter-actions{display:flex!important;gap:.5rem!important;flex-wrap:wrap!important}
.egpportal-dashboard-filter-actions .egpportal-btn{min-height:44px!important;border-radius:10px!important;font-weight:700!important}
.egpportal-dashboard-filter-summary{
    display:flex;
    flex-wrap:wrap;
    gap:.5rem;
    padding:0 1.15rem 1rem;
    color:#5d6870;
    font-size:.88rem;
}
.egpportal-dashboard-filter-summary span{
    display:inline-flex;
    align-items:center;
    min-height:28px;
    padding:.2rem .65rem;
    border-radius:999px;
    background:#f3faf7;
    border:1px solid #d7e8e1;
}
.egpportal-dashboard-results{padding:0 1.15rem 1.15rem;overflow:auto}
.egpportal-dashboard-table{
    border-collapse:separate!important;
    border-spacing:0 8px!important;
    background:transparent!important;
    min-width:980px;
}
.egpportal-dashboard-table th{
    background:#0a6a4c!important;
    color:#fff!important;
    border:0!important;
    padding:.75rem .7rem!important;
    font-weight:800!important;
}
.egpportal-dashboard-table th:first-child{border-radius:10px 0 0 10px!important}
.egpportal-dashboard-table th:last-child{border-radius:0 10px 10px 0!important}
.egpportal-dashboard-table td{
    background:#fff!important;
    border-top:1px solid #e1ece8!important;
    border-bottom:1px solid #e1ece8!important;
    border-left:0!important;
    border-right:0!important;
    padding:.8rem .7rem!important;
    vertical-align:top!important;
    box-shadow:0 2px 8px rgba(15,64,50,.04)!important;
}
.egpportal-dashboard-table td:first-child{border-left:1px solid #e1ece8!important;border-radius:10px 0 0 10px!important}
.egpportal-dashboard-table td:last-child{border-right:1px solid #e1ece8!important;border-radius:0 10px 10px 0!important}
.egpportal-hit-badge{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:28px;
    padding:.25rem .55rem;
    border-radius:999px;
    background:#eef7ff;
    color:#075985;
    border:1px solid #cde8ff;
    font-weight:700;
    white-space:nowrap;
    font-size:.86rem;
}
@media(max-width:900px){.egpportal-dashboard-filter-grid{grid-template-columns:1fr!important}.egpportal-dashboard-head{display:block}.egpportal-dashboard-count{margin-top:.6rem}}


/* Build066: horizontal dashboard filters with unit selector. */
.egpportal-dashboard-filter{
    background:linear-gradient(135deg,#ffffff 0%,#f7fffb 56%,#f2f8ff 100%)!important;
}
.egpportal-dashboard-filter-grid{
    grid-template-columns:minmax(270px,1.35fr) minmax(220px,.85fr) minmax(220px,.85fr) auto!important;
    align-items:end!important;
}
.egpportal-dashboard-filter .egpportal-filter-field{
    min-width:0!important;
}
.egpportal-dashboard-filter .egpportal-filter-field label{
    display:flex!important;
    align-items:center!important;
    gap:.35rem!important;
}
.egpportal-dashboard-filter select{
    cursor:pointer!important;
}
.egpportal-dashboard-filter-actions{
    align-items:end!important;
    justify-content:flex-start!important;
    min-width:210px!important;
}
.egpportal-dashboard-filter-actions .egpportal-btn{
    display:inline-flex!important;
    align-items:center!important;
    justify-content:center!important;
    white-space:nowrap!important;
    box-shadow:0 5px 14px rgba(10,106,76,.12)!important;
}
.egpportal-dashboard-filter-summary{
    padding-top:.1rem!important;
}
.egpportal-dashboard-results{
    background:linear-gradient(180deg,#fbfffd 0%,#ffffff 100%)!important;
}
@media(max-width:1120px){
    .egpportal-dashboard-filter-grid{grid-template-columns:1fr 1fr!important}
    .egpportal-dashboard-filter-actions{min-width:0!important;grid-column:1 / -1!important}
}
@media(max-width:720px){
    .egpportal-dashboard-filter-grid{grid-template-columns:1fr!important}
    .egpportal-dashboard-filter-actions{grid-column:auto!important}
}
