:root{--ink:#171717;--paper:#f4f0e8;--line:#d8d1c4;--muted:#746f66;--blue:#275efe;--green:#177967;--gold:#a76b1e}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:Inter,Arial,sans-serif}.login-page,.plain{min-height:100vh;display:grid;place-items:center;padding:24px;background:radial-gradient(circle at 80% 10%,#dcd5c8 0,transparent 34%),var(--paper)}.login-card,.message-card{width:min(520px,100%);background:#fff;border:1px solid var(--line);border-radius:28px;padding:38px;box-shadow:0 28px 70px #2b241414}.brand{display:flex;align-items:center;gap:11px}.brand b{font-size:28px;letter-spacing:-2px}.brand span,.eyebrow{font-size:11px;letter-spacing:.17em;font-weight:800}.login-card>.eyebrow{display:block;margin:52px 0 12px;color:var(--blue)}h1{font-size:clamp(34px,5vw,58px);letter-spacing:-.05em;line-height:.98;margin:0}.login-card p,.message-card p,.hero p{color:var(--muted);line-height:1.6}.login-form{display:grid;gap:18px;margin-top:28px}fieldset{border:0;padding:0;margin:0;display:grid;grid-template-columns:1fr 1fr;gap:10px}legend,.password-label{font-size:12px;font-weight:800;margin-bottom:9px}.role-option{border:1px solid var(--line);border-radius:15px;padding:14px;display:flex;gap:9px;cursor:pointer}.role-option:has(input:checked){border-color:var(--ink);background:#f7f5f1}.role-option span{display:grid;gap:4px}.role-option small{color:var(--muted)}.password-label{display:grid;gap:8px}input[type=password]{width:100%;border:1px solid var(--line);border-radius:13px;padding:15px;font-size:17px}.login-form button,.primary-link{border:0;border-radius:13px;background:var(--ink);color:#fff;padding:16px 20px;font-weight:800;text-decoration:none;text-align:center}.error{background:#fee9e5;color:#9d2418;border-radius:12px;padding:12px}.portal{max-width:1320px;margin:auto;padding:28px 34px 60px}.portal-head{display:flex;justify-content:space-between;align-items:center}.portal-head>div{display:flex;align-items:center;gap:22px}.role-chip{background:#fff;border:1px solid var(--line);padding:8px 12px;border-radius:99px;font-size:12px}.logout{border:0;background:none;text-decoration:underline;color:var(--muted);cursor:pointer}.hero{padding:90px 0 54px;border-bottom:1px solid var(--line)}.hero .eyebrow{color:var(--blue);display:block;margin-bottom:14px}.hero p{max-width:720px;font-size:18px}.module-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;padding-top:24px}.module-card{min-height:260px;border:1px solid var(--line);border-radius:22px;padding:24px;text-decoration:none;color:var(--ink);background:#fff;display:flex;flex-direction:column;justify-content:space-between;transition:.18s}.module-card[href]:hover{transform:translateY(-3px);box-shadow:0 18px 45px #2b241412}.module-card>div small{font-size:10px;letter-spacing:.15em;font-weight:800;color:var(--muted)}.module-card h2{font-size:28px;margin:9px 0}.module-card p{color:var(--muted);line-height:1.5;max-width:500px}.module-icon{font:800 13px monospace}.module-card.schedule{border-top:4px solid var(--green)}.module-card.kpi{border-top:4px solid var(--blue)}.module-card.budget{border-top:4px solid var(--gold)}.module-card.locked{background:#e8e3da;color:#777}.module-card.future{background:var(--ink);color:#fff}.module-card.future p,.module-card.future small{color:#aaa}.message-card{display:grid;gap:18px}.message-card h1{font-size:42px}.primary-link{justify-self:start}@media(max-width:760px){fieldset,.module-grid{grid-template-columns:1fr}.portal{padding:20px}.portal-head>div{align-items:flex-start;flex-direction:column;gap:8px}.hero{padding:58px 0 36px}.login-card{padding:26px}.module-card{min-height:220px}}
body{-webkit-tap-highlight-color:transparent}.login-page,.plain{min-height:100dvh;padding-top:max(24px,env(safe-area-inset-top));padding-right:max(24px,env(safe-area-inset-right));padding-bottom:max(24px,env(safe-area-inset-bottom));padding-left:max(24px,env(safe-area-inset-left))}.portal{padding-top:max(28px,env(safe-area-inset-top));padding-right:max(34px,env(safe-area-inset-right));padding-bottom:max(60px,env(safe-area-inset-bottom));padding-left:max(34px,env(safe-area-inset-left))}button,.role-option,.module-card{touch-action:manipulation}.logout{min-height:44px;min-width:58px}.login-form button{min-height:50px;font-size:15px}@media(max-width:760px){.login-page,.plain{padding-top:max(16px,env(safe-area-inset-top));padding-right:max(14px,env(safe-area-inset-right));padding-bottom:max(16px,env(safe-area-inset-bottom));padding-left:max(14px,env(safe-area-inset-left))}.login-card{border-radius:22px;padding:25px 20px}.login-card>.eyebrow{margin-top:34px}.login-card h1{font-size:34px}.role-option{min-height:66px}.portal{padding-top:max(18px,env(safe-area-inset-top));padding-right:max(16px,env(safe-area-inset-right));padding-bottom:max(30px,env(safe-area-inset-bottom));padding-left:max(16px,env(safe-area-inset-left))}.portal-head{gap:14px}.hero{padding:46px 0 30px}.hero h1{font-size:38px}.hero p{font-size:16px}.module-grid{gap:12px}.module-card{min-height:190px;padding:20px;border-radius:18px}.module-card h2{font-size:24px}.module-card p{margin-bottom:14px}}
.login-card{width:min(720px,100%)}.login-form fieldset{grid-template-columns:repeat(3,minmax(0,1fr))}@media(max-width:760px){.login-form fieldset{grid-template-columns:1fr}}

/* Mobile is the primary management surface. */
html,body{max-width:100%;overflow-x:hidden}button,a,input{touch-action:manipulation}
.remember-device{display:flex;align-items:flex-start;gap:11px;border:1px solid var(--line);border-radius:13px;padding:13px 14px;cursor:pointer;background:#faf9f6}.remember-device input{width:20px;height:20px;margin:1px 0 0;accent-color:var(--ink);flex:0 0 auto}.remember-device span{display:grid;gap:3px}.remember-device b{font-size:14px}.remember-device small{color:var(--muted);font-size:12px;line-height:1.4}
@media(max-width:600px){
  .portal{width:100%;padding:max(14px,env(safe-area-inset-top)) max(14px,env(safe-area-inset-right)) calc(28px + env(safe-area-inset-bottom)) max(14px,env(safe-area-inset-left))}
  .portal-head{align-items:center;gap:10px}.portal-head>div{min-width:0;flex:1;flex-direction:row;align-items:center;gap:10px}.brand{min-width:0}.brand b{font-size:26px}.brand span{font-size:10px}.role-chip{max-width:42vw;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px}.logout{min-width:52px;padding:0 4px;font-size:13px}
  .hero{padding:34px 0 24px}.hero .eyebrow{font-size:11px;line-height:1.45}.hero h1{font-size:clamp(31px,9.5vw,40px);line-height:1.02;overflow-wrap:anywhere}.hero p{font-size:16px;line-height:1.5;margin-bottom:0}
  .module-grid{padding-top:14px}.module-card{min-height:0;padding:20px;gap:26px}.module-card h2{font-size:clamp(23px,7vw,29px);line-height:1.08}.module-card p{font-size:15px;line-height:1.5}.module-card>div small,.module-icon{font-size:12px}.module-card>b{font-size:14px;min-height:44px;display:flex;align-items:center}
  .login-card,.message-card{padding:24px 18px;border-radius:20px}.login-card>.eyebrow{margin:32px 0 10px}.login-card h1,.message-card h1{font-size:clamp(30px,9vw,38px);line-height:1.04}.login-card p,.message-card p{font-size:16px}.role-option{min-height:72px;align-items:center}.role-option b{font-size:16px}.role-option small{font-size:13px;line-height:1.35}.password-label,legend{font-size:14px}.login-form button,.primary-link{min-height:50px;font-size:16px}
}
