/* --- Global Wrapper --- */
#pf-portal-main {
    position: relative;
    background-color: #212121;
    color: #ffffff;
    font-family: "Montserrat", sans-serif;
    min-height: 100vh;
    padding-top: 10px;
    padding-bottom: 60px;
    min-width: 100%;
}
#pf-portal-main a { color: inherit; text-decoration: none; }
#pf-portal-main * { box-sizing: border-box; }

:root {
    --pf-border: #808080;
    --pf-card: #2a2a2a;
    --pf-green: #00c853;
    --pf-orange: #ff9800;
    --pf-gray: #e0e0e0;
}

.pf-container { max-width: 1100px; margin: 0 auto; padding: 0 20px; }
.pf-text-center { text-align: center; }

/* --- LOGIN STYLE --- */
.pf-login-scope {
    min-height: 85vh; 
    display: flex; 
    align-items: center; 
    justify-content: center; 
    width: 100%;
    flex-direction: column;
}
.pf-login-wrapper {
	width: 100%;
	display: flex;
    flex-direction: column;
    align-content: center;
    align-items: center;
}

.pf-login-card {
    background: rgba(42, 42, 42, 0.85); 
    border: 1px solid var(--pf-border); 
    border-radius: 12px; 
    padding: 30px; 
    backdrop-filter: blur(8px); 
    -webkit-backdrop-filter: blur(8px);
    box-shadow: 0 15px 35px rgba(0,0,0,0.5);
    text-align: center;
	max-width: 420px;
}

.pf-login-title { 
    color: #fff; 
    margin-top: 0; 
    margin-bottom: 20px;
    font-size: 1.5rem;
    letter-spacing: 1px; 
    text-transform: uppercase; 
}

.pf-input-icon-wrap {
    position: relative;
    margin-bottom: 20px;
}

.pf-input-icon {
    position: absolute;
    top: 50%;
    left: 15px;
    transform: translateY(-50%);
    color: #888; /* Light gray for the icon */
    font-size: 20px;
    pointer-events: none;
    z-index: 2;
}

.pf-field input {
    width: 100%; 
    padding: 12px 15px 12px 45px !important;
    background: rgba(0,0,0,0.3); 
    border: 1px solid var(--pf-border); 
    border-radius: 6px; 
    color: #fff; 
    font-size: 0.9rem;
    outline: none;
    transition: 0.3s;
    height: 50px;
}

.pf-field input:focus {
    border-color: #fff;
    background: rgba(0,0,0,0.5);
}

.pf-field input:focus + .pf-input-icon,
.pf-field:focus-within .pf-input-icon {
    color: #fff;
}

.pf-btn-full {
    width: 100%; 
    padding: 14px; 
    background: #fff; 
    color: #000; 
    border: none; 
    border-radius: 6px; 
    font-weight: bold; 
    cursor: pointer;
    font-size: 0.9rem;
    margin-top: 10px;
    transition: 0.2s;
}
.pf-btn-full:hover { opacity: 0.9; transform: translateY(-2px); }

.pf-login-notice { 
    padding: 10px; 
    margin-bottom: 20px; 
    text-align: center;
	font-size: 0.8rem;
    width: 100%;
    max-width: 420px;
    color: #fff;
    box-sizing: border-box;
	min-width: 100%;
}

.pf-alert { 
    background: #521c1c; 
    border: 1px solid #7f2a2a; 
    color: #ffcccc; 
    padding: 10px; 
    margin-bottom: 20px; 
    border-radius: 6px; 
}

/* Footer Login */
.pf-login-footer {
    margin-top: 25px;
    padding-top: 20px;
    border-top: 1px solid rgba(255,255,255,0.1);
    font-size: 0.9rem;
}
.pf-login-footer a {
    color: #aaa;
    transition: color 0.2s;
}
.pf-login-footer a:hover {
    color: #fff;
    text-decoration: underline;
}

/* --- Dashboard --- */
.pf-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 20px; margin-top: 30px; }
.pf-card-project {
    background: var(--pf-card); border: 1px solid var(--pf-border); padding: 20px; border-radius: 10px; transition: 0.3s; display: block;
}
.pf-card-project:hover { border-color: #fff; transform: translateY(-3px); }
.pf-card-project h3 { margin-top: 0; color: #fff; }
.pf-btn-text { color: #aaa; font-weight: bold; text-transform: uppercase; font-size: 0.8rem; }

/* --- Logout Float --- */
.pf-logout-float {
    position: absolute; top: 20px; right: 20px;
    background: rgba(0,0,0,0.5); border: 1px solid var(--pf-border);
    padding: 8px 15px; border-radius: 20px; font-size: 0.8rem; z-index: 999;
}
.pf-logout-float:hover { background: #fff; color: #000 !important; }

/* --- Project View --- */
.pf-project-hero { margin-bottom: 30px; }
.pf-secure-badge-link { text-decoration: none; display: inline-block; }
.pf-secure-badge {
    display: inline-block; border: 1px solid var(--pf-border); padding: 5px 20px;
    border-radius: 20px; font-size: 0.8rem; letter-spacing: 2px; text-transform: uppercase;
    color: #aaa; margin-bottom: 15px; transition: 0.3s;
}
.pf-secure-badge:hover { color: #fff; border-color: #fff; background: rgba(255,255,255,0.1); }
.pf-company-logo { max-height: 80px; /*filter: brightness(0) invert(1); opacity: 0.8;*/ margin: 0 auto; display: block; }
.pf-intro-box { border-bottom: 1px solid var(--pf-border); padding-bottom: 30px; margin-bottom: 30px; font-size: 1rem; line-height: 1.5; color: #fff; }
.pf-legend { display: flex; flex-wrap: wrap; gap: 20px; margin-bottom: 40px; font-size: 0.9rem; color: #ccc; align-items: center; }
.pf-dot { display: inline-block; width: 32px; height: 32px; border-radius: 50%; vertical-align: middle; margin-right: 8px; }
.pf-dot-done { background: var(--pf-green); }
.pf-dot-doing { background: var(--pf-orange); }
.pf-dot-todo { background: var(--pf-gray); }

/* --- PHASES LAYOUT (Desktop Grid vs Mobile Column Reverse) --- */
.pf-phase-block { 
    padding: 40px 0; 
    border-bottom: 1px solid var(--pf-border);
    /* Mobile First: Flex Column Reverse */
    display: flex;
    flex-direction: column-reverse;
    gap: 30px;
}
.pf-phase-visual { display: block; width: 100%; }
.pf-phase-content { width: 100%; }
.pf-sticky-element img { max-width: 100%; /*opacity: 0.3; filter: grayscale(100%);*/ display:block; margin: 0 auto; }

/* Desktop */
@media (min-width: 992px) {
    .pf-phase-block { 
        display: grid; 
        grid-template-columns: 1fr 2fr;
        gap: 40px; 
    }
    .pf-sticky-element { position: sticky; top: 50px; text-align: center; }
}

.pf-phase-name { font-size: 2rem; color: #000; background-color:#99c23e; margin: 0 0 5px 0; }
.pf-phase-sub { font-size: 1.5rem; color: #99c23e; margin-bottom: 25px; }

/* Frontend tables */
.pf-act-table-front, .pf-docs-table-front {
    width: 100%; border-collapse: collapse; border: 1px solid var(--pf-border); margin-bottom: 20px;
}
.pf-act-table-front td, .pf-docs-table-front td, .pf-docs-table-front th {
    border: 1px solid var(--pf-border); padding: 5px; vertical-align: middle; font-size: 0.8rem;
}
.pf-docs-table-front th { background: #2a2a2a; color: #aaa; font-size: 0.8rem; letter-spacing: 1px; text-align:left; text-transform: uppercase; }
.pf-act-title { font-weight: bold; font-size: 0.8rem; color: #fff; margin-bottom: 0px; }
.pf-act-desc { font-size: 0.8rem; color: #ccc; line-height: 1.2; }
.pf-file-link { color: #fff; text-decoration: underline; font-size: 0.8rem; font-weight: bold; }
.pf-file-link:hover { color: #ccc; }
.pf-td-status { width: 60px; text-align: center; }
.pf-docs-section { margin: 50px 20px; }