:root{--navy:#071a2b;--ink:#17232d;--muted:#66737d;--gold:#d6a33a;--paper:#f6f7f8;--white:#fff;--line:#dbe1e5;--danger:#8a3030;font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink);background:var(--paper);font-synthesis:none}
*{box-sizing:border-box}[hidden]{display:none!important}body{margin:0;min-height:100vh;background:linear-gradient(180deg,#071a2b 0 230px,#f6f7f8 230px)}button,input,select{font:inherit}.skip-link{position:fixed;top:-80px;left:12px;background:#fff;padding:12px;z-index:10}.skip-link:focus{top:12px}.app-header{height:76px;width:min(1120px,calc(100% - 32px));margin:auto;display:flex;align-items:center;justify-content:space-between}.ctm-brand{color:#fff;font-weight:900;font-size:1.55rem;letter-spacing:.1em;text-decoration:none}.text-button,.back-link{border:0;background:none;color:var(--navy);font-weight:850;text-decoration:underline;padding:12px;cursor:pointer}.app-header .text-button{color:#fff}main{width:min(1120px,calc(100% - 32px));margin:auto;min-height:calc(100vh - 160px)}
.signin-card,.state-card,.module-shell{width:min(100%,560px);margin:6vh auto;background:#fff;border:1px solid var(--line);border-radius:24px;padding:clamp(26px,5vw,48px);box-shadow:0 20px 55px rgba(7,26,43,.15)}h1,h2{color:var(--navy);line-height:1.06;margin:.4em 0}h1{font-size:clamp(2.2rem,6vw,4rem)}h2{font-size:1.55rem}.eyebrow{margin:0;color:#8a671d;text-transform:uppercase;letter-spacing:.16em;font-size:.76rem;font-weight:900}.intro,.help,.module-card p{color:var(--muted);line-height:1.55}.signin-card label{display:block;font-weight:800;margin:19px 0}.signin-card input{display:block;width:100%;margin-top:7px;border:1px solid #aebdc8;border-radius:12px;padding:15px}.button{display:inline-grid;place-items:center;min-height:50px;border:0;border-radius:10px;padding:13px 20px;font-weight:900;text-decoration:none;cursor:pointer}.button.primary{width:100%;background:var(--gold);color:var(--navy)}.button.secondary{background:var(--navy);color:#fff}.button:disabled{opacity:.55}.error{background:#fff1f1;color:var(--danger);padding:12px;border-radius:10px}.help{font-size:.85rem;margin-top:20px}.spinner{width:42px;height:42px;border:4px solid #d7dfe4;border-top-color:var(--gold);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}
.dashboard{padding:50px 0}.dashboard-heading{display:flex;justify-content:space-between;gap:24px;align-items:flex-start;color:#fff}.dashboard-heading h1,.dashboard-heading .intro{color:#fff}.identity-card{display:grid;min-width:180px;background:#fff;color:var(--navy);border-radius:16px;padding:16px;box-shadow:0 10px 30px rgba(0,0,0,.13)}.identity-card span{text-transform:uppercase;letter-spacing:.12em;color:#8a671d;font-weight:900}.identity-card small{text-transform:capitalize;color:var(--muted)}.module-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-top:34px}.module-card{background:#fff;border:1px solid var(--line);border-radius:18px;padding:26px;box-shadow:0 10px 30px rgba(7,26,43,.08)}.module-card.unavailable{opacity:.78}.module-card .button{margin-top:10px}.unavailable-label{display:inline-block;color:var(--muted);font-weight:800}.status{display:inline-block;background:#f3ead6;color:#795b18;border-radius:999px;padding:5px 10px;font-size:.72rem;font-weight:900;letter-spacing:.08em;text-transform:uppercase}.notice{background:#fff8e8;border-left:4px solid var(--gold);padding:18px;border-radius:8px;line-height:1.55}
.organisation-switcher{display:grid;gap:5px;margin-top:10px;font-size:.72rem;font-weight:850;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}.organisation-switcher select{max-width:260px;border:1px solid #aebdc8;border-radius:8px;padding:8px;background:#fff;color:var(--ink);font-size:.86rem;font-weight:700;letter-spacing:0;text-transform:none}
.provider-shell{padding:40px 0}.provider-heading{color:#fff;margin:0 0 28px}.provider-heading h1,.provider-heading .intro{color:#fff}.provider-grid{display:grid;grid-template-columns:minmax(320px,.95fr) minmax(320px,1.05fr);gap:18px}.provider-form{display:grid;gap:12px}.provider-form label{display:grid;gap:6px;font-weight:800}.provider-form input,.provider-form select{width:100%;border:1px solid #aebdc8;border-radius:10px;padding:11px;background:#fff}.provider-form fieldset{border:1px solid var(--line);border-radius:10px;padding:12px;display:flex;flex-wrap:wrap;gap:10px}.provider-form fieldset label{display:flex;align-items:center;gap:6px;font-weight:700}.provider-form fieldset input{width:auto}.form-status{min-height:1.35em;margin:0;color:var(--muted);font-weight:700}.form-status.success{color:#20643c}.customer-list{display:grid;gap:10px}.customer-row{border:1px solid var(--line);border-radius:10px;padding:13px;display:grid;gap:4px}.customer-row span{font-size:.85rem;text-transform:uppercase;letter-spacing:.07em;color:#8a671d;font-weight:850}.customer-row small{color:var(--muted)}
footer{width:min(1120px,calc(100% - 32px));margin:0 auto;padding:28px 0;color:var(--muted);display:flex;justify-content:space-between;gap:12px}:focus-visible{outline:4px solid #7da9ff;outline-offset:3px}@media(max-width:700px){body{background:linear-gradient(180deg,#071a2b 0 190px,#f6f7f8 190px)}.dashboard,.provider-shell{padding-top:28px}.dashboard-heading{display:grid}.identity-card{min-width:0}.module-grid,.provider-grid{grid-template-columns:1fr}.module-card{padding:22px}.button{width:100%}footer{display:grid;text-align:center}.signin-card{margin-top:2vh}}
.users-grid{grid-template-columns:minmax(300px,.85fr) minmax(360px,1.15fr)}.user-edit-form{margin-top:24px;padding-top:20px;border-top:1px solid var(--line)}.user-email{margin:0;color:var(--muted);font-weight:800}.organisation-user-row{gap:7px}.user-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:5px}.user-actions .button,.user-edit-form .button{min-height:38px;padding:8px 12px;font-size:.8rem}.danger-button{background:#6f2d2d!important}@media(max-width:700px){.users-grid{grid-template-columns:1fr}.user-actions{display:grid;grid-template-columns:1fr}.user-actions .button,.user-edit-form .button{width:100%}}
