/** * Admin Styles - IGNY8 Bridge * Updated with IGNY8 brand colors and modern UI * * @package Igny8Bridge */ /* ============================================ IGNY8 Brand Colors ============================================ */ :root { --igny8-primary: #3B82F6; --igny8-primary-hover: #2563EB; --igny8-success: #10B981; --igny8-warning: #F59E0B; --igny8-error: #EF4444; --igny8-purple: #8B5CF6; --igny8-gray: #6B7280; --igny8-light-gray: #F3F4F6; } /* ============================================ Container & Layout ============================================ */ .igny8-settings-container { width: 95%; margin: 0 auto; max-width: none; box-sizing: border-box; } /* On somewhat smaller screens cap at 1200px */ @media (max-width: 1440px) { .igny8-settings-container { width: 1200px; max-width: 100%; } } /* Very small screens: use full width with side padding */ @media (max-width: 1200px) { .igny8-settings-container { width: 100%; padding: 0 16px; } } /* Page header */ .igny8-page-header { height: 100px; display: flex; align-items: center; border-radius: 8px; margin: 12px 0 24px 0; } .igny8-page-header h1 { margin: 0; font-size: 20px; font-weight: 700; color: #111827; } .igny8-module-title h2 { margin: 0; font-size: 18px; font-weight: 700; color: #0f172a; } /* Ensure top cards equal height */ .igny8-top-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; align-items: stretch; margin-bottom: 32px; } .igny8-top-grid > .igny8-settings-card { display: flex; flex-direction: column; justify-content: flex-start; height: 100%; } /* Make communication primary buttons match API connection buttons */ .igny8-settings-card .button-primary, .igny8-connection-actions .button-primary { background: var(--igny8-primary) !important; border-color: var(--igny8-primary) !important; color: #fff !important; border-radius: 8px !important; padding: 10px 18px !important; box-shadow: 0 6px 12px rgba(59,130,246,0.08); } /* Automation settings UI improvements */ .automation-block label, .automation-block .description, .automation-block h3 { font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial; } .automation-block label { display: flex; align-items: center; gap: 10px; color: #111827; font-size: 14px; line-height: 1.7; margin-bottom: 6px; } .automation-block input[type="checkbox"] { width: 18px; height: 18px; accent-color: var(--igny8-primary); } /* Taxonomies list split into two columns inside right automation column */ .taxonomy-list { display: grid; grid-template-columns: 1fr 1fr; gap: 6px 18px; align-items: start; } .taxonomy-item { display: flex; align-items: center; gap: 8px; font-size: 14px; color: #111827; } .taxonomy-slug { color: #6B7280; font-size: 12px; margin-left: 6px; } /* Module header gradient (left-to-right) */ .igny8-module-title { background: linear-gradient(90deg, #9810fa 0%, #0693e3 100%); border-radius: 10px; padding: 22px 26px; color: #fff; margin-bottom: 18px; box-shadow: 0 6px 18px rgba(9,10,33,0.06); } .igny8-module-title h2 { color: #fff; font-size: 20px; margin: 0; font-weight: 700; } .igny8-module-title p { margin: 6px 0 0 0; color: rgba(255,255,255,0.9); font-size: 14px; } /* Prevent top-grid cards from visually bleeding into the next panels */ .igny8-top-grid + .igny8-settings-card, .igny8-top-grid + .automation-block { margin-top: 32px; } /* Connection status single-row layout */ .igny8-connection-status-display { display: flex; justify-content: space-between; align-items: center; padding: 20px; background: linear-gradient(135deg, #F9FAFB 0%, #F3F4F6 100%); border: 1px solid #E5E7EB; border-radius: 12px; margin-bottom: 20px; } .igny8-connection-status-display .igny8-status-label { font-size: 12px; text-transform: uppercase; letter-spacing: 0.05em; color: #6B7280; margin: 0; font-weight: 600; } .igny8-connection-status-display .igny8-status-value { font-size: 18px; font-weight: 700; color: #111827; display: flex; align-items: center; gap: 10px; } .igny8-connection-status-display .igny8-status-value span { margin: 0; } @media (max-width: 900px) { .igny8-connection-status-display { flex-direction: column; align-items: flex-start; gap: 8px; } .igny8-module-title { padding: 16px; } } /* Top two-column layout for API Connection / Communication */ .igny8-top-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; align-items: start; margin-bottom: 32px; /* ensure separation from subsequent sections */ } @media (max-width: 900px) { .igny8-top-grid { grid-template-columns: 1fr; } } /* Automation settings split into two columns */ .igny8-automation-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; align-items: start; } .igny8-top-grid > .igny8-settings-card { margin: 0; /* grid handles spacing */ position: relative; z-index: 1; /* prevent visual stacking/bleeding */ min-height: 160px; /* ensure cards don't collapse and overlap following content */ box-sizing: border-box; } .igny8-settings-card { position: relative; /* ensure proper stacking context */ z-index: 0; } .automation-column-left, .automation-column-right { background: transparent; } @media (max-width: 900px) { .igny8-automation-grid { grid-template-columns: 1fr; } } .igny8-settings-card { background: #fff; border: 1px solid #E5E7EB; box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px 0 rgba(0, 0, 0, 0.06); padding: 24px; margin: 24px 0; border-radius: 8px; } .igny8-settings-card h2 { margin-top: 0; padding-bottom: 12px; border-bottom: 2px solid var(--igny8-light-gray); color: #111827; font-size: 20px; font-weight: 600; } /* ============================================ Toggle Switch ============================================ */ .igny8-toggle-wrapper { display: flex; align-items: center; gap: 12px; } .igny8-toggle-input { position: relative; width: 48px; height: 24px; -webkit-appearance: none; appearance: none; background: var(--igny8-gray); outline: none; border-radius: 24px; cursor: pointer; transition: 0.3s; } .igny8-toggle-input:checked { background: var(--igny8-success); } .igny8-toggle-input::before { content: ''; position: absolute; width: 20px; height: 20px; border-radius: 50%; top: 2px; left: 2px; background: #fff; transition: 0.3s; box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2); } .igny8-toggle-input:checked::before { left: 26px; } /* ============================================ Sync Operations Grid ============================================ */ .igny8-sync-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 20px; margin-top: 20px; } .igny8-sync-card { background: #fff; border: 2px solid #E5E7EB; border-radius: 12px; padding: 24px; transition: all 0.3s ease; } .igny8-sync-card:hover { border-color: var(--igny8-primary); box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06); transform: translateY(-2px); } .igny8-sync-card-highlight { border-color: var(--igny8-primary); background: linear-gradient(135deg, #EFF6FF 0%, #DBEAFE 100%); } .igny8-sync-icon { width: 48px; height: 48px; background: var(--igny8-primary); border-radius: 10px; display: flex; align-items: center; justify-content: center; margin-bottom: 16px; color: white; } .igny8-sync-card h3 { margin: 0 0 8px 0; font-size: 16px; font-weight: 600; color: #111827; } .igny8-sync-description { font-size: 14px; color: #6B7280; line-height: 1.5; margin-bottom: 12px; } .igny8-sync-meta { font-size: 12px; color: #9CA3AF; margin-bottom: 16px; } .igny8-sync-time { display: inline-flex; align-items: center; gap: 4px; } .igny8-sync-button { width: 100%; height: 40px; background: var(--igny8-primary) !important; border-color: var(--igny8-primary) !important; color: white !important; font-weight: 500 !important; border-radius: 8px !important; transition: all 0.2s ease !important; } .igny8-sync-button:hover:not(:disabled) { background: var(--igny8-primary-hover) !important; border-color: var(--igny8-primary-hover) !important; transform: translateY(-1px); box-shadow: 0 4px 6px -1px rgba(59, 130, 246, 0.3); } .igny8-sync-button:disabled { opacity: 0.5 !important; cursor: not-allowed !important; } .button-loading { display: flex; align-items: center; justify-content: center; gap: 8px; } /* ============================================ Statistics Cards ============================================ */ .igny8-stats-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); gap: 20px; margin-top: 20px; } .igny8-stat-card { background: linear-gradient(135deg, #ffffff 0%, #f9fafb 100%); border: 1px solid #E5E7EB; border-radius: 12px; padding: 20px; display: flex; align-items: flex-start; gap: 16px; transition: all 0.3s ease; } .igny8-stat-card:hover { box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05); transform: translateY(-2px); } .igny8-stat-icon { width: 48px; height: 48px; border-radius: 10px; display: flex; align-items: center; justify-content: center; flex-shrink: 0; } .igny8-stat-content { flex: 1; } .igny8-stat-label { font-size: 12px; color: #6B7280; text-transform: uppercase; letter-spacing: 0.05em; margin-bottom: 4px; font-weight: 500; } .igny8-stat-value { font-size: 28px; font-weight: 700; color: #111827; line-height: 1.2; margin-bottom: 4px; } .igny8-stat-meta { font-size: 12px; color: #9CA3AF; } /* ============================================ Semantic Summary ============================================ */ .igny8-semantic-summary { margin-top: 24px; padding: 20px; background: linear-gradient(135deg, #F3E8FF 0%, #E9D5FF 100%); border-radius: 12px; border: 1px solid #D8B4FE; } .igny8-semantic-summary h3 { margin: 0 0 16px 0; font-size: 16px; font-weight: 600; color: #6B21A8; } .igny8-semantic-stats { display: flex; gap: 32px; flex-wrap: wrap; } .igny8-semantic-stat { display: flex; flex-direction: column; gap: 4px; } .igny8-semantic-stat .value { font-size: 24px; font-weight: 700; color: #7C3AED; } .igny8-semantic-stat .label { font-size: 12px; color: #8B5CF6; text-transform: uppercase; letter-spacing: 0.05em; } /* ============================================ Status Indicators ============================================ */ .igny8-status-connected { color: var(--igny8-success); font-weight: 600; } .igny8-status-disconnected { color: var(--igny8-error); font-weight: 600; } /* ============================================ API Connection Form ============================================ */ .igny8-api-connection-form { background: linear-gradient(135deg, #ffffff 0%, #f9fafb 100%); border: 2px solid #E5E7EB; border-radius: 12px; padding: 32px; margin: 0 0 24px 0; } .igny8-api-form-group { margin-bottom: 20px; } .igny8-api-form-group label { display: block; margin-bottom: 8px; font-weight: 600; color: #111827; font-size: 14px; } .igny8-api-form-group input[type="text"], .igny8-api-form-group input[type="password"] { width: 100%; padding: 12px 14px; border: 1px solid #D1D5DB; border-radius: 8px; font-size: 14px; transition: all 0.2s ease; font-family: 'Courier New', monospace; background-color: #fff; } .igny8-api-form-group input[type="text"]:focus, .igny8-api-form-group input[type="password"]:focus { outline: none; border-color: var(--igny8-primary); box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.1); } .igny8-api-form-group input[type="text"]:disabled { background-color: #F3F4F6; color: #9CA3AF; cursor: not-allowed; } .igny8-api-form-description { font-size: 13px; color: #6B7280; margin-top: 6px; line-height: 1.5; } .igny8-api-form-description a { color: var(--igny8-primary); text-decoration: none; font-weight: 500; } .igny8-api-form-description a:hover { text-decoration: underline; } .igny8-connection-actions { display: flex; gap: 12px; flex-wrap: wrap; margin-top: 24px; } .igny8-connection-actions .button { border-radius: 8px; padding: 10px 20px; font-weight: 500; border: none; cursor: pointer; transition: all 0.2s ease; height: auto; } .igny8-connection-actions .button-primary { background: var(--igny8-primary) !important; color: white !important; } .igny8-connection-actions .button-primary:hover { background: var(--igny8-primary-hover) !important; transform: translateY(-1px); box-shadow: 0 4px 6px -1px rgba(59, 130, 246, 0.3); } .igny8-connection-actions .button-secondary { background: #E5E7EB !important; color: #111827 !important; } .igny8-connection-actions .button-secondary:hover { background: #D1D5DB !important; } .igny8-connection-status-display { padding: 20px; background: linear-gradient(135deg, #F9FAFB 0%, #F3F4F6 100%); border: 1px solid #E5E7EB; border-radius: 12px; margin-bottom: 20px; } .igny8-connection-status-display .igny8-status-label { font-size: 12px; text-transform: uppercase; letter-spacing: 0.05em; color: #6B7280; margin-bottom: 8px; font-weight: 500; } .igny8-connection-status-display .igny8-status-value { font-size: 20px; font-weight: 700; display: flex; align-items: center; gap: 8px; } .igny8-status-indicator { width: 12px; height: 12px; border-radius: 50%; display: inline-block; } .igny8-status-indicator.connected { background-color: var(--igny8-success); } .igny8-status-indicator.disconnected { background-color: var(--igny8-gray); } .igny8-api-key-display { display: flex; align-items: center; gap: 12px; padding: 12px; background-color: #F3F4F6; border-radius: 8px; word-break: break-all; } .igny8-api-key-mask { font-family: 'Courier New', monospace; color: #6B7280; font-size: 14px; } /* ============================================ Diagnostics ============================================ */ .igny8-diagnostics-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 16px; margin-top: 20px; } .igny8-diagnostic-item { padding: 16px; background: linear-gradient(135deg, #F9FAFB 0%, #F3F4F6 100%); border: 1px solid #E5E7EB; border-radius: 8px; transition: all 0.2s ease; } .igny8-diagnostic-item:hover { border-color: var(--igny8-primary); box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05); } .igny8-diagnostic-label { font-size: 11px; text-transform: uppercase; letter-spacing: 0.05em; color: #6B7280; margin-bottom: 8px; font-weight: 500; } .igny8-diagnostic-value { font-size: 16px; font-weight: 600; color: #111827; } .igny8-diagnostic-item .description { margin: 6px 0 0; color: #9CA3AF; font-size: 12px; } /* ============================================ Sync Status Messages ============================================ */ .igny8-sync-status { margin-top: 20px; padding: 16px; border-radius: 8px; display: none; font-size: 14px; } .igny8-sync-status.igny8-sync-status-success { background-color: #D1FAE5; border: 1px solid #6EE7B7; color: #065F46; display: block; } .igny8-sync-status.igny8-sync-status-error { background-color: #FEE2E2; border: 1px solid #FCA5A5; color: #991B1B; display: block; } .igny8-sync-status.igny8-sync-status-loading { background-color: #DBEAFE; border: 1px solid #93C5FD; color: #1E40AF; display: block; } /* ============================================ Loading States ============================================ */ .igny8-loading { opacity: 0.6; pointer-events: none; } @keyframes igny8-spin { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } } /* ============================================ Messages & Notifications ============================================ */ .igny8-message { padding: 16px; margin: 15px 0; border-left: 4px solid; background: #fff; border-radius: 4px; } .igny8-message.igny8-message-success { border-color: var(--igny8-success); background-color: #F0FDF4; color: #065F46; } .igny8-message.igny8-message-error { border-color: var(--igny8-error); background-color: #FEF2F2; color: #991B1B; } .igny8-message.igny8-message-info { border-color: var(--igny8-primary); background-color: #EFF6FF; color: #1E40AF; } .igny8-message.igny8-message-warning { border-color: var(--igny8-warning); background-color: #FFFBEB; color: #92400E; } /* ============================================ Responsive ============================================ */ @media (max-width: 782px) { .igny8-sync-grid { grid-template-columns: 1fr; } .igny8-stats-grid { grid-template-columns: 1fr; } .igny8-diagnostics-grid { grid-template-columns: 1fr; } } @media (max-width: 600px) { .igny8-settings-card { padding: 16px; } .igny8-sync-card { padding: 16px; } .igny8-stat-card { flex-direction: column; } }