body.index {
    background:#fdf6f9;
    color:#1f2a44;
    display:grid;
    place-items:center;
    padding:32px;
}

.index-shell {
    width:100%;
    max-width:1120px;
    display:grid;
    grid-template-columns: 1.2fr 1fr;
    gap:24px;
    align-items:stretch;
}

.panel {
    background:#ffffff;
    border-radius:24px;
    box-shadow:0 14px 28px rgba(15,23,42,.12);
    padding:24px;
}

.index-hero {
    background:linear-gradient(135deg, var(--ku-crimson) 0%, var(--ku-crimson-dark) 100%);
    color:#fff;
    border-radius:24px;
    box-shadow:0 14px 28px rgba(15,23,42,.12);
    display:flex;
    flex-direction:column;
    justify-content:space-between;
    padding:28px;
}
.index-hero h1 {
    margin:0 0 6px 0;
    font-size:28px;
    font-weight:800
}
.index-hero p {
    margin:0;
    opacity:.9
}

.login-card {
    display:grid;
    gap:18px
}
.login-header {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px
}
.login-title {
    font-size:22px;
    font-weight:800;
    color:#1f2a44
}
.login-sub {
    color:#6b7a99;
    font-size:13px
}

.grid-form {
    display:grid;
    grid-template-columns: 1fr 1fr;
    gap:16px
}

.form-row {
    display:grid;
    gap:6px
}

label {
    font-size:13px;
    color:#6b7a99;
    font-weight:600
}

input[type="text"], input[type="password"]{
    width:100%;
    padding:12px 14px;
    border-radius:12px;
    border:1px solid #e6e8f2;
    outline:none;
    background:#fff;
    color:#1f2a44;
}
input[type="text"]:focus, input[type="password"]:focus {
    box-shadow:0 0 0 3px rgba(134,38,51,.20);
    border-color:#e2c8cf
}

.btn{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:8px;
    padding:12px 16px;
    border-radius:12px;
    border:none;
    cursor:pointer;
    font-weight:800;
    letter-spacing:.2px;
}
.btn-primary {
    background:var(--ku-crimson);
    color:white
}
.btn-primary:disabled {
    background:#cdb3b9;
    cursor:not-allowed
}

.err_notice{
    display:flex;
    align-items:flex-start;
    gap:10px;
    padding:12px 14px;
    border-radius:12px;
    background:#fff5f7;
    color:#6a2130;
    border:1px solid #f0d8df;
    font-size:13px;
}

.suc_notice{
    display:flex;
    align-items:flex-start;
    gap:10px;
    padding:12px 14px;
    border-radius:12px;
    background:#e6ffed;
    color:#146c43;
    border:1px solid #b7e4c7;
    font-size:13px;
}

/* 저해상도 모니터 반응형 */
@media (max-width: 960px) {
    .index-shell {
        grid-template-columns:1fr;
    }
}
