:root{--ink:#132d35;--green:#0b7651;--mint:#e8f6ef;--orange:#f57a1f;--line:#dbe6e5;--muted:#687b80;--canvas:#f2f6f5}*{box-sizing:border-box}body{margin:0;background:var(--canvas);color:var(--ink);font:14px/1.55 "DM Sans",Arial,sans-serif}h1,h2,h3{font-family:Manrope,Arial,sans-serif}.portal-container{width:min(1180px,calc(100% - 34px));margin:auto}.portal-header{background:#fff;border-bottom:1px solid var(--line)}.portal-header>.portal-container{min-height:76px;display:flex;align-items:center;justify-content:space-between}.portal-brand{display:flex;align-items:center;gap:10px;color:var(--ink);text-decoration:none;font:700 16px Manrope,Arial}.portal-brand img{width:44px;height:44px}.portal-brand strong{color:var(--green)}.portal-brand small{display:block;color:var(--muted);font:700 8px "DM Sans",Arial;text-transform:uppercase;letter-spacing:.12em}.portal-account{display:flex;align-items:center;gap:10px}.portal-account strong,.portal-account small{display:block}.portal-account small{color:var(--muted)}.portal-avatar{display:grid;place-items:center;width:38px;height:38px;border-radius:12px;background:var(--green);color:#fff;font-weight:800}.portal-account form{margin-left:10px}.portal-account button{border:0;background:#edf3f1;color:var(--ink);padding:8px 11px;border-radius:7px;cursor:pointer}.portal-notice,.portal-error{margin-top:18px;padding:13px 16px;border-radius:8px;font-weight:700}.portal-notice{background:#ddf5e7;color:#08714f}.portal-error{background:#ffe8df;color:#9b3c0e}.portal-welcome{display:flex;align-items:end;justify-content:space-between;gap:30px;padding:42px 0 25px}.portal-welcome p,.portal-panel-head p,.portal-panel>p:first-child{margin:0;color:var(--green);font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.13em}.portal-welcome h1{margin:5px 0;font-size:37px}.portal-welcome>div>span{color:var(--muted)}.portal-readiness{min-width:240px;padding:18px;background:#fff;border:1px solid var(--line);border-radius:12px}.portal-readiness small,.portal-readiness strong,.portal-readiness span{display:block}.portal-readiness strong{margin:4px 0;color:var(--green);font-size:19px}.portal-readiness span{color:var(--muted);font-size:11px}.portal-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:18px}.portal-stats article,.portal-panel{background:#fff;border:1px solid var(--line);border-radius:14px}.portal-stats article{padding:18px}.portal-stats span{display:block;color:var(--muted);font-size:11px}.portal-stats strong{font:800 27px Manrope,Arial}.portal-grid{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(280px,.7fr);gap:18px;align-items:start;margin-bottom:50px}.portal-grid>div,.portal-grid>aside{display:grid;gap:18px}.portal-panel{padding:23px}.portal-panel h2{margin:4px 0 20px}.portal-panel .muted{color:var(--muted)}.assignment-list{display:grid;gap:12px}.assignment-list article{padding:19px;border:1px solid var(--line);border-radius:11px}.assignment-top{display:flex;justify-content:space-between;gap:15px}.assignment-top small{color:var(--green);font-weight:800}.assignment-top h3{margin:3px 0}.assignment-top p{margin:0;color:var(--muted)}.portal-badge{align-self:start;padding:5px 8px;border-radius:99px;background:var(--mint);color:var(--green);font-size:10px;font-weight:800}.assignment-list dl{display:grid;grid-template-columns:repeat(3,1fr);margin:16px 0}.assignment-list dl div{padding:8px;border-left:2px solid #e6eeec}.assignment-list dt{color:var(--muted);font-size:9px;text-transform:uppercase}.assignment-list dd{margin:2px 0;font-weight:700}.assignment-actions{display:flex;gap:7px}.assignment-actions form{margin:0}.assignment-actions button,.clock-form button,.portal-form button,.active-shift button{border:0;border-radius:8px;padding:10px 14px;background:var(--green);color:#fff;font-weight:800;cursor:pointer}.assignment-actions .secondary{background:#edf2f1;color:#53656a}.clock-form{display:flex;align-items:end;gap:10px}.clock-form label{flex:1}.portal-panel label,.active-shift label{display:grid;gap:5px;font-size:11px;font-weight:800}.portal-panel input,.portal-panel textarea,.active-shift input{width:100%;padding:10px;border:1px solid var(--line);border-radius:7px;font:inherit}.portal-form{display:grid;gap:12px}.request-list>div,.portal-table>div{display:flex;justify-content:space-between;gap:10px;padding:11px 0;border-top:1px solid var(--line)}.request-list strong,.request-list span,.request-list small,.portal-table strong,.portal-table span,.portal-table small{display:block}.request-list span{color:var(--green);font-size:10px;font-weight:800}.request-list small,.portal-table small{color:var(--muted)}.active-shift{display:flex;align-items:end;justify-content:space-between;gap:25px;margin-bottom:18px;padding:22px;border-radius:14px;background:linear-gradient(110deg,#0e4d3b,#167657);color:#fff}.active-shift span{color:#9ae2ca;font-size:10px;font-weight:800;text-transform:uppercase}.active-shift h2,.active-shift p{margin:3px 0}.active-shift form{display:flex;align-items:end;gap:10px}.active-shift input{min-width:280px}.portal-empty{padding:25px;text-align:center;color:var(--muted);background:#f5f8f7;border-radius:8px}
.portal-login main{min-height:100vh;display:grid;grid-template-columns:1.1fr .9fr}.portal-login main>section{display:flex;flex-direction:column;justify-content:space-between;padding:50px;background:linear-gradient(135deg,rgba(7,39,29,.96),rgba(10,104,69,.87)),url('../images/cleaning-hero.jpg') center/cover;color:#fff}.portal-login .portal-brand{color:#fff}.portal-login main>section h1{max-width:700px;font-size:clamp(40px,5vw,68px);line-height:1.03}.portal-login main>section span{color:rgba(255,255,255,.72);font-size:17px}.portal-login aside{display:grid;place-items:center;padding:40px;background:#fff}.portal-login aside>div{width:min(420px,100%)}.portal-login aside>div>p{color:var(--green);font-size:10px;font-weight:800;text-transform:uppercase}.portal-login h2{margin:5px 0;font-size:36px}.portal-login aside>div>span{color:var(--muted)}.portal-login form{display:grid;gap:15px;margin-top:27px}.portal-login label{display:grid;gap:6px;font-weight:700}.portal-login input{padding:12px;border:1px solid var(--line);border-radius:7px}.portal-login .portal-check{display:flex}.portal-login .portal-check input{width:auto}.portal-login form button{padding:13px;border:0;border-radius:7px;background:var(--green);color:#fff;font-weight:800}.portal-login-links{display:flex;justify-content:space-between;margin-top:20px;font-size:11px}.portal-login-links a{color:var(--green)}
@media(max-width:850px){.portal-grid,.portal-login main{grid-template-columns:1fr}.portal-login main>section{min-height:420px}.portal-stats{grid-template-columns:1fr 1fr}.active-shift,.active-shift form{align-items:stretch;flex-direction:column}.active-shift input{min-width:0}}@media(max-width:560px){.portal-account>div{display:none}.portal-welcome{align-items:start;flex-direction:column}.portal-readiness{width:100%}.portal-stats{grid-template-columns:1fr 1fr}.assignment-list dl{grid-template-columns:1fr}.clock-form{align-items:stretch;flex-direction:column}.portal-login main>section{padding:30px 22px}.portal-login aside{padding:35px 22px}.portal-login-links{flex-direction:column;gap:10px}}
