/* The door frame — the panel 3a (sign in) and 3f (first-run setup) are both drawn in.
   Unscoped rather than a page's scoped sheet because two screens share it. It was Login.razor.css
   until setup needed the same frame, and duplicating 160 lines is how two screens quietly drift
   apart. The .door- prefix is the scope. */

.door {
    min-height: 100vh;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    background: var(--color-bg);
    padding: var(--space-6);
}

/* Spec: 820x620. A fixed width here is the drawn frame, not a page layout — the door is the one
   screen that is genuinely a panel rather than a fluid pane. */
.door > * {
    width: 820px;
    max-width: 100%;
}

.door-strip {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 14px 22px;
    border: var(--rule-section) solid var(--color-divider);
    border-bottom: 0;
    font-family: var(--font-mono);
    font-size: var(--text-mono);
    letter-spacing: 0.14em;
    color: var(--muted);
}

.door-strip-end {
    margin-left: auto;
}

.door-body {
    display: flex;
    border: var(--rule-section) solid var(--color-divider);
    min-height: 560px;
}

.door-form {
    flex: 1;
    min-width: 0;
    padding: 44px 44px 36px;
    display: flex;
    flex-direction: column;
}

.door-wordmark {
    margin: 22px 0 0;
    font-size: 34px;
}

.door-kicker {
    margin-top: var(--space-2);
    font-family: var(--font-mono);
    font-size: var(--text-mono);
    letter-spacing: var(--tracking-kicker);
    color: var(--muted);
}

.door-field {
    margin-bottom: 14px;
}

.door-password {
    display: flex;
    gap: var(--space-2);
}

.door-remember {
    margin-bottom: 18px;
}

.door-check {
    /* A real checkbox rather than the .radio dot: this is a checkbox, and the native control is
       keyboard reachable and announced correctly. accent-color tints it without rebuilding it. */
    position: static;
    opacity: 1;
    width: 16px;
    height: 16px;
    accent-color: var(--color-accent);
}

/* Spec: "Button labels are flush left." .btn-block already does that; the padding is the drawn one. */
.door-submit {
    padding: 11px 14px;
}

.door-error {
    margin: 0 0 14px;
    padding: var(--space-2) var(--space-3);
    background: var(--color-accent-2-100);
    color: var(--color-accent-2-900);
    border-left: 3px solid var(--color-accent-2);
    font-size: var(--text-sm);
}

.door-foot {
    margin-top: auto;
    padding-top: 20px;
    font-family: var(--font-mono);
    font-size: var(--text-mono);
    color: var(--muted-weak);
}

.door-aside {
    width: 290px;
    flex: none;
    background: var(--color-surface);
    border-left: var(--rule-section) solid var(--color-divider);
    padding: 36px 26px;
    display: flex;
    flex-direction: column;
    gap: var(--space-4);
}

.door-aside-label {
    font-family: var(--font-mono);
    font-size: var(--text-mono);
    letter-spacing: 0.14em;
    color: var(--muted);
}

.door-aside-copy {
    margin: 0;
    font-size: 13.5px;
    line-height: 1.6;
    color: color-mix(in srgb, var(--color-text) 75%, transparent);
}

.door-aside-rule {
    margin: var(--space-1) 0;
}

.door-assurance {
    display: flex;
    align-items: center;
    gap: 9px;
    font-size: 12.5px;
}

.door-tick {
    color: var(--color-accent);
    flex: none;
}

@media (max-width: 780px) {
    .door-body {
        flex-direction: column;
    }

    .door-aside {
        width: 100%;
        border-left: 0;
        border-top: var(--rule-section) solid var(--color-divider);
    }

    .door-form {
        padding: var(--space-6) var(--space-4);
    }
}
