/* ===================================
GRUNDLAYOUT
=================================== */

body {
   margin: 0;
   font-family: "Segoe UI", Arial, sans-serif;
   color: #1f2d3d;
}


/* ===================================
WRAPPER
=================================== */

.portal-wrapper {
   min-height: 100vh;
   display: flex;
   flex-direction: column;
}


/* ===================================
HEADER
=================================== */

.portal-header {
   background: white;
   padding: 18px 30px;
   border-bottom: 1px solid #e6e9ef;
}

.portal-logo {
   height: 46px;
}


/* ===================================
CONTAINER
=================================== */

.portal-container {
   flex: 1;
   display: flex;
   justify-content: center;
   align-items: center;
   padding: 40px 20px;
}


/* ===================================
GLASS CARD
=================================== */

.portal-card {
   background: none;
   box-shadow: none;
   padding: 0;
   max-width: 440px;
   width: 100%;
}

.portal-card-overlay {
   background: rgba(255, 255, 255, 0.2);
   backdrop-filter: blur(10px);
   -webkit-backdrop-filter: blur(10px);

   padding: 35px;
   border-radius: 10px;

   box-shadow: 0 20px 40px rgba(0, 0, 0, 0.18);
   border: 1px solid rgba(255, 255, 255, 0.35);
}


/* ===================================
ERROR BOX
=================================== */

.portal-error {
   display: none;
   margin-top: 12px;
   padding: 12px 14px;

   background: #fdecea;
   border: 1px solid #f3c6c2;

   color: #b42318;

   border-radius: 8px;
   font-size: 14px;

   align-items: center;
   gap: 8px;
}

.portal-error svg {
   width: 18px;
   height: 18px;
   flex-shrink: 0;
}


/* ===================================
HEADINGS
=================================== */

.portal-card h1 {
   margin-top: 0;
   font-size: 26px;
   color: #1f3f5b;
}

.portal-card h2 {
   margin-top: 5px;
   font-size: 22px;
   color: #1f3f5b;
   font-weight: 400;
}

.portal-card p {
   color: #eef2f7;
   line-height: 1.2;
}

.portal-btn svg {
   margin-right: 8px;
   width: 18px;
   height: 18px;
}


/* ===================================
FORM
=================================== */

.portal-card form {
   margin-top: 25px;
}

.portal-card input {

   width: 100%;
   padding: 16px;

   margin-bottom: 15px;

   border-radius: 8px;
   border: 1px solid #dce1e7;

   font-size: 18px;

   letter-spacing: 1px;

   box-sizing: border-box;
}

.portal-card input:focus {
   outline: none;
   border: 2px solid #f28c28;
}


/* ===================================
BUTTON
=================================== */

.portal-button {
   width: 100%;
   background: #f28c28;
   color: white;
   border: none;
   padding: 14px;
   font-size: 15px;
   border-radius: 8px;
   cursor: pointer;
   transition: 0.2s;
   display: flex;
   align-items: center;
   justify-content: center;
   gap: 8px;
}

.portal-button:hover {
   transform: translateY(-1px);
   box-shadow: 0 6px 14px rgba(0, 0, 0, 0.15);

}


/* =====================================
   FOOTER (PORTAL)
===================================== */

.footer {
   background: #1f2937;
   color: #cbd5e1;
   padding: 45px 30px 25px;
   border-top: 1px solid rgba(255, 255, 255, 0.08);
   margin-top: auto;
}


/* GRID */

.footer-grid {

   max-width: 1100px;
   margin: 0 auto;
   display: flex;
   justify-content: space-between;
   align-items: flex-start;
   gap: 40px;
   flex-wrap: wrap;
}


/* BRAND */

.footer-brand img {
   height: 55px;
   width: auto;
   margin-bottom: 6px;
   opacity: .95;
}

.footer-brand p {

   font-size: 14px;
   color: #e5e7eb;

   max-width: 320px;
   margin: 4px 0;
}


/* LINKS */

.footer-links {
   display: flex;
   flex-direction: column;
   gap: 10px;
}

.footer-links a {
   color: #cbd5e1;
   text-decoration: none;
   font-size: 14px;
   transition: .2s;
   line-height: 0.8;
}

.footer-links a:hover {
   color: white;
}

.portal-forgot {
   display: flex;
   justify-content: flex-end;
   margin-top: -6px;
   margin-bottom: 16px;
}

.portal-forgot-button {

   display: inline-flex;
   align-items: center;
   gap: 6px;

   padding: 6px 10px;

   font-size: 13px;

   border: 1px solid #d6dce5;
   border-radius: 6px;

   background: white;
   color: #1f3f5b;

   text-decoration: none;

   transition: .15s;
}

.portal-forgot-button:hover {

   border-color: #f28c28;
   color: #f28c28;

}

.portal-forgot-button svg {
   width: 16px;
   height: 16px;
}