/* R02 self-service pages (register, e-mail confirmation, password recovery, Site CAD entry): the sign-in page's look. */
:root { --brand:#0B5D51; --ink:#17211D; --ink-soft:#5A655F; --line:#DBE0DB; --paper:#F5F6F4; --surface:#FCFCFB; }
* { box-sizing: border-box; }
body { font: 15px/1.5 'IBM Plex Sans', system-ui, sans-serif; background: var(--paper); color: var(--ink); margin: 0; }
.wrap { max-width: 440px; margin: 7vh auto 40px; padding: 0 16px; }
.brand { display: flex; align-items: baseline; gap: 10px; font-weight: 700; margin: 0 0 18px; color: var(--ink); text-decoration: none; }
.brand .mark { font: 13px 'IBM Plex Mono', ui-monospace, monospace; color: #fff; background: var(--brand); padding: 3px 7px; border-radius: 6px; }
form, .card, .info { background: var(--surface); border: 1px solid var(--line); border-radius: 10px; padding: 22px 24px; }
h1 { font-size: 19px; margin: 0 0 14px; }
label { display: block; margin: 12px 0 4px; font-weight: 500; }
input[type=text], input[type=email], input[type=password], input:not([type]) { width: 100%; padding: 9px 10px; font: inherit;
  border: 1px solid var(--line); border-radius: 6px; background: #fff; }
input:focus { outline: 2px solid var(--brand); outline-offset: 1px; }
.check { display: flex; gap: 8px; align-items: flex-start; font-weight: 400; font-size: 14px; }
.check input { margin-top: 4px; }
button, .button { display: inline-block; text-align: center; margin-top: 18px; width: 100%; padding: 11px; font: inherit; font-weight: 600;
  color: #fff; background: var(--brand); border: 0; border-radius: 6px; cursor: pointer; text-decoration: none; }
button[disabled] { opacity: .6; cursor: wait; }
.secondary { background: #fff; color: var(--brand); border: 1px solid var(--brand); }
.hint { font-size: 13px; color: var(--ink-soft); margin: 4px 0 0; }
#message { min-height: 1.4em; margin-top: 12px; }
#message[data-kind=error] { color: #a40000; }
#message[data-kind=ok] { color: #0b5d51; font-weight: 500; }
.info { margin-top: 14px; font-size: 13.5px; color: var(--ink-soft); }
.info p { margin: 0 0 10px; } .info p:last-child { margin-bottom: 0; }
a { color: var(--brand); }
footer { margin-top: 16px; font-size: 12px; color: var(--ink-soft); text-align: center; line-height: 1.7; }
