/* Kavi Studio gate page (sign-in + Annex P-2 join screen). Light only, Kavi purple accent. */
:root {
    --kj-accent: #9b64d4;
    --kj-text: #1d1d1f;
    --kj-muted: #6e6e73;
    --kj-line: #d2d2d7;
    --kj-bg: #f5f5f7;
    --kj-danger: #c62828;
}
* {
    box-sizing: border-box;
}
body {
    margin: 0;
    background: var(--kj-bg);
    color: var(--kj-text);
    font:
        15px/1.5 -apple-system,
        BlinkMacSystemFont,
        'Segoe UI',
        Roboto,
        Helvetica,
        Arial,
        sans-serif;
}
.kj-card {
    max-width: 680px;
    margin: 32px auto;
    padding: 28px 32px;
    background: #fff;
    border-radius: 16px;
    box-shadow: 0 2px 16px rgba(0, 0, 0, 0.06);
}
@media (max-width: 720px) {
    .kj-card {
        margin: 0;
        border-radius: 0;
        padding: 20px 16px;
    }
}
.kj-head {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 16px;
}
.kj-logo {
    width: 28px;
    height: 28px;
}
.kj-brand {
    font-weight: 600;
}
h1 {
    font-size: 22px;
    margin: 8px 0 12px;
}
.kj-lead {
    color: var(--kj-muted);
}
.kj-small {
    color: var(--kj-muted);
    font-size: 13px;
}
label {
    display: block;
    margin: 12px 0;
}
input[type='text'],
input[type='email'],
input[type='password'],
select {
    display: block;
    width: 100%;
    margin-top: 4px;
    padding: 9px 12px;
    border: 1px solid var(--kj-line);
    border-radius: 10px;
    font: inherit;
    background: #fff;
}
fieldset.kj-residence {
    border: 0;
    padding: 0;
    margin: 12px 0;
    display: grid;
    gap: 8px;
}
fieldset.kj-residence legend {
    padding: 0;
    margin-bottom: 4px;
}
.kj-check {
    display: flex;
    gap: 10px;
    align-items: flex-start;
}
.kj-check input {
    margin-top: 4px;
    flex: none;
    accent-color: var(--kj-accent);
}
.kj-actions {
    display: flex;
    gap: 12px;
    margin-top: 20px;
    flex-wrap: wrap;
}
button {
    font: inherit;
    border-radius: 10px;
    padding: 10px 18px;
    cursor: pointer;
}
.kj-primary {
    background: var(--kj-accent);
    color: #fff;
    border: 0;
}
.kj-primary:disabled {
    opacity: 0.45;
    cursor: not-allowed;
}
.kj-secondary {
    background: #fff;
    color: var(--kj-accent);
    border: 1px solid var(--kj-accent);
}
.kj-error {
    background: #fdecea;
    color: var(--kj-danger);
    border-radius: 10px;
    padding: 10px 14px;
    margin-bottom: 12px;
}
.kj-recording {
    background: #fdecea;
    color: var(--kj-danger);
    border-radius: 10px;
    padding: 10px 14px;
}
.kj-block {
    color: var(--kj-danger);
}
#kjInviteBox {
    display: grid;
    gap: 8px;
    margin: 12px 0;
}
a {
    color: var(--kj-accent);
}
