:root{--a-navy:#071a2b;--a-blue:#0b5cad;--a-cyan:#138f9c;--a-lime:#c7f36a;--a-ink:#102a43;--a-muted:#627d98;--a-line:#d9e2ec;--a-soft:#f4f8fb}.cpa{font-family:Manrope,system-ui,sans-serif;color:var(--a-ink)}.shell{max-width:1180px;margin:50px auto;padding:0 20px}.auth-hero{text-align:center;max-width:760px;margin:0 auto 34px}.auth-hero h1{font-size:52px;letter-spacing:-.05em;margin:10px}.auth-hero p{color:var(--a-muted);font-size:17px}.eyebrow{text-transform:uppercase;letter-spacing:.15em;color:var(--a-cyan);font-size:10px;font-weight:800}.role-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.role-card{border:1px solid var(--a-line);border-radius:18px;padding:28px;background:#fff;box-shadow:0 12px 35px rgba(7,26,43,.06)}.role-card p{color:var(--a-muted);line-height:1.7;min-height:110px}.role-icon{width:48px;height:48px;border-radius:13px;display:grid;place-items:center;font-weight:800;background:#e6f0fa;color:var(--a-blue)}.contractor .role-icon{background:#e7f5ed;color:var(--a-cyan)}.owner .role-icon{background:var(--a-navy);color:var(--a-lime)}.btn{display:inline-flex;text-decoration:none;border:0;border-radius:10px;padding:13px 17px;font-weight:800;cursor:pointer}.btn.primary{background:var(--a-blue);color:#fff}.btn.teal{background:var(--a-cyan);color:#fff}.btn.dark{background:var(--a-navy);color:#fff}.btn.outline{border:1px solid var(--a-line);color:var(--a-ink);background:#fff}.auth-layout{max-width:1080px;margin:40px auto;display:grid;grid-template-columns:.82fr 1.18fr;border:1px solid var(--a-line);border-radius:22px;overflow:hidden;box-shadow:0 20px 60px rgba(7,26,43,.12)}.auth-side{padding:42px;color:#fff;background:linear-gradient(145deg,#071a2b,#0b5cad);display:flex;flex-direction:column;justify-content:space-between}.auth-side.contractor{background:linear-gradient(145deg,#071a2b,#138f9c)}.auth-side h1{font-size:45px;letter-spacing:-.05em;margin:12px 0}.auth-side p{color:#cbdceb;line-height:1.8}.auth-side ul{list-style:none;padding:0}.auth-side li{margin:13px 0;color:#e8f0f7}.brand{display:flex;align-items:center;gap:10px;color:#fff;text-decoration:none}.brand>b{width:40px;height:40px;border-radius:10px;display:grid;place-items:center;background:var(--a-lime);color:var(--a-navy)}.brand span{font-weight:800}.brand small{display:block;font-size:8px;letter-spacing:.12em;text-transform:uppercase;color:#bcd0e0}.auth-main{padding:42px;background:#fff}.tab-head{display:flex;border-bottom:1px solid var(--a-line);margin-bottom:22px}.tab{border:0;background:none;padding:12px 5px;margin-right:25px;font-weight:800;color:var(--a-muted);cursor:pointer}.tab.active{color:var(--a-blue);border-bottom:3px solid var(--a-blue)}.tab-panel{display:none}.tab-panel.active{display:block}.auth-form label{display:block;font-size:12px;font-weight:700;margin:13px 0}.auth-form input,.auth-form textarea{display:block;width:100%;margin-top:6px;padding:11px;border:1px solid var(--a-line);border-radius:8px}.auth-form textarea{min-height:75px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.auth-form small,.fine{font-size:10px;color:var(--a-muted)}.check{display:flex!important;gap:9px;align-items:flex-start;font-weight:500!important;line-height:1.5}.check input{width:auto!important;margin-top:3px}.forgot{display:block;margin-top:14px;font-size:12px;color:var(--a-blue)}.message{padding:12px;border-radius:8px;margin-bottom:15px}.message.success{background:#e7f5ed;color:#146c43}.message.error{background:#fde7e9;color:#a4262c}.message.info{background:#e6f0fa;color:#0b5cad}.owner-login{min-height:70vh;display:grid;place-items:center;background:var(--a-soft);padding:30px}.owner-box{background:#fff;border:1px solid var(--a-line);border-radius:20px;padding:42px;width:min(480px,100%);text-align:center;box-shadow:0 20px 55px rgba(7,26,43,.12)}.owner-box .role-icon{margin:auto}.owner-box h1{font-size:38px;letter-spacing:-.04em}.owner-box p{color:var(--a-muted)}.owner-box .auth-form{text-align:left}.signed{max-width:700px;margin:60px auto;text-align:center;border:1px solid var(--a-line);border-radius:18px;padding:45px}.signed h2{font-size:38px}.signed p{color:var(--a-muted)}@media(max-width:850px){.role-grid{grid-template-columns:1fr}.role-card p{min-height:auto}.auth-layout{grid-template-columns:1fr;margin:20px}.auth-side{min-height:430px}.auth-hero h1{font-size:40px}}@media(max-width:520px){.form-grid{grid-template-columns:1fr}.auth-main,.auth-side{padding:27px}.auth-side h1{font-size:37px}}