# thinkrank/1.0.0/src/admin/styles/admin.scss

ThinkRank AI SEO – AI SEO Plugin for WordPress: Schema, XML Sitemaps, Meta Tags, Search Console &amp; Local SEO, version 1.0.0. 728 lines.

- Page: https://pluginprobe.com/plugins/thinkrank/1.0.0/code/src/admin/styles/admin.scss
- Raw: https://pluginprobe.com/plugins/thinkrank/1.0.0/raw/src/admin/styles/admin.scss
- Modified: 2025-08-10T07:57:44+00:00

Line numbers below start at 1. Link to a line or a range by appending a fragment to the
page URL, for example `https://pluginprobe.com/plugins/thinkrank/1.0.0/code/src/admin/styles/admin.scss#L10-L20`.

```scss
/**
 * Admin Styles
 *
 * Main stylesheet for ThinkRank admin interface
 *
 * @package ThinkRank
 * @since 1.0.0
 */

// Import all SCSS modules first (must be at the top)
@use '../../shared/styles/variables' as *;
@use '../../shared/styles/mixins' as *;
@use './_utilities';  // Add utilities after variables but before components
@use './components';

// CSS Custom Properties for WordPress compatibility
// Main layout and header styles that might be missing
:root {
    --thinkrank-primary: #{$thinkrank-primary};
    --thinkrank-secondary: #{$thinkrank-secondary};
    --thinkrank-success: #{$thinkrank-success};
    --thinkrank-warning: #{$thinkrank-warning};
    --thinkrank-error: #{$thinkrank-error};
    --thinkrank-text: #{$thinkrank-text-primary};
    --thinkrank-text-primary: #{$thinkrank-text-primary};
    --thinkrank-text-secondary: #{$thinkrank-text-secondary};
    --thinkrank-text-light: #{$thinkrank-text-light};
    --thinkrank-border: #{$thinkrank-border};
    --thinkrank-border-light: #{$thinkrank-border-light};
    --thinkrank-bg: #{$thinkrank-bg};
    --thinkrank-white: #{$thinkrank-white};
    --thinkrank-shadow: #{$thinkrank-shadow};
    --thinkrank-radius: #{$thinkrank-radius};
    --thinkrank-spacing: #{$thinkrank-spacing};
}

// Base styles
.thinkrank-app {
    font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen-Sans, Ubuntu, Cantarell, 'Helvetica Neue', sans-serif;
    color: var(--thinkrank-text);
    line-height: 1.5;
    background: #fafbfc; // Subtle page background for better visual connection
    min-height: 100vh;
}

// Loading states
.thinkrank-loading {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: calc(var(--thinkrank-spacing) * 2);
    text-align: center;
    
    .spinner {
        margin-bottom: var(--thinkrank-spacing);
    }
    
    p {
        margin: 0;
        color: var(--thinkrank-text-light);
    }
}

// Error states
.thinkrank-error {
    padding: var(--thinkrank-spacing);
    
    .notice {
        margin: 0;
    }
}
.thinkrank-content .components-notice{
    margin-bottom: 10px;
}
// Main layout - matching header container design
.thinkrank-main {
    display: flex;
    gap: var(--thinkrank-spacing);
    margin: 0 auto; // Remove top/bottom margin
    padding: 20px; // Consistent padding with header

    @media (max-width: 768px) {
        padding: 16px; // Match header mobile padding
    }
}

// Navigation
.thinkrank-navigation {
    flex: 0 0 200px;
    
    .nav-tab-wrapper {
        border: none;
        margin: 0;
        
        .nav-tab {
            display: block;
            width: 100%;
            margin: 0 0 2px 0;
            padding: 12px var(--thinkrank-spacing);
            border: 1px solid var(--thinkrank-border);
            border-radius: var(--thinkrank-radius);
            background: var(--thinkrank-white);
            color: var(--thinkrank-text);
            text-decoration: none;
            transition: all 0.2s ease;
            
            &:hover {
                background: var(--thinkrank-bg);
                color: var(--thinkrank-primary);
            }
            
            &.nav-tab-active {
                background: var(--thinkrank-primary);
                color: var(--thinkrank-white);
                border-color: var(--thinkrank-primary);
            }
        }
    }
}

// Content area
.thinkrank-content {
    flex: 1;
    background: var(--thinkrank-white);
    border: 1px solid var(--thinkrank-border);
    border-radius: var(--thinkrank-radius);
    box-shadow: var(--thinkrank-shadow);
    padding: var(--thinkrank-spacing);
}

// Dashboard specific styles
.thinkrank-dashboard {
    .thinkrank-dashboard-stats {
        display: grid;
        grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
        gap: var(--thinkrank-spacing);
        margin-top: var(--thinkrank-spacing);

        .stat-card {
            padding: 20px;
            background: var(--thinkrank-white);
            border: 1px solid var(--thinkrank-border);
            border-radius: var(--thinkrank-radius);
            /* Removed text-align: center - using left-aligned design */
            transition: all 0.2s ease;

            &:hover {
                box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
                transform: translateY(-2px);
            }

            h3 {
                margin: 0 0 12px 0;
                font-size: 14px;
                font-weight: 500;
                color: var(--thinkrank-text-light);
                text-transform: uppercase;
                letter-spacing: 0.5px;
            }

            .stat-number {
                margin: 0 0 8px 0;
                font-size: 32px;
                font-weight: 700;
                color: var(--thinkrank-primary);
                line-height: 1;
            }

            .stat-label {
                margin: 0;
                font-size: 12px;
                color: var(--thinkrank-text-light);
            }
        }
    }

    // Legacy AI tools grid styles removed - now using utility classes
}

// Compact Header - matching content container design
.thinkrank-header-compact {
    background: var(--thinkrank-white);
    border-bottom: 1px solid var(--thinkrank-border);
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05);
    margin-bottom: 0; // Remove margin to connect with content

    .header-main {
        display: flex;
        align-items: center;
        justify-content: space-between;
        padding: 16px 20px; // Match content container padding
        margin: 0 auto;
        gap: 24px;

        @media (max-width: 768px) {
            padding: 12px 16px; // Smaller padding on mobile
        }
    }

    .header-branding {
        display: flex;
        align-items: center;
        gap: 24px;
        flex: 1;
        min-width: 0;
    }

    .brand-info {
        flex-shrink: 0;

        .brand-name {
            display: flex;
            align-items: center;
            gap: 10px; // Slightly increased gap
            margin: 0;
            font-size: 20px; // Slightly larger for better hierarchy
            font-weight: 600;
            color: var(--thinkrank-text);

            .brand-icon {
                width: 22px;
                height: 22px;
                color: var(--thinkrank-primary); // Use primary color for the icon
                filter: drop-shadow(0 1px 2px rgba(0, 0, 0, 0.1)); // Subtle shadow for depth
                flex-shrink: 0; // Prevent icon from shrinking
            }
        }
    }

    .page-info {
        flex: 1;
        min-width: 0;
        margin-left: 16px; // Add separation from brand

        .page-title {
            margin: 0;
            font-size: 18px; // Increased for better hierarchy
            font-weight: 500;
            color: var(--thinkrank-text);
            white-space: nowrap;
            overflow: hidden;
            text-overflow: ellipsis;
            line-height: 1.3; // Better line height
        }

        .page-description {
            margin: 4px 0 0 0; // Slightly more space
            font-size: 14px; // Slightly larger for readability
            color: var(--thinkrank-text-light);
            white-space: nowrap;
            overflow: hidden;
            text-overflow: ellipsis;
            line-height: 1.4;
        }
    }

    .header-actions {
        display: flex;
        align-items: center;
        flex-shrink: 0;
    }

    .version-info {
        font-size: 12px;
        font-weight: 500; // Slightly bolder
        color: var(--thinkrank-text-light);
        background: #f8f9fa; // Subtle background
        padding: 6px 12px; // More padding for better appearance
        border-radius: 6px; // More rounded
        border: 1px solid #e9ecef; // Lighter border
        box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05); // Subtle shadow
        transition: all 0.2s ease;

        &:hover {
            background: #e9ecef;
            border-color: #dee2e6;
        }
    }

    // Responsive design for compact header
    @media (max-width: 768px) {
        .header-main {
            padding: 10px 16px;
            flex-wrap: wrap;
            gap: 12px;
        }

        .header-branding {
            gap: 16px;
            flex: 1;
            min-width: 0;
        }

        .brand-info .brand-name {
            font-size: 16px;
        }

        .page-info {
            .page-title {
                font-size: 14px;
            }

            .page-description {
                display: none; // Hide description on mobile
            }
        }

        .version-info {
            font-size: 11px;
            padding: 3px 6px;
        }
    }

    @media (max-width: 480px) {
        .header-branding {
            flex-direction: column;
            align-items: flex-start;
            gap: 8px;
        }

        .page-info .page-title {
            font-size: 13px;
        }

        .version-info {
            font-size: 10px;
            padding: 2px 4px;
        }
    }
}

@keyframes pulse {
    0% {
        opacity: 1;
    }
    50% {
        opacity: 0.5;
    }
    100% {
        opacity: 1;
    }
}

// Cards
.thinkrank-card {
    background: var(--thinkrank-white);
    border: 1px solid var(--thinkrank-border);
    border-radius: var(--thinkrank-radius);
    box-shadow: var(--thinkrank-shadow);
    margin-bottom: var(--thinkrank-spacing);
    
    .card-header {
        padding: var(--thinkrank-spacing);
        border-bottom: 1px solid var(--thinkrank-border);
        background: var(--thinkrank-bg);
        
        h2, h3 {
            margin: 0;
            font-size: 18px;
            font-weight: 600;
        }
    }
    
    .card-body {
        padding: var(--thinkrank-spacing);
    }
    
    .card-footer {
        padding: var(--thinkrank-spacing);
        border-top: 1px solid var(--thinkrank-border);
        background: var(--thinkrank-bg);
    }
}

// Buttons
.thinkrank-button {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 8px 16px;
    border: 1px solid var(--thinkrank-border);
    border-radius: var(--thinkrank-radius);
    background: var(--thinkrank-white);
    color: var(--thinkrank-text);
    text-decoration: none;
    cursor: pointer;
    transition: all 0.2s ease;

    &:hover {
        background: var(--thinkrank-bg);
        border-color: var(--thinkrank-primary);
        color: var(--thinkrank-primary);
    }

    &.is-primary {
        background: var(--thinkrank-primary);
        border-color: var(--thinkrank-primary);
        color: var(--thinkrank-white);

        &:hover {
            background: var(--thinkrank-secondary);
            border-color: var(--thinkrank-secondary);
        }
    }

    &.is-success {
        background: var(--thinkrank-success);
        border-color: var(--thinkrank-success);
        color: var(--thinkrank-white);
    }

    &.is-warning {
        background: var(--thinkrank-warning);
        border-color: var(--thinkrank-warning);
        color: var(--thinkrank-text);
    }

    &.is-danger {
        background: var(--thinkrank-error);
        border-color: var(--thinkrank-error);
        color: var(--thinkrank-white);
    }

    &:disabled,
    &.is-disabled {
        opacity: 0.6;
        cursor: not-allowed;

        &:hover {
            background: var(--thinkrank-white);
            border-color: var(--thinkrank-border);
            color: var(--thinkrank-text);
        }
    }
}

// AI Button Styles
.thinkrank-ai-button {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-weight: 500;
    transition: all 0.2s ease;
    position: relative;

    .sparkle-icon {
        font-size: 16px;
        animation: sparkle 2s ease-in-out infinite;
    }

    .components-spinner {
        margin-right: 4px;
    }

    // Size variants
    &--small {
        padding: 6px 12px;
        font-size: 13px;

        .sparkle-icon {
            font-size: 14px;
        }
    }

    &--medium {
        padding: 8px 16px;
        font-size: 14px;

        .sparkle-icon {
            font-size: 16px;
        }
    }

    &--large {
        padding: 12px 20px;
        font-size: 16px;

        .sparkle-icon {
            font-size: 18px;
        }
    }

    // Variant styles
    &--primary {
        background: linear-gradient(135deg, #2563eb 0%, #3b82f6 100%);
        border-color: #2563eb;
        color: white;
        box-shadow: 0 2px 4px rgba(37, 99, 235, 0.2);

        &:hover:not(:disabled) {
            background: linear-gradient(135deg, #1d4ed8 0%, #2563eb 100%);
            border-color: #1d4ed8;
            transform: translateY(-1px);
            box-shadow: 0 4px 12px rgba(37, 99, 235, 0.3);
        }

        &:active {
            transform: translateY(0);
            box-shadow: 0 2px 4px rgba(37, 99, 235, 0.2);
        }
    }

    &--secondary {
        background: var(--thinkrank-white);
        border-color: var(--thinkrank-border);
        color: var(--thinkrank-text);

        &:hover:not(:disabled) {
            background: var(--thinkrank-bg);
            border-color: var(--thinkrank-primary);
            color: var(--thinkrank-primary);
            transform: translateY(-1px);
            box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
        }
    }

    &:disabled {
        opacity: 0.6;
        cursor: not-allowed;
        transform: none !important;
        box-shadow: none !important;

        .sparkle-icon {
            animation: none;
        }
    }
}

@keyframes sparkle {
    0%, 100% {
        transform: scale(1) rotate(0deg);
        opacity: 1;
    }
    25% {
        transform: scale(1.1) rotate(90deg);
        opacity: 0.8;
    }
    50% {
        transform: scale(1) rotate(180deg);
        opacity: 1;
    }
    75% {
        transform: scale(1.1) rotate(270deg);
        opacity: 0.8;
    }
}

// Forms
.thinkrank-form {
    .form-group {
        margin-bottom: var(--thinkrank-spacing);
        
        label {
            display: block;
            margin-bottom: 4px;
            font-weight: 600;
        }
        
        .description {
            margin-top: 4px;
            font-size: 13px;
            color: var(--thinkrank-text-light);
        }
    }
    
    input[type="text"],
    input[type="email"],
    input[type="password"],
    input[type="number"],
    textarea,
    select {
        width: 100%;
        padding: 8px 12px;
        border: 1px solid var(--thinkrank-border);
        border-radius: var(--thinkrank-radius);
        font-size: 14px;
        
        &:focus {
            outline: none;
            border-color: var(--thinkrank-primary);
            box-shadow: 0 0 0 1px var(--thinkrank-primary);
        }
    }
}

// Notices
.thinkrank-notice {
    padding: 12px var(--thinkrank-spacing);
    border-left: 4px solid var(--thinkrank-primary);
    background: var(--thinkrank-white);
    margin-bottom: var(--thinkrank-spacing);
    
    &.is-success {
        border-left-color: var(--thinkrank-success);
    }
    
    &.is-warning {
        border-left-color: var(--thinkrank-warning);
    }
    
    &.is-error {
        border-left-color: var(--thinkrank-error);
    }
    
    p {
        margin: 0;
    }
}

// Responsive design
@media (max-width: 768px) {
    .thinkrank-main {
        flex-direction: column;
    }
    
    .thinkrank-navigation {
        flex: none;
        
        .nav-tab-wrapper {
            display: flex;
            overflow-x: auto;
            
            .nav-tab {
                flex: 0 0 auto;
                white-space: nowrap;
            }
        }
    }
}

// WordPress admin compatibility
.wp-admin {
    .thinkrank-app {
        // Ensure compatibility with WordPress admin styles
        * {
            box-sizing: border-box;
        }
    }
}

/* Missing Layout Styles - Ensure main layout works */
.thinkrank-main-container {
  max-width: 1400px;
  margin: 0 auto;
  padding: 20px;

  @media (min-width: 1600px) {
    max-width: 1600px;
  }

  @media (max-width: 768px) {
    padding: 16px;
    max-width: 100%;
  }
}

/* Fix horizontal overflow issues */
.thinkrank-app {
  pre, code {
    overflow-wrap: break-word !important;
    word-wrap: break-word !important;
    white-space: pre-wrap !important;
    max-width: 100% !important;
    overflow-x: auto !important;
  }

  // Ensure schema preview containers don't overflow
  .components-card {
    overflow: hidden;

    pre {
      max-width: 100%;
      box-sizing: border-box;
    }
  }
}

/* Ensure WordPress components work properly */
.components-card {
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1) !important;
  border: 1px solid #e1e5e9 !important;
  border-radius: 8px !important;
  transition: box-shadow 0.2s ease;
  overflow: hidden;

  &:hover {
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.12) !important;
  }
}

.components-card-header {
  border-bottom: 1px solid #f0f0f1 !important;
  background: #fafafa !important;
  border-radius: 8px 8px 0 0 !important;
}

.components-card-body {
  padding: 1.5rem !important;
}

/* Button spacing fixes */
.components-button + .components-button {
  margin-left: 0.75rem;
}

.components-button.is-primary {
  background: #2563eb !important;
  border-color: #2563eb !important;

  &:hover:not(:disabled) {
    background: #1d4ed8 !important;
    border-color: #1d4ed8 !important;
  }
}

/* Export options spacing */
.thinkrank-export-options {
  margin-top: 2rem;
  padding-top: 1.5rem;
  border-top: 1px solid #e5e7eb;
}






```
