@import url('https://fonts.googleapis.com/css2?family=Crimson+Text:wght@400;600;700&family=DM+Mono:wght@400;500&family=DM+Sans:opsz,wght@9..40,400;9..40,500;9..40,600;9..40,700&display=swap');

:root { color: #29323A; background: #FAF8F4; font-family: 'DM Sans', system-ui, sans-serif; }
* { box-sizing: border-box; }
body { min-height: 100vh; margin: 0; background: radial-gradient(circle at top right, #E9E2D3 0, transparent 31rem), #FAF8F4; }
.identity-container { display: grid; min-height: 100vh; place-items: center; padding: 1.5rem; }
.identity-panel { width: min(100%, 28rem); padding: clamp(1.5rem, 5vw, 2.25rem); border: 1px solid #D8D4CC; border-radius: .7rem; background: #FFFDF9; box-shadow: 0 1rem 3rem rgba(31, 58, 95, .1); }
.identity-eyebrow { margin: 0 0 .45rem; color: #1F3A5F; font-family: 'DM Mono', monospace; font-size: .67rem; font-weight: 500; letter-spacing: .09em; text-transform: uppercase; }
h1 { margin: 0 0 .45rem; font-family: 'Crimson Text', Georgia, serif; font-size: 2.65rem; line-height: 1; }
.identity-panel > p:not(.identity-eyebrow):not(.identity-error) { margin: 0 0 1.5rem; color: #64707A; }
form { display: grid; gap: 1rem; } label { display: grid; gap: .35rem; font-size: .9rem; font-weight: 600; }
input, select { width: 100%; padding: .65rem .7rem; border: 1px solid #D8D4CC; border-radius: .35rem; color: #29323A; background: #FFFDF9; font: inherit; }
input:focus, select:focus { border-color: #1F3A5F; outline: 2px solid rgba(31, 58, 95, .18); outline-offset: 1px; }
button { border: 0; border-radius: .35rem; padding: .7rem 1rem; background: #1F3A5F; color: #FFFDF9; font: inherit; font-weight: 700; cursor: pointer; } button:hover { background: #152D4B; }
.identity-error { margin: 0 0 1rem; padding: .65rem .75rem; border-radius: .35rem; background: #FCE8E3; color: #8D2616; font-size: .9rem; }
.identity-admin { width: min(100%, 46rem); }.identity-admin fieldset { display: grid; gap: .8rem; margin: 0; padding: 1rem; border: 1px solid #D8D4CC; border-radius: .35rem; }.identity-admin legend { padding: 0 .25rem; font-weight: 700; }.checkbox { display: flex; align-items: center; gap: .55rem; }.checkbox input { width: auto; }.admin-list { display: grid; margin: 1.25rem 0; border: 1px solid #D8D4CC; border-radius: .4rem; overflow: hidden; }.admin-list article { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: .85rem 1rem; border-bottom: 1px solid #D8D4CC; }.admin-list article:last-child { border-bottom: 0; }.admin-list strong, .admin-list small { display: block; }.admin-list small { margin-top: .2rem; color: #64707A; }.admin-list a, .back-link { color: #1F3A5F; font-weight: 700; }.back-link { display: inline-block; margin-top: 1.25rem; }
.admin-heading { display: flex; align-items: start; justify-content: space-between; gap: 1rem; }.button-link { align-self: start; border-radius: .35rem; padding: .6rem .8rem; background: #1F3A5F; color: #FFFDF9 !important; text-decoration: none; white-space: nowrap; }.activation-link { overflow-wrap: anywhere; padding: .75rem; border: 1px solid #D8D4CC; border-radius: .35rem; background: #FAF8F4; }.activation-link a { color: #1F3A5F; }
.identity-brand { display: flex; align-items: center; gap: .9rem; margin-bottom: 1.15rem; color: #29323A; text-decoration: none; }.identity-brand img { width: 3.5rem; height: 4.3rem; object-fit: contain; }.identity-brand span { display: grid; gap: .2rem; }.identity-brand strong { font-family: 'Crimson Text', Georgia, serif; font-size: 1.7rem; font-weight: 600; line-height: .95; }.identity-brand small { color: #64707A; font-family: 'DM Sans', system-ui, sans-serif; font-size: .58rem; font-weight: 700; letter-spacing: .045em; line-height: 1.25; text-transform: uppercase; }.role-help { margin: 0; padding: .7rem .8rem; border-left: 3px solid #1F3A5F; background: #FAF8F4; color: #4D5962; font-size: .82rem; line-height: 1.55; }.delete-user-form { margin-top: 1.25rem; }.danger-button { background: #B42318; }.danger-button:hover { background: #8F1C13; }
@media (max-width: 34rem) { .identity-container { padding: 1rem; }.admin-heading { align-items: stretch; flex-direction: column; }.button-link { align-self: stretch; text-align: center; } }
