:root { --sidebar-width: 300px; }
body { background: #f8f9fa; }

/* ── Login ── */
.login-wrap { min-height: 100vh; display:flex; align-items:center; justify-content:center; }
.login-card { width: 360px; }

/* ── Layout ── */
.app-nav  { height: 56px; background: #1e3a5f; z-index: 100; }
.app-nav .brand { color:#fff; font-weight:700; font-size:1.15rem; text-decoration:none; }
.app-sidebar {
    width: var(--sidebar-width);
    min-height: calc(100vh - 56px);
    background: #fff;
    border-right: 1px solid #dee2e6;
    overflow-y: auto;
    flex-shrink: 0;
}
.app-main { flex: 1; min-width: 0; overflow-y: auto; }
.app-body  { display:flex; height: calc(100vh - 56px); }

/* ── Sidebar profiles ── */
.profile-item {
    padding: .6rem 1rem;
    border-bottom: 1px solid #f0f0f0;
    cursor: pointer;
    transition: background .15s;
}
.profile-item:hover, .profile-item.active { background: #e8f0fe; }
.profile-item .pi-name { font-weight:600; font-size:.92rem; }
.profile-item .pi-domain { font-size:.78rem; color:#6c757d; }

/* ── Terminal ── */
#terminal {
    background: #0d1117;
    color: #c9d1d9;
    font-family: 'Courier New', monospace;
    font-size: .82rem;
    line-height: 1.55;
    padding: 1rem 1.25rem;
    min-height: 400px;
    white-space: pre-wrap;
    word-break: break-word;
    border-radius: 6px;
}
#terminal .t-ok    { color: #3fb950; }
#terminal .t-info  { color: #58a6ff; }
#terminal .t-warn  { color: #d29922; }
#terminal .t-error { color: #f85149; }
#terminal .t-bold  { font-weight:700; color:#e6edf3; }
#terminal .t-done  { color: #3fb950; font-weight:700; font-size:1rem; }
#terminal .t-fail  { color: #f85149; font-weight:700; font-size:1rem; }

/* ── Forms ── */
.form-section-header {
    background: #f0f4ff;
    font-weight: 600;
    padding: .5rem .75rem;
    border-radius: 4px;
    margin-bottom: .5rem;
    font-size: .9rem;
    cursor: pointer;
    user-select: none;
}
.form-section-header i { transition: transform .2s; }
.form-section-header.collapsed i { transform: rotate(-90deg); }
.required-mark { color: #dc3545; margin-left:2px; }
.section-optional { font-size:.75rem; color:#6c757d; font-weight:400; margin-left:.5rem; }
.badge-toggle { cursor:pointer; }
.deploy-step-hint { font-size:.72rem; color:#6c757d; padding-left:1.35rem; display:block; }
.form-check-input:disabled ~ .form-check-label { opacity:.45; cursor:default; }

/* ── OTP input ── */
.otp-input { font-size:1.6rem; letter-spacing:.35rem; text-align:center; font-family:monospace; }

/* ── Misc ── */
.sidebar-actions { padding:.75rem 1rem; border-bottom:1px solid #dee2e6; }
.empty-state { color:#adb5bd; text-align:center; padding:2rem 1rem; }
#profileForm label { font-size:.875rem; font-weight:500; }
#profileForm input, #profileForm select, #profileForm textarea {
    font-size: .875rem;
}
#profileForm .form-check-label { font-weight: 400; }
