
:root{--navy:#102A3A;--teal:#21776E;--paper:#F4F1EA;--gold:#D6AF70}
*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--navy);font:16px/1.5 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
header{background:var(--navy);color:white;padding:26px max(20px,calc((100vw - 950px)/2))}.logo{max-width:180px;max-height:65px;object-fit:contain}
main{max-width:950px;margin:40px auto;padding:0 20px}h1{font-size:clamp(28px,4vw,40px);line-height:1.15}h2{font-size:21px}
.card{background:white;border:1px solid #d8e1df;border-radius:14px;padding:24px;margin:18px 0;box-shadow:0 5px 22px #102a3a0a}
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(265px,1fr));gap:18px}label{display:block;font-weight:650;margin:16px 0 6px}
input{width:100%;padding:12px;border:1px solid #9aafaa;border-radius:8px;font:inherit}button,.button{display:inline-block;background:var(--teal);color:white;border:0;border-radius:8px;padding:12px 18px;font:inherit;font-weight:700;text-decoration:none;cursor:pointer}
button:hover,.button:hover{background:var(--navy)}.muted{color:#4f6467}.notice{border-left:4px solid var(--gold);padding:10px 16px;background:#fffaf0}.error{color:#962b2b;font-weight:650}
code{word-break:break-all}.qr{width:190px;height:190px}footer{font-size:13px;color:#526c6c;margin:40px 0}.top{display:flex;justify-content:space-between;gap:16px;align-items:center}.smallbutton{background:transparent;color:var(--navy);padding:6px}
.eyebrow{text-transform:uppercase;letter-spacing:.15em;font-size:12px;font-weight:800;color:var(--teal)}.lead{font-size:18px;max-width:680px;color:#4c6264;margin-top:-10px}
.appcard{padding:0;overflow:hidden;display:flex;flex-direction:column;transition:transform .15s,box-shadow .15s}.appcard:hover{transform:translateY(-3px);box-shadow:0 12px 28px #102a3a1a}
.brand-strip{height:57px;display:flex;align-items:center;padding:10px 18px;background:white;border-bottom:1px solid #e0e7e4}
.tile-art{height:168px;position:relative;overflow:hidden;background:#dbe7e5}
.tile-photo{width:100%;height:100%;object-fit:cover;object-position:center 40%;display:block}
.appcard.cubo .tile-photo{object-fit:cover;object-position:center 45%}.appcard.audit .tile-photo{object-position:43% 35%}.appcard.validation .tile-photo{object-position:42% 42%}.appcard.brunel .tile-photo{object-position:52% 45%}
.customer-logo{max-width:132px;max-height:35px;object-fit:contain}.appcard.brunel .customer-logo,.appcard.air .customer-logo,.appcard.dhws .customer-logo,.appcard.chw .customer-logo,.appcard.lthw .customer-logo{max-width:160px;max-height:40px}
.tile-body{padding:21px 22px 23px;display:flex;flex:1;flex-direction:column}.tile-body h2{margin:5px 0 8px;font-size:24px}.tile-body p{margin:0 0 20px}.tile-body .button{margin-top:auto;align-self:flex-start}
.shortcut{display:flex;flex-wrap:wrap;gap:9px;margin:16px 0 24px}.shortcut a{display:inline-flex;align-items:center;gap:7px;border:1px solid #c6d6d1;border-radius:999px;background:white;color:var(--navy);padding:9px 14px;text-decoration:none;font-weight:650;font-size:14px}.shortcut a:hover{border-color:var(--teal);color:var(--teal)}
.small-note{font-size:13px;color:#607375;margin:-13px 0 21px}
@media(max-width:620px){main{margin:26px auto}.top{align-items:flex-start}.smallbutton{margin-top:9px}}

button:disabled{background:#dce4e1;color:#56665f;cursor:default}.qr{max-width:100%}

/* Wider app desk; authentication forms retain their existing width. */
.app-desk header{padding:18px max(24px,calc((100vw - 1600px)/2 + 24px))}
.app-desk main{width:100%;max-width:1600px;margin:28px auto;padding:0 24px}
.app-desk .grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:24px}
.app-desk .appcard{margin:0}.app-desk .notice{margin-bottom:24px}
@media(max-width:1100px){.app-desk .grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}}
@media(max-width:850px){.app-desk .grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:560px){.app-desk .grid{grid-template-columns:1fr}.app-desk main{padding:0 16px}.app-desk header{padding:16px}}
