:root{--lf-navy:#0f233f;--lf-navy-2:#1a3559;--lf-gold:#b8934a;--lf-gold-light:#dcc281;--lf-cream:#f7f3ea;--lf-paper:#fff;--lf-ink:#263244;--lf-muted:#6b7480;--lf-line:#ddd6c9;--lf-green:#526f5a}
.lf-portal,.lf-auth-shell,.lf-notice{box-sizing:border-box;color:var(--lf-ink);font-family:inherit}
.lf-portal *,.lf-auth-shell *,.lf-notice *{box-sizing:border-box}
.lf-portal{max-width:1180px;margin:0 auto;padding:24px 20px 70px}
.lf-portal-nav{display:flex;align-items:center;justify-content:space-between;gap:22px;margin-bottom:20px;padding:0 4px}
.lf-brand-logo{display:block;max-height:58px;max-width:260px;width:auto}
.lf-brand-name{font-family:Georgia,serif;font-size:1.45rem;color:var(--lf-navy);letter-spacing:.02em}
.lf-user-menu{display:flex;align-items:center;gap:14px;font-size:.82rem;color:var(--lf-muted)}
.lf-user-menu a{border-left:1px solid var(--lf-line);padding-left:14px;color:var(--lf-navy);text-decoration:none;font-weight:700}
.lf-hero{display:flex;justify-content:space-between;gap:36px;align-items:flex-end;background:linear-gradient(135deg,var(--lf-navy),var(--lf-navy-2));color:#fff;padding:46px;border-radius:3px;border-top:4px solid var(--lf-gold);box-shadow:0 16px 38px rgba(15,35,63,.14)}
.lf-hero h1{color:#fff;font-family:Georgia,serif;font-size:clamp(2.1rem,5vw,3.5rem);font-weight:500;line-height:1.05;margin:.15em 0}.lf-hero>div>p:last-child{max-width:680px;margin:0;opacity:.88;font-size:1rem;line-height:1.65}
.lf-eyebrow{text-transform:uppercase;letter-spacing:.17em;font-size:.72rem!important;color:var(--lf-gold-light)!important;font-weight:700;margin:0!important}
.lf-phase{min-width:190px;border-left:1px solid rgba(255,255,255,.25);padding-left:26px}.lf-phase span{display:block;text-transform:uppercase;letter-spacing:.12em;font-size:.68rem;opacity:.72}.lf-phase strong{display:block;color:var(--lf-gold-light);font-family:Georgia,serif;font-size:1.4rem;margin-top:6px;font-weight:500}
.lf-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--lf-line);border:1px solid var(--lf-line);margin:22px 0 0}.lf-stats div{background:var(--lf-paper);padding:22px}.lf-stats strong{display:block;color:var(--lf-navy);font-family:Georgia,serif;font-size:1.65rem;font-weight:500}.lf-stats span{font-size:.8rem;color:var(--lf-muted)}
.lf-progress{height:5px;background:#e7e2d8;margin:0 0 22px;overflow:hidden}.lf-progress span{display:block;height:100%;background:linear-gradient(90deg,var(--lf-gold),var(--lf-gold-light));transition:width .25s ease}
.lf-grid{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(280px,.8fr);gap:22px}.lf-side-stack{display:grid;align-content:start;gap:22px}
.lf-vault-grid{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(300px,.75fr);gap:22px;margin-bottom:22px}.lf-document-list{display:grid;gap:12px}.lf-document{display:grid;grid-template-columns:34px minmax(0,1fr) auto;gap:13px;align-items:center;background:var(--lf-cream);border-left:3px solid var(--lf-gold);padding:15px}.lf-document-icon{width:32px;height:32px;border:1px solid var(--lf-gold);border-radius:50%;display:grid;place-items:center;color:var(--lf-navy);font-weight:700}.lf-document>div>span{display:block;color:#896a2e;text-transform:uppercase;letter-spacing:.09em;font-size:.62rem;font-weight:700}.lf-document h3{color:var(--lf-navy);font-size:1rem;margin:3px 0}.lf-document p{font-size:.82rem;margin:.25em 0}.lf-document small{display:block;color:var(--lf-muted);font-size:.68rem;word-break:break-word}.lf-document>a{background:var(--lf-navy);color:#fff!important;text-decoration:none;padding:8px 11px;font-size:.72rem}.lf-submit-card>p{color:var(--lf-muted);font-size:.88rem}.lf-upload-form{display:grid;gap:12px}.lf-upload-form label{display:grid;gap:5px;color:var(--lf-navy);font-size:.74rem;font-weight:700}.lf-upload-form input[type=text],.lf-upload-form select,.lf-upload-form input[type=file]{width:100%;border:1px solid var(--lf-line);background:#fcfbf8;padding:9px;font:inherit}.lf-upload-form input[type=file]{font-size:.72rem}.lf-upload-form>small{color:var(--lf-muted);font-size:.68rem}.lf-upload-form button{background:var(--lf-navy);color:#fff;border:1px solid var(--lf-gold);padding:11px 14px;cursor:pointer}.lf-upload-help{margin:0!important;color:var(--lf-muted);font-size:.7rem!important}.lf-vault-notice{margin:0 0 22px;padding:13px 16px;background:#edf7ef;border-left:4px solid var(--lf-green);font-size:.86rem}.lf-vault-notice.is-error{background:#fff1f1;border-left-color:#a33}
.lf-card{background:var(--lf-paper);border:1px solid var(--lf-line);padding:28px;box-shadow:0 8px 25px rgba(15,35,63,.05)}.lf-card h2{color:var(--lf-navy);font-family:Georgia,serif;font-size:1.55rem;font-weight:500;margin:0 0 20px;border-bottom:1px solid var(--lf-line);padding-bottom:12px}.lf-overview{margin-bottom:22px}.lf-overview p:last-child{margin-bottom:0}.lf-card-heading{display:flex;align-items:baseline;justify-content:space-between;gap:12px;border-bottom:1px solid var(--lf-line);margin-bottom:20px}.lf-card-heading h2{border:0;margin:0;padding-bottom:12px}.lf-card-heading>span{text-transform:uppercase;letter-spacing:.08em;font-size:.68rem;color:var(--lf-muted)}
.lf-list{display:grid;gap:14px}.lf-task,.lf-resource,.lf-meeting{border-left:3px solid var(--lf-gold);background:var(--lf-cream);padding:18px}.lf-task{display:flex;justify-content:space-between;gap:18px;align-items:flex-start}.lf-task-copy{min-width:0}.lf-task h3,.lf-resource h3,.lf-meeting h3{color:var(--lf-navy);font-size:1.05rem;line-height:1.35;margin:3px 0 7px}.lf-task p,.lf-resource p,.lf-meeting p{font-size:.88rem;line-height:1.55;margin:.35em 0}.lf-task-meta{display:flex;gap:10px;flex-wrap:wrap;text-transform:uppercase;letter-spacing:.07em;color:#786b55;font-size:.63rem;font-weight:700}.lf-task-meta span+span:before{content:'•';margin-right:10px;color:var(--lf-gold)}
.lf-task button,.lf-resource a{display:inline-block;border:1px solid var(--lf-gold);background:var(--lf-navy);color:#fff!important;padding:9px 13px;font-size:.75rem;text-decoration:none;white-space:nowrap;cursor:pointer;transition:background .15s ease}.lf-task button:hover,.lf-resource a:hover{background:var(--lf-navy-2)}.lf-task.is-complete{opacity:.72;border-left-color:var(--lf-green)}.lf-task.is-complete h3{text-decoration:line-through}.lf-task.is-complete button{background:transparent;color:var(--lf-navy)!important}
.lf-task-attachments{display:grid;gap:7px;margin-top:13px;padding-top:12px;border-top:1px solid var(--lf-line)}.lf-task-attachments>strong{color:var(--lf-navy);font-size:.72rem;text-transform:uppercase;letter-spacing:.08em}.lf-task-attachments>a{display:flex;justify-content:space-between;gap:12px;align-items:center;border:1px solid var(--lf-line);background:#fff;color:var(--lf-navy)!important;text-decoration:none;padding:9px 11px;font-size:.78rem}.lf-task-attachments>a:hover{border-color:var(--lf-gold);background:#fffdf8}.lf-task-attachments small{color:var(--lf-muted);font-size:.65rem;word-break:break-word;text-align:right}
.lf-resource>span,.lf-meeting time{display:block;color:#896a2e;text-transform:uppercase;letter-spacing:.1em;font-size:.64rem;font-weight:700;margin-bottom:5px}.lf-resource a{margin-top:9px}.lf-location{color:var(--lf-muted);font-style:italic}.lf-empty{color:var(--lf-muted);font-style:italic}
.lf-portal-footer{display:flex;justify-content:space-between;gap:24px;margin-top:32px;padding:22px 4px;border-top:1px solid var(--lf-line);color:var(--lf-muted);font-size:.75rem}.lf-portal-footer span:first-child{color:var(--lf-navy);font-family:Georgia,serif;font-size:.95rem}
.lf-auth-shell{max-width:920px;margin:55px auto;display:grid;grid-template-columns:1fr 1fr;min-height:540px;box-shadow:0 18px 50px rgba(15,35,63,.17)}.lf-auth-brand{background:linear-gradient(150deg,var(--lf-navy),var(--lf-navy-2));padding:48px;display:flex;flex-direction:column;justify-content:center;align-items:flex-start;color:#fff;border-top:4px solid var(--lf-gold)}.lf-auth-brand .lf-brand-logo{max-width:280px;max-height:105px;background:rgba(255,255,255,.96);padding:12px}.lf-auth-brand .lf-brand-name{color:#fff;font-size:2rem}.lf-auth-brand p{text-transform:uppercase;letter-spacing:.16em;color:var(--lf-gold-light);font-size:.7rem;margin-top:18px}.lf-auth-card{background:#fff;padding:56px 48px;display:flex;flex-direction:column;justify-content:center}.lf-auth-card h1{font-family:Georgia,serif;color:var(--lf-navy);font-size:2.25rem;font-weight:500;margin:0 0 10px}.lf-auth-card>p{color:var(--lf-muted);line-height:1.6}.lf-auth-card label{display:block;color:var(--lf-navy);font-size:.8rem;font-weight:700;margin-top:14px}.lf-auth-card input[type=text],.lf-auth-card input[type=password]{width:100%;padding:12px;border:1px solid var(--lf-line);background:#fcfbf8}.lf-auth-card .login-remember label{display:flex;gap:8px;align-items:center;font-weight:400;color:var(--lf-muted)}.lf-auth-card input[type=submit]{background:var(--lf-navy);color:#fff;border:0;padding:12px 20px;width:100%;cursor:pointer}.lf-auth-links{font-size:.8rem;margin-top:18px!important}.lf-auth-links a{color:var(--lf-navy)}
.lf-notice{max-width:620px;margin:60px auto;padding:36px;background:#fff;border-top:4px solid var(--lf-gold);box-shadow:0 12px 34px rgba(15,35,63,.12)}.lf-notice h2{font-family:Georgia,serif;color:var(--lf-navy)}
@media(max-width:800px){.lf-grid,.lf-vault-grid{grid-template-columns:1fr}.lf-auth-shell{grid-template-columns:1fr;max-width:560px}.lf-auth-brand{min-height:210px;padding:36px}.lf-auth-card{padding:42px 36px}.lf-hero{display:block;padding:34px}.lf-phase{border-left:0;border-top:1px solid rgba(255,255,255,.25);padding:18px 0 0;margin-top:26px}.lf-brand-logo{max-width:210px}}
@media(max-width:560px){.lf-portal{padding:16px 12px 45px}.lf-portal-nav{align-items:flex-start}.lf-user-menu{display:block;text-align:right}.lf-user-menu span,.lf-user-menu a{display:block}.lf-user-menu a{border:0;padding:4px 0 0}.lf-hero{padding:28px 24px}.lf-stats{grid-template-columns:1fr}.lf-stats div{padding:15px 20px}.lf-card{padding:22px}.lf-task{display:block}.lf-task form{margin-top:15px}.lf-task-meta span{display:block;width:100%}.lf-task-meta span+span:before{display:none}.lf-task-attachments>a{display:block}.lf-task-attachments small{display:block;margin-top:3px;text-align:left}.lf-document{grid-template-columns:32px minmax(0,1fr)}.lf-document>a{grid-column:1/-1;text-align:center}.lf-portal-footer{display:block}.lf-portal-footer span{display:block;margin-top:5px}.lf-auth-shell{margin:24px 12px}.lf-auth-brand,.lf-auth-card{padding:30px 24px}}
