:root {
    --lb-bg: #111111;
    --lb-card: #1a1a1a;
    --lb-border: #333;
    --lb-primary: #007bff;
    --lb-primary-hover: #0069d9;
    --lb-text: #ffffff;
    --lb-text-muted: #aaaaaa;
    --lb-error: #ff4d4d;
    --lb-success: #28a745;
}

/* --- LAYOUT WRAPPERS --- */
.lb-wrapper { 
    width: 100%; 
    max-width: 100%; 
    margin: 0 auto; 
    font-family: inherit; 
    color: var(--lb-text); 
}

.lb-card { 
    background: var(--lb-card); 
    padding: 30px; 
    border-radius: 12px; 
    border: 1px solid var(--lb-border); 
    box-shadow: 0 10px 30px rgba(0,0,0,0.5); 
}

/* --- TYPOGRAPHY --- */
.lb-title { margin-top: 0; font-size: 24px; margin-bottom: 20px; text-align: left; font-weight: 700; }
.lb-desc { text-align: left; color: var(--lb-text-muted); font-size: 14px; margin-bottom: 20px; }
.lb-wrapper p { margin-bottom: 20px; color: #fff; }

/* --- FIELDS & INPUTS --- */
.lb-field-group { margin-bottom: 15px; }

.lb-field-group label { 
    display: block; 
    margin-bottom: 8px; 
    font-weight: 600; 
    font-size: 13px; 
    color: var(--lb-text-muted); 
}

/* Standard Input */
.lb-input { 
    width: 100%; 
    padding: 0 15px;
    background: #0a0a0a; 
    border: 1px solid var(--lb-border); 
    border-radius: 6px; 
    color: #fff; 
    font-size: 14px; 
    box-sizing: border-box; 
    display: block;
    transition: border-color 0.2s;
    height: 48px; 
}

.lb-input:focus { 
    border-color: var(--lb-primary); 
    outline: none; 
}

/* --- ACTIONS --- */
.lb-action-row {
    display: flex;
    gap: 10px;
}

.lb-row-split {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 20px;
    font-size: 13px;
}

.lb-checkbox-group { display: flex; align-items: center; gap: 8px; }
.lb-checkbox-group input { width: 16px; height: 16px; margin: 0; accent-color: var(--lb-primary); cursor: pointer; }
/* Fixed Alignment */
.lb-checkbox-group label { margin: 0; cursor: pointer; color: var(--lb-text-muted); line-height: normal; position: relative; top: 1px; }

.lb-link-sm { color: var(--lb-primary); text-decoration: none; transition: 0.2s; font-weight: 500; }
.lb-link-sm:hover { color: #fff; text-decoration: underline; }

.lb-btn { 
    width: 100%; 
    padding: 0 12px; 
    background: var(--lb-primary); 
    background-image: none !important; /* Kill gradient */
    box-shadow: none;
    color: white !important;
    border: none; 
    border-radius: 6px; 
    font-weight: 600; 
    cursor: pointer; 
    font-size: 15px; 
    transition: background 0.2s;
    display: flex;
    align-items: center;
    justify-content: center;
    height: 45px;
    text-decoration: none;
}

.lb-btn-primary:hover { background: var(--lb-primary-hover); }

.lb-btn-dark { 
    background: #2a2a2a; 
    border: 1px solid #333;
}
.lb-btn-dark:hover { background: #333; border-color: #555; }

/* --- UTILS --- */
.lb-hidden { display: none !important; }
.lb-hp-field { position: absolute; left: -9999px; }

/* 2FA Code Input - Left Aligned */
.lb-code-input { 
    text-align: left; 
    letter-spacing: 5px; 
    font-size: 20px; 
    font-family: monospace; 
} 

.lb-strength-meter { height: 4px; background: #222; margin-top: 10px; border-radius: 2px; overflow: hidden; }
.lb-strength-bar { height: 100%; width: 0%; transition: width 0.3s; }
.lb-strength-text { font-size: 11px; margin-top: 5px; color: var(--lb-text-muted); text-align: right; }

.lb-error-msg { background: rgba(255, 77, 77, 0.1); border: 1px solid rgba(255, 77, 77, 0.3); color: #ff6b6b; padding: 12px; border-radius: 6px; margin-bottom: 20px; display: none; font-size: 13px; text-align: center; }
.lb-success-msg { background: rgba(40, 167, 69, 0.1); border: 1px solid rgba(40, 167, 69, 0.3); color: #4ade80; padding: 12px; border-radius: 6px; margin-bottom: 20px; display: none; font-size: 13px; text-align: center; }

@media(max-width: 600px) { .lb-card { padding: 20px; } }