diff --git a/.claude/settings.local.json b/.claude/settings.local.json index 58ffdda..ee4f3af 100644 --- a/.claude/settings.local.json +++ b/.claude/settings.local.json @@ -26,7 +26,15 @@ "WebFetch(domain:ai.google.dev)", "WebFetch(domain:github.com)", "WebFetch(domain:oraios.github.io)", - "Bash(which uv:*)" + "Bash(which uv:*)", + "mcp__serena__find_symbol", + "mcp__serena__activate_project", + "Bash(find:*)", + "Bash(head:*)", + "mcp__serena__get_symbols_overview", + "mcp__serena__search_for_pattern", + "mcp__serena__read_file", + "mcp__serena__replace_content" ] }, "statusLine": { diff --git a/.serena/.gitignore b/.serena/.gitignore new file mode 100644 index 0000000..14d86ad --- /dev/null +++ b/.serena/.gitignore @@ -0,0 +1 @@ +/cache diff --git a/.serena/project.yml b/.serena/project.yml new file mode 100644 index 0000000..8fcc0c5 --- /dev/null +++ b/.serena/project.yml @@ -0,0 +1,117 @@ +# the name by which the project can be referenced within Serena +project_name: "adsPRO" + + +# list of languages for which language servers are started; choose from: +# al bash clojure cpp csharp +# csharp_omnisharp dart elixir elm erlang +# fortran fsharp go groovy haskell +# java julia kotlin lua markdown +# matlab nix pascal perl php +# php_phpactor powershell python python_jedi r +# rego ruby ruby_solargraph rust scala +# swift terraform toml typescript typescript_vts +# vue yaml zig +# (This list may be outdated. For the current list, see values of Language enum here: +# https://github.com/oraios/serena/blob/main/src/solidlsp/ls_config.py +# For some languages, there are alternative language servers, e.g. csharp_omnisharp, ruby_solargraph.) +# Note: +# - For C, use cpp +# - For JavaScript, use typescript +# - For Free Pascal/Lazarus, use pascal +# Special requirements: +# Some languages require additional setup/installations. +# See here for details: https://oraios.github.io/serena/01-about/020_programming-languages.html#language-servers +# When using multiple languages, the first language server that supports a given file will be used for that file. +# The first language is the default language and the respective language server will be used as a fallback. +# Note that when using the JetBrains backend, language servers are not used and this list is correspondingly ignored. +languages: +- typescript + +# the encoding used by text files in the project +# For a list of possible encodings, see https://docs.python.org/3.11/library/codecs.html#standard-encodings +encoding: "utf-8" + +# whether to use project's .gitignore files to ignore files +ignore_all_files_in_gitignore: true + +# list of additional paths to ignore in this project. +# Same syntax as gitignore, so you can use * and **. +# Note: global ignored_paths from serena_config.yml are also applied additively. +ignored_paths: [] + +# whether the project is in read-only mode +# If set to true, all editing tools will be disabled and attempts to use them will result in an error +# Added on 2025-04-18 +read_only: false + +# list of tool names to exclude. We recommend not excluding any tools, see the readme for more details. +# Below is the complete list of tools for convenience. +# To make sure you have the latest list of tools, and to view their descriptions, +# execute `uv run scripts/print_tool_overview.py`. +# +# * `activate_project`: Activates a project by name. +# * `check_onboarding_performed`: Checks whether project onboarding was already performed. +# * `create_text_file`: Creates/overwrites a file in the project directory. +# * `delete_lines`: Deletes a range of lines within a file. +# * `delete_memory`: Deletes a memory from Serena's project-specific memory store. +# * `execute_shell_command`: Executes a shell command. +# * `find_referencing_code_snippets`: Finds code snippets in which the symbol at the given location is referenced. +# * `find_referencing_symbols`: Finds symbols that reference the symbol at the given location (optionally filtered by type). +# * `find_symbol`: Performs a global (or local) search for symbols with/containing a given name/substring (optionally filtered by type). +# * `get_current_config`: Prints the current configuration of the agent, including the active and available projects, tools, contexts, and modes. +# * `get_symbols_overview`: Gets an overview of the top-level symbols defined in a given file. +# * `initial_instructions`: Gets the initial instructions for the current project. +# Should only be used in settings where the system prompt cannot be set, +# e.g. in clients you have no control over, like Claude Desktop. +# * `insert_after_symbol`: Inserts content after the end of the definition of a given symbol. +# * `insert_at_line`: Inserts content at a given line in a file. +# * `insert_before_symbol`: Inserts content before the beginning of the definition of a given symbol. +# * `list_dir`: Lists files and directories in the given directory (optionally with recursion). +# * `list_memories`: Lists memories in Serena's project-specific memory store. +# * `onboarding`: Performs onboarding (identifying the project structure and essential tasks, e.g. for testing or building). +# * `prepare_for_new_conversation`: Provides instructions for preparing for a new conversation (in order to continue with the necessary context). +# * `read_file`: Reads a file within the project directory. +# * `read_memory`: Reads the memory with the given name from Serena's project-specific memory store. +# * `remove_project`: Removes a project from the Serena configuration. +# * `replace_lines`: Replaces a range of lines within a file with new content. +# * `replace_symbol_body`: Replaces the full definition of a symbol. +# * `restart_language_server`: Restarts the language server, may be necessary when edits not through Serena happen. +# * `search_for_pattern`: Performs a search for a pattern in the project. +# * `summarize_changes`: Provides instructions for summarizing the changes made to the codebase. +# * `switch_modes`: Activates modes by providing a list of their names +# * `think_about_collected_information`: Thinking tool for pondering the completeness of collected information. +# * `think_about_task_adherence`: Thinking tool for determining whether the agent is still on track with the current task. +# * `think_about_whether_you_are_done`: Thinking tool for determining whether the task is truly completed. +# * `write_memory`: Writes a named memory (for future reference) to Serena's project-specific memory store. +excluded_tools: [] + +# list of tools to include that would otherwise be disabled (particularly optional tools that are disabled by default) +included_optional_tools: [] + +# fixed set of tools to use as the base tool set (if non-empty), replacing Serena's default set of tools. +# This cannot be combined with non-empty excluded_tools or included_optional_tools. +fixed_tools: [] + +# list of mode names to that are always to be included in the set of active modes +# The full set of modes to be activated is base_modes + default_modes. +# If the setting is undefined, the base_modes from the global configuration (serena_config.yml) apply. +# Otherwise, this setting overrides the global configuration. +# Set this to [] to disable base modes for this project. +# Set this to a list of mode names to always include the respective modes for this project. +base_modes: + +# list of mode names that are to be activated by default. +# The full set of modes to be activated is base_modes + default_modes. +# If the setting is undefined, the default_modes from the global configuration (serena_config.yml) apply. +# Otherwise, this overrides the setting from the global configuration (serena_config.yml). +# This setting can, in turn, be overridden by CLI parameters (--mode). +default_modes: + +# initial prompt for the project. It will always be given to the LLM upon activating the project +# (contrary to the memories, which are loaded on demand). +initial_prompt: "" + +# override of the corresponding setting in serena_config.yml, see the documentation there. +# If null or missing, the value from the global config is used. +symbol_info_budget: diff --git a/autoload/controls/class.Cron.php b/autoload/controls/class.Cron.php index 0f8bfa8..f193c67 100644 --- a/autoload/controls/class.Cron.php +++ b/autoload/controls/class.Cron.php @@ -1577,6 +1577,7 @@ class Cron 'campaign_id' => $db_campaign_id, 'ad_group_id' => $ad_group_external_id, 'ad_group_name' => $ad_group_name, + 'status' => 'paused', 'impressions_30' => 0, 'clicks_30' => 0, 'cost_30' => 0, @@ -3477,6 +3478,8 @@ class Cron 'ad_group_id' => (int) $ad_group_external_id ] ] ); + $data['status'] = 'active'; + if ( $existing_id > 0 ) { $mdb -> update( 'campaign_ad_groups', $data, [ 'id' => $existing_id ] ); @@ -3497,21 +3500,20 @@ class Cron } } - // Usun ad_groups ktore nie pojawiaja sie juz w API (zachowaj PMax placeholder ad_group_id=0). - // Gdy API zwroci 0 aktywnych grup, usuwamy wszystkie historyczne grupy dla kampanii. + // Oznacz ad_groups ktore nie pojawiaja sie juz w API jako paused (zachowaj PMax placeholder ad_group_id=0). if ( !empty( $campaign_db_ids ) ) { - $delete_where = [ + $pause_where = [ 'campaign_id' => $campaign_db_ids, 'ad_group_id[!]' => 0 ]; if ( !empty( $seen_db_ids ) ) { - $delete_where['id[!]'] = $seen_db_ids; + $pause_where['id[!]'] = $seen_db_ids; } - $mdb -> delete( 'campaign_ad_groups', $delete_where ); + $mdb -> update( 'campaign_ad_groups', [ 'status' => 'paused' ], $pause_where ); } return [ 'count' => $count, 'ad_group_map' => $ad_group_db_map, 'errors' => [] ]; diff --git a/autoload/controls/class.Products.php b/autoload/controls/class.Products.php index 930ff07..57f5dd6 100644 --- a/autoload/controls/class.Products.php +++ b/autoload/controls/class.Products.php @@ -830,10 +830,11 @@ class Products $order_dir = $_POST['order'][0]['dir'] ? strtoupper( $_POST['order'][0]['dir'] ) : 'DESC'; $order_name = $_POST['order'][0]['name'] ? $_POST['order'][0]['name'] : 'clicks'; - $search = $_POST['search']['value']; + $search = trim( (string) \S::get( 'search_text' ) ); + $filter_cl4 = trim( (string) \S::get( 'filter_cl4' ) ); // ➊ MIN/MAX ROAS dla kontekstu klienta (opcjonalnie z filtrem search) - $bounds = \factory\Products::get_roas_bounds( (int) $client_id, $search, $campaign_id, $ad_group_id ); + $bounds = \factory\Products::get_roas_bounds( (int) $client_id, $search, $campaign_id, $ad_group_id, $filter_cl4 ); $roas_min = (float)$bounds['min']; $roas_max = (float)$bounds['max']; // zabezpieczenie przed dzieleniem przez 0 @@ -868,8 +869,8 @@ class Products '; }; - $db_results = \factory\Products::get_products( $client_id, $search, $limit, $start, $order_name, $order_dir, $campaign_id, $ad_group_id ); - $recordsTotal = \factory\Products::get_records_total_products( $client_id, $search, $campaign_id, $ad_group_id ); + $db_results = \factory\Products::get_products( $client_id, $search, $limit, $start, $order_name, $order_dir, $campaign_id, $ad_group_id, $filter_cl4 ); + $recordsTotal = \factory\Products::get_records_total_products( $client_id, $search, $campaign_id, $ad_group_id, $filter_cl4 ); $data['draw'] = \S::get( 'draw' ); $data['recordsTotal'] = $recordsTotal; @@ -998,6 +999,14 @@ class Products exit; } + static public function get_distinct_cl4() + { + $client_id = (int) \S::get( 'client_id' ); + $values = \factory\Products::get_distinct_custom_label_4( $client_id ); + echo json_encode( [ 'status' => 'ok', 'values' => $values ] ); + exit; + } + static public function save_custom_label_4() { $product_id = \S::get( 'product_id' ); diff --git a/autoload/factory/class.Campaigns.php b/autoload/factory/class.Campaigns.php index 96daf48..bf40ce3 100644 --- a/autoload/factory/class.Campaigns.php +++ b/autoload/factory/class.Campaigns.php @@ -80,6 +80,7 @@ class Campaigns campaign_id, ad_group_id, ad_group_name, + status, impressions_30, clicks_30, cost_30, @@ -94,6 +95,7 @@ class Campaigns roas_all_time FROM campaign_ad_groups WHERE campaign_id = :campaign_id + AND status = \'active\' ORDER BY clicks_30 DESC, clicks_all_time DESC, ad_group_name ASC', [ ':campaign_id' => (int) $campaign_id ] ) -> fetchAll( \PDO::FETCH_ASSOC ); diff --git a/autoload/factory/class.Products.php b/autoload/factory/class.Products.php index d85605b..cc60eeb 100644 --- a/autoload/factory/class.Products.php +++ b/autoload/factory/class.Products.php @@ -77,16 +77,9 @@ class Products return false; } - $mdb -> delete( 'campaign_ad_groups', [ 'id' => $ad_group_id ] ); + $mdb -> update( 'campaign_ad_groups', [ 'status' => 'paused' ], [ 'id' => $ad_group_id ] ); - if ( (int) $mdb -> rowCount() > 0 ) - { - return true; - } - - // Traktuj jako sukces, jeżeli wpis i tak już nie istnieje. - $exists = (int) $mdb -> count( 'campaign_ad_groups', [ 'id' => $ad_group_id ] ); - return $exists === 0; + return true; } static public function get_product_comment_by_date( $product_id, $date ) @@ -227,9 +220,11 @@ class Products $sql .= ' AND pa.ad_group_id = :ad_group_id'; $params[':ad_group_id'] = $ad_group_id; } + + $sql .= ' AND ( ag.status IS NULL OR ag.status = \'active\' )'; } - static public function get_products( $client_id, $search, $limit, $start, $order_name, $order_dir, $campaign_id = 0, $ad_group_id = 0 ) + static public function get_products( $client_id, $search, $limit, $start, $order_name, $order_dir, $campaign_id = 0, $ad_group_id = 0, $custom_label_4 = '' ) { global $mdb; @@ -310,19 +305,26 @@ class Products p.name LIKE :search OR p.title LIKE :search OR p.offer_id LIKE :search + OR p.custom_label_4 LIKE :search OR c.campaign_name LIKE :search OR ag.ad_group_name LIKE :search )'; $params[':search'] = '%' . $search . '%'; } + if ( $custom_label_4 !== '' ) + { + $sql .= ' AND p.custom_label_4 LIKE :custom_label_4'; + $params[':custom_label_4'] = '%' . $custom_label_4 . '%'; + } + $sql .= ' GROUP BY p.id, p.offer_id, p.min_roas, pa.campaign_id, p.name, p.title'; $sql .= ' ORDER BY ' . $order_sql . ' ' . $order_dir . ', product_id DESC LIMIT ' . $start . ', ' . $limit; return $mdb -> query( $sql, $params ) -> fetchAll( \PDO::FETCH_ASSOC ); } - public static function get_roas_bounds( int $client_id, ?string $search = null, int $campaign_id = 0, int $ad_group_id = 0 ): array + public static function get_roas_bounds( int $client_id, ?string $search = null, int $campaign_id = 0, int $ad_group_id = 0, string $custom_label_4 = '' ): array { global $mdb; @@ -350,12 +352,19 @@ class Products p.name LIKE :search OR p.title LIKE :search OR p.offer_id LIKE :search + OR p.custom_label_4 LIKE :search OR c.campaign_name LIKE :search OR ag.ad_group_name LIKE :search )'; $params[':search'] = '%' . $search . '%'; } + if ( $custom_label_4 !== '' ) + { + $sql .= ' AND p.custom_label_4 LIKE :custom_label_4'; + $params[':custom_label_4'] = '%' . $custom_label_4 . '%'; + } + $row = $mdb -> query( $sql, $params ) -> fetch( \PDO::FETCH_ASSOC ); return [ @@ -364,7 +373,7 @@ class Products ]; } - static public function get_records_total_products( $client_id, $search, $campaign_id = 0, $ad_group_id = 0 ) + static public function get_records_total_products( $client_id, $search, $campaign_id = 0, $ad_group_id = 0, $custom_label_4 = '' ) { global $mdb; @@ -386,12 +395,19 @@ class Products p.name LIKE :search OR p.title LIKE :search OR p.offer_id LIKE :search + OR p.custom_label_4 LIKE :search OR c.campaign_name LIKE :search OR ag.ad_group_name LIKE :search )'; $params[':search'] = '%' . $search . '%'; } + if ( $custom_label_4 !== '' ) + { + $sql .= ' AND p.custom_label_4 LIKE :custom_label_4'; + $params[':custom_label_4'] = '%' . $custom_label_4 . '%'; + } + $sql .= ' GROUP BY p.id, pa.campaign_id ) AS grouped_rows'; @@ -437,6 +453,30 @@ class Products ) -> fetch( \PDO::FETCH_ASSOC ); } + static public function get_distinct_custom_label_4( $client_id ) + { + global $mdb; + + $client_id = (int) $client_id; + + if ( $client_id <= 0 ) + { + return []; + } + + $rows = $mdb -> query( + "SELECT DISTINCT p.custom_label_4 + FROM products p + WHERE p.client_id = :client_id + AND p.custom_label_4 IS NOT NULL + AND p.custom_label_4 != '' + ORDER BY p.custom_label_4 ASC", + [ ':client_id' => $client_id ] + ) -> fetchAll( \PDO::FETCH_COLUMN ); + + return $rows ?: []; + } + static public function get_product_data( $product_id, $field ) { global $mdb; diff --git a/layout/style.css b/layout/style.css index 09dcdb1..0e56781 100644 --- a/layout/style.css +++ b/layout/style.css @@ -1 +1 @@ -*{box-sizing:border-box}body{font-family:"Roboto",sans-serif;margin:0;padding:0;font-size:14px;color:#4e5e6a;background:#f4f6f9;max-width:100vw;overflow-x:hidden}.hide{display:none}small{font-size:.75em}.text-right{text-align:right}.text-bold{font-weight:700 !important}.nowrap{white-space:nowrap}body.unlogged{background:#f4f6f9;margin:0;padding:0}.login-container{display:flex;min-height:100vh}.login-brand{flex:0 0 45%;background:linear-gradient(135deg, #1E2A3A 0%, #2C3E57 50%, #6690F4 100%);display:flex;align-items:center;justify-content:center;padding:60px;position:relative;overflow:hidden}.login-brand::before{content:"";position:absolute;top:-50%;right:-50%;width:100%;height:100%;background:radial-gradient(circle, rgba(102, 144, 244, 0.15) 0%, transparent 70%);border-radius:50%}.login-brand .brand-content{position:relative;z-index:1;color:#fff;max-width:400px}.login-brand .brand-logo{font-size:48px;font-weight:300;margin-bottom:20px;letter-spacing:-1px}.login-brand .brand-logo strong{font-weight:700}.login-brand .brand-tagline{font-size:18px;opacity:.85;line-height:1.6;margin-bottom:50px}.login-brand .brand-features .feature{display:flex;align-items:center;gap:15px;margin-bottom:20px;opacity:.8}.login-brand .brand-features .feature i{font-size:20px;width:40px;height:40px;display:flex;align-items:center;justify-content:center;background:hsla(0,0%,100%,.1);border-radius:10px}.login-brand .brand-features .feature span{font-size:15px}.login-form-wrapper{flex:1;display:flex;align-items:center;justify-content:center;padding:60px;background:#fff}.login-box{width:100%;max-width:420px}.login-box .login-header{margin-bottom:35px}.login-box .login-header h1{font-size:28px;font-weight:700;color:#2d3748;margin:0 0 8px}.login-box .login-header p{color:#718096;font-size:15px;margin:0}.login-box .form-group{margin-bottom:20px}.login-box .form-group label{display:block;font-size:13px;font-weight:600;color:#2d3748;margin-bottom:6px}.login-box .input-with-icon{position:relative}.login-box .input-with-icon i{position:absolute;left:14px;top:50%;transform:translateY(-50%);color:#a0aec0;font-size:14px}.login-box .input-with-icon .form-control{padding-left:42px}.login-box .form-control{width:100%;height:46px;border:2px solid #e2e8f0;border-radius:8px;padding:0 14px;font-size:14px;font-family:"Roboto",sans-serif;color:#2d3748;transition:border-color .3s,box-shadow .3s}.login-box .form-control::-moz-placeholder{color:#cbd5e0}.login-box .form-control::placeholder{color:#cbd5e0}.login-box .form-control:focus{border-color:#6690f4;box-shadow:0 0 0 3px rgba(102,144,244,.15);outline:none}.login-box .form-error{color:#c00;font-size:12px;margin-top:4px}.login-box .checkbox-group .checkbox-label{display:flex;align-items:center;gap:8px;cursor:pointer;font-size:13px;color:#718096;font-weight:400}.login-box .checkbox-group .checkbox-label input[type=checkbox]{width:16px;height:16px;accent-color:#6690f4}.login-box .btn-login{width:100%;height:48px;font-size:15px;font-weight:600;border-radius:8px;display:flex;align-items:center;justify-content:center;gap:8px}.login-box .btn-login.disabled{opacity:.7;pointer-events:none}.login-box .alert{display:none;padding:12px 16px;border-radius:8px;font-size:13px;margin-bottom:20px}.login-box .alert.alert-danger{background:#fff5f5;color:#c00;border:1px solid #fed7d7}.login-box .alert.alert-success{background:#f0fff4;color:#276749;border:1px solid #c6f6d5}@media(max-width: 768px){.login-brand{display:none}.login-form-wrapper{padding:30px 20px}}body.logged{display:flex;min-height:100vh;background:#f4f6f9}.sidebar{width:260px;min-height:100vh;background:#1e2a3a;position:fixed;top:0;left:0;z-index:1000;display:flex;flex-direction:column;transition:width .3s ease;overflow:hidden}.sidebar.collapsed{width:70px}.sidebar.collapsed .sidebar-header{padding:16px 0;justify-content:center}.sidebar.collapsed .sidebar-header .sidebar-logo{display:none}.sidebar.collapsed .sidebar-header .sidebar-toggle i{transform:rotate(180deg)}.sidebar.collapsed .sidebar-nav ul li a{padding:12px 0;justify-content:center}.sidebar.collapsed .sidebar-nav ul li a span{display:none}.sidebar.collapsed .sidebar-nav ul li a i{margin-right:0;font-size:18px}.sidebar.collapsed .sidebar-nav ul li.nav-group .nav-group-label{padding:12px 0;justify-content:center}.sidebar.collapsed .sidebar-nav ul li.nav-group .nav-group-label span{display:none}.sidebar.collapsed .sidebar-nav ul li.nav-group .nav-group-label i{margin-right:0;font-size:18px}.sidebar.collapsed .sidebar-footer .sidebar-user{justify-content:center}.sidebar.collapsed .sidebar-footer .sidebar-user .user-info{display:none}.sidebar.collapsed .sidebar-footer .sidebar-logout{justify-content:center}.sidebar.collapsed .sidebar-footer .sidebar-logout span{display:none}.sidebar.collapsed .nav-divider{margin:8px 15px}.sidebar-header{display:flex;align-items:center;justify-content:space-between;padding:20px 20px 16px;border-bottom:1px solid hsla(0,0%,100%,.08)}.sidebar-header .sidebar-logo a{color:#fff;text-decoration:none;font-size:24px;font-weight:300;letter-spacing:-0.5px}.sidebar-header .sidebar-logo a strong{font-weight:700}.sidebar-header .sidebar-toggle{background:none;border:none;color:#a8b7c7;cursor:pointer;padding:6px;border-radius:6px;transition:all .3s}.sidebar-header .sidebar-toggle:hover{background:hsla(0,0%,100%,.08);color:#fff}.sidebar-header .sidebar-toggle i{transition:transform .3s}.sidebar-nav{flex:1;padding:12px 0;overflow-y:auto}.sidebar-nav ul{list-style:none;margin:0;padding:0}.sidebar-nav ul li.nav-group{margin-bottom:4px}.sidebar-nav ul li.nav-group .nav-group-label{display:flex;align-items:center;padding:11px 20px;color:#d5deea;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.6px;border-left:3px solid rgba(0,0,0,0)}.sidebar-nav ul li.nav-group .nav-group-label i{width:20px;text-align:center;margin-right:12px;font-size:14px;color:#b6c4d3}.sidebar-nav ul li.nav-group .nav-submenu{margin:0;padding:0;list-style:none}.sidebar-nav ul li.nav-group .nav-submenu li a{padding-left:44px}.sidebar-nav ul li.nav-group.active>.nav-group-label{color:#fff;background:rgba(102,144,244,.12);border-left-color:#6690f4}.sidebar-nav ul li.nav-group.active>.nav-group-label i{color:#6690f4}.sidebar-nav ul li.nav-divider{height:1px;background:hsla(0,0%,100%,.08);margin:8px 20px}.sidebar-nav ul li a{display:flex;align-items:center;padding:11px 20px;color:#a8b7c7;text-decoration:none;font-size:14px;transition:all .2s;border-left:3px solid rgba(0,0,0,0)}.sidebar-nav ul li a i{width:20px;text-align:center;margin-right:12px;font-size:15px}.sidebar-nav ul li a:hover{background:#263548;color:#fff}.sidebar-nav ul li.active>a{background:rgba(102,144,244,.15);color:#fff;border-left-color:#6690f4}.sidebar-nav ul li.active>a i{color:#6690f4}.badge-alerts-count{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 6px;margin-left:8px;border-radius:50%;font-size:11px;font-weight:600;line-height:1;background:#fff;color:#6690f4}.sidebar-footer{padding:16px 20px;border-top:1px solid hsla(0,0%,100%,.08)}.sidebar-footer .sidebar-user{display:flex;align-items:center;gap:10px;margin-bottom:12px}.sidebar-footer .sidebar-user .user-avatar{width:34px;height:34px;border-radius:50%;background:rgba(102,144,244,.2);display:flex;align-items:center;justify-content:center;color:#6690f4;font-size:14px;flex-shrink:0}.sidebar-footer .sidebar-user .user-info{overflow:hidden}.sidebar-footer .sidebar-user .user-info .user-email{color:#a8b7c7;font-size:12px;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar-footer .sidebar-logout{display:flex;align-items:center;gap:8px;color:#e53e3e;text-decoration:none;font-size:13px;padding:8px 10px;border-radius:6px;transition:all .2s}.sidebar-footer .sidebar-logout i{font-size:14px}.sidebar-footer .sidebar-logout:hover{background:rgba(229,62,62,.1)}.main-wrapper{margin-left:260px;flex:1;min-height:100vh;transition:margin-left .3s ease;display:flex;flex-direction:column}.main-wrapper.expanded{margin-left:70px}.topbar{height:56px;background:#fff;border-bottom:1px solid #e2e8f0;display:flex;align-items:center;padding:0 25px;position:sticky;top:0;z-index:500}.topbar .topbar-toggle{background:none;border:none;color:#4e5e6a;cursor:pointer;padding:8px 10px;border-radius:6px;font-size:16px;margin-right:15px;transition:all .2s}.topbar .topbar-toggle:hover{background:#f4f6f9}.topbar .topbar-breadcrumb{font-size:16px;font-weight:600;color:#2d3748}.content{flex:1;padding:25px}.app-alert{background:#ebf8ff;border:1px solid #bee3f8;color:#2b6cb0;padding:12px 16px;border-radius:8px;margin-bottom:20px;font-size:14px}.btn{padding:10px 20px;transition:all .2s ease;color:#fff;border:0;border-radius:6px;cursor:pointer;display:inline-flex;text-decoration:none;gap:6px;justify-content:center;align-items:center;font-size:14px;font-family:"Roboto",sans-serif;font-weight:500}.btn.btn_small,.btn.btn-xs,.btn.btn-sm{padding:5px 10px;font-size:12px}.btn.btn_small i,.btn.btn-xs i,.btn.btn-sm i{font-size:11px}.btn.btn-success{background:#57b951}.btn.btn-success:hover{background:#4a9c3b}.btn.btn-primary{background:#6690f4}.btn.btn-primary:hover{background:#3164db}.btn.btn-danger{background:#c00}.btn.btn-danger:hover{background:#b30000}.btn.disabled{opacity:.6;pointer-events:none}.form-control{border:1px solid #e2e8f0;border-radius:6px;height:38px;width:100%;padding:6px 12px;font-family:"Roboto",sans-serif;font-size:14px;color:#2d3748;transition:border-color .2s,box-shadow .2s}.form-control option{padding:5px}.form-control:focus{border-color:#6690f4;box-shadow:0 0 0 3px rgba(102,144,244,.1);outline:none}input[type=checkbox]{border:1px solid #e2e8f0}table{border-collapse:collapse;font-size:13px}.table{width:100%}.table th,.table td{border:1px solid #e2e8f0;padding:8px 10px}.table th{background:#f7fafc;font-weight:600;font-size:12px;text-transform:uppercase;letter-spacing:.03em;color:#718096}.table td.center{text-align:center}.table td.left{text-align:left}.table.table-sm td{padding:5px !important}.table input.form-control{font-size:13px;height:32px}.clients-table-wrap,.campaigns-table-wrap,.products-table-wrap,.logs-table-wrap{background:#fff;border-radius:10px;box-shadow:0 1px 4px rgba(0,0,0,.06);overflow-x:auto;max-width:100%;-ms-overflow-style:none;scrollbar-width:none}.clients-table-wrap::-webkit-scrollbar,.campaigns-table-wrap::-webkit-scrollbar,.products-table-wrap::-webkit-scrollbar,.logs-table-wrap::-webkit-scrollbar{display:none}.clients-table-wrap .table,.campaigns-table-wrap .table,.products-table-wrap .table,.logs-table-wrap .table{margin:0;width:100% !important}.clients-table-wrap .table thead th,.campaigns-table-wrap .table thead th,.products-table-wrap .table thead th,.logs-table-wrap .table thead th{background:#f8fafc;border-bottom:2px solid #e2e8f0;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:#8899a6;padding:12px 16px;white-space:nowrap}.clients-table-wrap .table tbody td,.campaigns-table-wrap .table tbody td,.products-table-wrap .table tbody td,.logs-table-wrap .table tbody td{padding:10px 16px;font-size:13px;color:#2d3748;vertical-align:middle;border-bottom:1px solid #f1f5f9}.clients-table-wrap .table tbody tr:hover td,.campaigns-table-wrap .table tbody tr:hover td,.products-table-wrap .table tbody tr:hover td,.logs-table-wrap .table tbody tr:hover td{background:#f8fafc}.clients-table-wrap .dt-layout-row,.campaigns-table-wrap .dt-layout-row,.products-table-wrap .dt-layout-row,.logs-table-wrap .dt-layout-row{padding:14px 20px;margin:0 !important;border-top:1px solid #f1f5f9}.clients-table-wrap .dt-layout-row:first-child,.campaigns-table-wrap .dt-layout-row:first-child,.products-table-wrap .dt-layout-row:first-child,.logs-table-wrap .dt-layout-row:first-child{display:none}.clients-table-wrap .dt-info,.campaigns-table-wrap .dt-info,.products-table-wrap .dt-info,.logs-table-wrap .dt-info{font-size:13px;color:#8899a6}.clients-table-wrap .dt-paging .pagination,.campaigns-table-wrap .dt-paging .pagination,.products-table-wrap .dt-paging .pagination,.logs-table-wrap .dt-paging .pagination{margin:0;padding:0;list-style:none;display:flex;align-items:center;gap:6px}.clients-table-wrap .dt-paging .pagination .page-item .page-link,.campaigns-table-wrap .dt-paging .pagination .page-item .page-link,.products-table-wrap .dt-paging .pagination .page-item .page-link,.logs-table-wrap .dt-paging .pagination .page-item .page-link{display:inline-flex;align-items:center;justify-content:center;min-width:36px;width:-moz-fit-content;width:fit-content;height:36px;padding:0 14px;border-radius:8px;font-size:13px;font-weight:500;border:1px solid #e2e8f0;background:#fff;color:#4e5e6a;cursor:pointer;transition:all .2s;text-decoration:none;line-height:1;white-space:nowrap}.clients-table-wrap .dt-paging .pagination .page-item .page-link:hover,.campaigns-table-wrap .dt-paging .pagination .page-item .page-link:hover,.products-table-wrap .dt-paging .pagination .page-item .page-link:hover,.logs-table-wrap .dt-paging .pagination .page-item .page-link:hover{background:#eef2ff;color:#6690f4;border-color:#6690f4}.clients-table-wrap .dt-paging .pagination .page-item.active .page-link,.campaigns-table-wrap .dt-paging .pagination .page-item.active .page-link,.products-table-wrap .dt-paging .pagination .page-item.active .page-link,.logs-table-wrap .dt-paging .pagination .page-item.active .page-link{background:#6690f4;color:#fff;border-color:#6690f4;font-weight:600}.clients-table-wrap .dt-paging .pagination .page-item.disabled .page-link,.campaigns-table-wrap .dt-paging .pagination .page-item.disabled .page-link,.products-table-wrap .dt-paging .pagination .page-item.disabled .page-link,.logs-table-wrap .dt-paging .pagination .page-item.disabled .page-link{opacity:.35;cursor:default;pointer-events:none}.clients-table-wrap .dt-processing,.campaigns-table-wrap .dt-processing,.products-table-wrap .dt-processing,.logs-table-wrap .dt-processing{background:hsla(0,0%,100%,.9);color:#4e5e6a;font-size:14px}.card{background:#fff;padding:20px;border-radius:8px;color:#2d3748;font-size:14px;box-shadow:0 1px 3px rgba(0,0,0,.06)}.card.mb25{margin-bottom:20px}.card .card-header{font-weight:600;font-size:15px}.card .card-body{padding-top:12px}.card .card-body table th,.card .card-body table td{font-size:13px}.card .card-body table th.bold,.card .card-body table td.bold{font-weight:600}.card .card-body table th.text-right,.card .card-body table td.text-right{text-align:right}.card .card-body table th.text-center,.card .card-body table td.text-center{text-align:center}.action_menu{display:flex;margin-bottom:20px;gap:12px}.action_menu .btn{padding:8px 16px}.action_menu .btn.btn_add{background:#57b951}.action_menu .btn.btn_add:hover{background:#4a9c3b}.action_menu .btn.btn_cancel{background:#c00}.action_menu .btn.btn_cancel:hover{background:#b30000}.settings-tabs{display:flex;gap:8px;margin-bottom:18px}.settings-tabs .settings-tab{display:inline-flex;align-items:center;gap:6px;padding:8px 14px;border-radius:8px;text-decoration:none;color:#6b7a89;background:#e9eef5;border:1px solid #d8e0ea;font-size:13px;font-weight:600;transition:all .2s}.settings-tabs .settings-tab:hover{color:#2d3748;background:#dde6f2}.settings-tabs .settings-tab.active{color:#fff;background:#6690f4;border-color:#6690f4}.settings-card{background:#fff;border-radius:10px;padding:28px;box-shadow:0 1px 4px rgba(0,0,0,.06)}.settings-card .settings-card-header{display:flex;align-items:center;gap:14px;margin-bottom:24px;padding-bottom:16px;border-bottom:1px solid #e2e8f0}.settings-card .settings-card-header .settings-card-icon{width:44px;height:44px;border-radius:10px;background:rgb(225.706097561,233.7475609756,252.893902439);color:#6690f4;display:flex;align-items:center;justify-content:center;font-size:18px;flex-shrink:0}.settings-card .settings-card-header h3{margin:0;font-size:17px;font-weight:600;color:#2d3748}.settings-card .settings-card-header small{color:#8899a6;font-size:13px}.settings-card .settings-field{margin-bottom:18px}.settings-card .settings-field label{display:block;font-size:13px;font-weight:600;color:#2d3748;margin-bottom:6px}.settings-card .settings-input-wrap{position:relative}.settings-card .settings-input-wrap .settings-input-icon{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:#a0aec0;font-size:14px;pointer-events:none}.settings-card .settings-input-wrap .form-control{padding-left:38px}.settings-card .settings-input-wrap .settings-toggle-pw{position:absolute;right:4px;top:50%;transform:translateY(-50%);background:none;border:none;color:#a0aec0;cursor:pointer;padding:6px 10px;font-size:14px;transition:color .2s}.settings-card .settings-input-wrap .settings-toggle-pw:hover{color:#6690f4}.settings-card .settings-field .settings-toggle-label{display:inline-flex;align-items:center;gap:10px;cursor:pointer;font-size:14px;font-weight:500;-webkit-user-select:none;-moz-user-select:none;user-select:none;margin-bottom:0;width:100%}.settings-card .settings-field .settings-toggle-label .settings-toggle-text{flex:1 1 auto;min-width:0;line-height:1.35}.settings-card .settings-toggle-checkbox{display:none}.settings-card .settings-toggle-checkbox+.settings-toggle-switch{display:inline-block;position:relative;width:44px;height:24px;background:#ccc;border-radius:12px;transition:background .2s;flex-shrink:0}.settings-card .settings-toggle-checkbox+.settings-toggle-switch::after{content:"";position:absolute;top:3px;left:3px;width:18px;height:18px;background:#fff;border-radius:50%;transition:transform .2s}.settings-card .settings-toggle-checkbox:checked+.settings-toggle-switch{background:#22c55e}.settings-card .settings-toggle-checkbox:checked+.settings-toggle-switch::after{transform:translateX(20px)}.settings-card .settings-fields-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 24px}@media(max-width: 768px){.settings-card .settings-fields-grid{grid-template-columns:1fr}}.settings-card .settings-alert-error{display:flex;align-items:center;gap:10px;background:#fff5f5;color:#c00;border:1px solid #fed7d7;border-radius:8px;padding:12px 16px;margin-bottom:20px;font-size:13px}.settings-card .settings-alert-error i{font-size:16px;flex-shrink:0}.clients-page .clients-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.clients-page .clients-header h2{margin:0;font-size:20px;font-weight:600;color:#2d3748}.clients-page .clients-header h2 i{color:#6690f4;margin-right:8px}.clients-page .clients-table-wrap .table .client-id{color:#8899a6;font-size:13px;font-weight:600}.clients-page .clients-table-wrap .table .client-name{font-weight:600;color:#2d3748}.clients-page .badge-id{display:inline-block;background:#eef2ff;color:#6690f4;font-size:13px;font-weight:600;padding:4px 10px;border-radius:6px;font-family:monospace}.clients-page .actions-cell{text-align:center;white-space:nowrap}.clients-page .btn-icon{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:8px;border:none;cursor:pointer;font-size:14px;transition:all .2s;margin:0 2px}.clients-page .btn-icon.btn-icon-edit{background:#eef2ff;color:#6690f4}.clients-page .btn-icon.btn-icon-edit:hover{background:#6690f4;color:#fff}.clients-page .btn-icon.btn-icon-delete{background:#fff5f5;color:#c00}.clients-page .btn-icon.btn-icon-delete:hover{background:#c00;color:#fff}.clients-page .btn-icon.btn-icon-sync{background:#f0fdf4;color:#16a34a}.clients-page .btn-icon.btn-icon-sync:hover{background:#16a34a;color:#fff}.clients-page .btn-icon.btn-icon-sync:disabled{opacity:.7;cursor:wait}.clients-page .btn-icon.btn-icon-sync.is-queued{background:#fef3c7;color:#d97706}.clients-page .client-sync-bars{display:flex;flex-direction:column;gap:4px}.clients-page .client-sync-row{display:flex;align-items:center;gap:4px}.clients-page .client-sync-label{font-size:11px;font-weight:600;color:#8899a6;width:18px;flex-shrink:0}.clients-page .client-sync-track{flex:1;height:6px;border-radius:999px;background:#e9eef5;overflow:hidden}.clients-page .client-sync-fill{height:100%;border-radius:999px;background:#cbd5e0;transition:width .4s ease}.clients-page .client-sync-fill.is-active{background:linear-gradient(90deg, #5A9BFF 0%, #2E6BDF 100%)}.clients-page .client-sync-fill.is-done{background:#57b951}.clients-page .client-sync-pct{font-size:11px;font-weight:600;color:#8899a6;width:32px;text-align:right;flex-shrink:0}.clients-page .empty-state{text-align:center;padding:50px 20px !important;color:#a0aec0}.clients-page .empty-state i{font-size:40px;margin-bottom:12px;display:block}.clients-page .empty-state p{margin:0;font-size:15px}.btn-secondary{background:#e2e8f0;color:#2d3748;border:none;padding:8px 18px;border-radius:6px;font-size:14px;cursor:pointer;transition:background .2s}.btn-secondary:hover{background:#cbd5e0}.campaigns-page{max-width:100%;overflow-x:hidden;width:100%}.campaigns-page .campaigns-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.campaigns-page .campaigns-header h2{margin:0;font-size:20px;font-weight:600;color:#2d3748}.campaigns-page .campaigns-header h2 i{color:#6690f4;margin-right:8px}.campaigns-page .campaigns-filters{display:flex;flex-wrap:wrap;gap:20px;margin-bottom:20px}.campaigns-page .campaigns-filters .filter-group{flex:1;min-width:0}.campaigns-page .campaigns-filters .filter-group label{display:block;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:#8899a6;margin-bottom:6px}.campaigns-page .campaigns-filters .filter-group label i{margin-right:4px}.campaigns-page .campaigns-filters .filter-group .form-control{width:100%;padding:10px 14px;border:1px solid #e2e8f0;border-radius:8px;font-size:14px;color:#2d3748;background:#fff;transition:border-color .2s;-moz-appearance:none;appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%238899A6' d='M6 8L1 3h10z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;padding-right:32px}.campaigns-page .campaigns-filters .filter-group .form-control:focus{outline:none;border-color:#6690f4;box-shadow:0 0 0 3px rgba(102,144,244,.1)}.campaigns-page .campaigns-filters .filter-group .filter-with-action{display:flex;align-items:center;gap:8px}.campaigns-page .campaigns-filters .filter-group .filter-with-action .form-control{flex:1}.campaigns-page .campaigns-filters .filter-group .filter-with-action .btn-icon{flex-shrink:0;width:42px;height:42px;display:inline-flex;align-items:center;justify-content:center;border-radius:8px;border:none;cursor:pointer;font-size:14px;transition:all .2s}.campaigns-page .campaigns-filters .filter-group .filter-with-action .btn-icon.btn-icon-delete{background:#fff5f5;color:#c00}.campaigns-page .campaigns-filters .filter-group .filter-with-action .btn-icon.btn-icon-delete:hover{background:#c00;color:#fff}.campaigns-page .campaigns-filters .filter-group-campaign-multi{flex:2 !important}.campaigns-page .campaigns-filters .campaign-dropdown{flex:1;min-width:0;position:relative}.campaigns-page .campaigns-filters .campaign-dropdown-trigger{width:100%;padding:10px 14px;padding-right:32px;border:1px solid #e2e8f0;border-radius:8px;font-size:14px;color:#2d3748;background:#fff;cursor:pointer;display:flex;align-items:center;transition:border-color .2s;position:relative;min-height:42px;box-sizing:border-box}.campaigns-page .campaigns-filters .campaign-dropdown-trigger .campaign-dropdown-text{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.campaigns-page .campaigns-filters .campaign-dropdown-trigger .campaign-dropdown-text.is-placeholder{color:#8899a6}.campaigns-page .campaigns-filters .campaign-dropdown-trigger .campaign-dropdown-arrow{position:absolute;right:12px;font-size:10px;color:#8899a6;transition:transform .2s}.campaigns-page .campaigns-filters .campaign-dropdown.is-open .campaign-dropdown-trigger{border-color:#6690f4;box-shadow:0 0 0 3px rgba(102,144,244,.1)}.campaigns-page .campaigns-filters .campaign-dropdown.is-open .campaign-dropdown-arrow{transform:rotate(180deg)}.campaigns-page .campaigns-filters .campaign-dropdown.is-open .campaign-dropdown-menu{display:block}.campaigns-page .campaigns-filters .campaign-dropdown-menu{display:none;position:absolute;top:calc(100% + 4px);left:0;right:0;z-index:100;max-height:280px;overflow-y:auto;background:#fff;border:1px solid #e2e8f0;border-radius:8px;box-shadow:0 4px 12px rgba(0,0,0,.1);padding:4px 0}.campaigns-page .campaigns-filters .campaign-dropdown-item{display:flex;align-items:center;gap:8px;padding:8px 12px;cursor:pointer;font-size:14px;color:#2d3748;margin:0;transition:background .15s}.campaigns-page .campaigns-filters .campaign-dropdown-item:hover{background:#f8fafc}.campaigns-page .campaigns-filters .campaign-dropdown-item.is-checked{background:#eef2ff}.campaigns-page .campaigns-filters .campaign-dropdown-item input[type=checkbox]{width:16px;height:16px;cursor:pointer;flex-shrink:0;accent-color:#6690f4}.campaigns-page .campaigns-filters .campaign-dropdown-item span{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.campaigns-page .campaigns-list-panel{background:#fff;border-radius:10px;box-shadow:0 1px 4px rgba(0,0,0,.06);margin-bottom:20px;overflow:hidden}.campaigns-page .campaigns-list-panel .campaigns-list-toolbar{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid #e2e8f0;gap:12px}.campaigns-page .campaigns-list-panel .campaigns-list-toolbar-left{display:flex;align-items:center;gap:8px;font-size:13px;color:#4e5e6a}.campaigns-page .campaigns-list-panel .campaigns-list-toolbar-left input[type=checkbox]{width:16px;height:16px;cursor:pointer}.campaigns-page .campaigns-list-panel .campaigns-list-toolbar-left label{cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;margin:0}.campaigns-page .campaigns-list-panel .campaigns-list-toolbar-left .campaigns-selected-count{margin-left:12px;color:#8899a6}.campaigns-page .campaigns-list-panel .campaigns-list-toolbar-right .campaigns-bulk-delete-btn{display:inline-flex;align-items:center;gap:6px;padding:8px 16px;border:none;border-radius:8px;font-size:13px;font-weight:600;cursor:pointer;background:#fff5f5;color:#c00;transition:all .2s}.campaigns-page .campaigns-list-panel .campaigns-list-toolbar-right .campaigns-bulk-delete-btn:hover:not(:disabled){background:#c00;color:#fff}.campaigns-page .campaigns-list-panel .campaigns-list-toolbar-right .campaigns-bulk-delete-btn:disabled{opacity:.4;cursor:not-allowed}.campaigns-page .campaigns-list-panel .campaigns-list-items{display:flex;flex-wrap:wrap;gap:0;padding:8px 8px;max-height:220px;overflow-y:auto}.campaigns-page .campaigns-list-panel .campaigns-list-items .campaigns-list-item{display:flex;align-items:center;gap:8px;padding:6px 12px;margin:2px;border-radius:6px;font-size:13px;color:#2d3748;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;transition:background .15s}.campaigns-page .campaigns-list-panel .campaigns-list-items .campaigns-list-item:hover{background:#f0f4ff}.campaigns-page .campaigns-list-panel .campaigns-list-items .campaigns-list-item input[type=checkbox]{width:15px;height:15px;cursor:pointer;flex-shrink:0}.campaigns-page .campaigns-list-panel .campaigns-list-items .campaigns-list-item .campaigns-list-item-name{white-space:nowrap}.campaigns-page .campaigns-chart-wrap{background:#fff;border-radius:10px;box-shadow:0 1px 4px rgba(0,0,0,.06);padding:20px;margin-bottom:20px;min-height:350px;overflow:hidden}.campaigns-page .campaigns-chart-wrap #container{max-width:100%}.campaigns-page .campaigns-table-wrap .table{width:100%}.campaigns-page .delete-history-entry{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:6px;border:none;cursor:pointer;font-size:12px;background:#fff5f5;color:#c00;transition:all .2s}.campaigns-page .delete-history-entry:hover{background:#c00;color:#fff}.products-page .products-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.products-page .products-header h2{margin:0;font-size:20px;font-weight:600;color:#2d3748}.products-page .products-header h2 i{color:#6690f4;margin-right:8px}.products-page .products-filters{display:flex;flex-wrap:wrap;align-items:flex-end;gap:20px;margin-bottom:16px}.products-page .products-filters .filter-group{flex:1 1 220px;min-width:0}.products-page .products-filters .filter-group label{display:block;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:#8899a6;margin-bottom:6px}.products-page .products-filters .filter-group label i{margin-right:4px}.products-page .products-filters .filter-group .form-control{width:100%;padding:10px 14px;border:1px solid #e2e8f0;border-radius:8px;font-size:14px;color:#2d3748;background:#fff;transition:border-color .2s}.products-page .products-filters .filter-group .form-control:focus{outline:none;border-color:#6690f4;box-shadow:0 0 0 3px rgba(102,144,244,.1)}.products-page .products-filters .filter-group select.form-control{-moz-appearance:none;appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%238899A6' d='M6 8L1 3h10z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;padding-right:32px}.products-page .products-filters .filter-group.filter-group-client,.products-page .products-filters .filter-group.filter-group-campaign,.products-page .products-filters .filter-group.filter-group-ad-group{flex:1 1 260px}.products-page .products-filters .filter-group.filter-group-ad-group .ad-group-filter-actions{display:flex;gap:8px;align-items:center}.products-page .products-filters .filter-group.filter-group-ad-group .ad-group-filter-actions .form-control{flex:1 1 auto;min-width:0}.products-page .products-filters .filter-group.filter-group-ad-group #delete-products-ad-group{min-width:38px;height:38px;border-radius:6px;margin:0;background:#dc3545;border:1px solid #dc3545;color:#fff;cursor:pointer}.products-page .products-filters .filter-group.filter-group-ad-group #delete-products-ad-group:hover:not(:disabled){background:#bb2d3b;border-color:#bb2d3b;color:#fff}.products-page .products-filters .filter-group.filter-group-ad-group #delete-products-ad-group:disabled{opacity:.45;cursor:default;background:#dc3545;border-color:#dc3545;color:#fff}.products-page .products-filters .filter-group.filter-group-roas{flex:0 0 200px}.products-page .products-filters .filter-group.filter-group-columns{flex:0 0 240px}.products-page .products-scope-alerts{margin-bottom:12px;border:1px solid #fecaca;background:#fef2f2;border-radius:8px;overflow:hidden}.products-page .products-scope-alerts summary{cursor:pointer;list-style:none;padding:10px 12px;font-size:13px;font-weight:600;color:#991b1b;display:flex;align-items:center;gap:8px}.products-page .products-scope-alerts summary::-webkit-details-marker{display:none}.products-page .products-scope-alerts .products-scope-alerts-list{border-top:1px solid #fecaca;background:#fff;max-height:260px;overflow:auto}.products-page .products-scope-alerts .products-scope-alert-item{padding:10px 12px;border-bottom:1px solid #f1f5f9}.products-page .products-scope-alerts .products-scope-alert-item:last-child{border-bottom:none}.products-page .products-scope-alerts .products-scope-alert-meta{display:flex;align-items:center;gap:8px;margin-bottom:4px;font-size:11px;color:#64748b}.products-page .products-scope-alerts .products-scope-alert-type{display:inline-flex;align-items:center;padding:2px 6px;border-radius:999px;background:#eef2ff;color:#4338ca;font-weight:600;text-transform:uppercase;letter-spacing:.3px}.products-page .products-scope-alerts .products-scope-alert-message{font-size:13px;color:#2d3748;line-height:1.45}.products-page .products-actions{margin-bottom:12px}.products-page .products-actions .btn-danger{padding:7px 14px;font-size:13px;border-radius:6px;border:none;cursor:pointer;transition:all .2s}.products-page .products-actions .btn-danger:disabled{opacity:.4;cursor:default}.products-page .products-table-wrap .table{width:100%}.products-page .products-table-wrap .table input.min_roas,.products-page .products-table-wrap .table input.form-control-sm,.products-page .products-table-wrap .table select.custom_label_4,.products-page .products-table-wrap .table select.form-control-sm{padding:3px 6px;font-size:12px;border:1px solid #e2e8f0;border-radius:4px;background:#fff}.products-page .delete-product{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:6px;border:none;cursor:pointer;font-size:12px;background:#fff5f5;color:#c00;transition:all .2s}.products-page .delete-product:hover{background:#c00;color:#fff}.products-page .edit-product-title{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:6px;border:none;cursor:pointer;font-size:12px;background:#eef2ff;color:#6690f4;transition:all .2s}.products-page .edit-product-title:hover{background:#6690f4;color:#fff}.desc-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:4px}.desc-header label{margin:0}.desc-tabs{display:flex;gap:2px;background:#eee;border-radius:6px;padding:2px}.desc-tab{border:none;background:rgba(0,0,0,0);padding:4px 12px;font-size:12px;border-radius:4px;cursor:pointer;color:#666;transition:all .15s ease}.desc-tab i{margin-right:4px}.desc-tab.active{background:#fff;color:#333;box-shadow:0 1px 3px rgba(0,0,0,.12);font-weight:500}.desc-tab:hover:not(.active){color:#333}.desc-wrap{flex:1;min-width:0}.desc-preview ul,.desc-preview ol{margin:6px 0;padding-left:20px}.desc-preview li{margin-bottom:3px}.desc-preview b,.desc-preview strong{font-weight:600}.input-with-ai{display:flex;gap:8px;align-items:flex-start}.input-with-ai .form-control{flex:1}.btn-ai-suggest{display:inline-flex;align-items:center;gap:4px;padding:6px 12px;border-radius:8px;border:1px solid #c084fc;background:linear-gradient(135deg, #F3E8FF, #EDE9FE);color:#7c3aed;font-size:12px;font-weight:600;cursor:pointer;transition:all .2s;white-space:nowrap;min-height:38px}.btn-ai-suggest i{font-size:13px}.btn-ai-suggest:hover{background:linear-gradient(135deg, #7C3AED, #6D28D9);color:#fff;border-color:#6d28d9}.btn-ai-suggest:disabled{opacity:.7;cursor:wait}.btn-ai-suggest.btn-ai-claude{border-color:#d97706;background:linear-gradient(135deg, #FEF3C7, #FDE68A);color:#92400e}.btn-ai-suggest.btn-ai-claude:hover{background:linear-gradient(135deg, #D97706, #B45309);color:#fff;border-color:#b45309}.btn-ai-suggest.btn-ai-gemini{border-color:#4285f4;background:linear-gradient(135deg, #E8F0FE, #D2E3FC);color:#1a73e8}.btn-ai-suggest.btn-ai-gemini:hover{background:linear-gradient(135deg, #4285F4, #1A73E8);color:#fff;border-color:#1a73e8}.form_container{background:#fff;padding:25px;max-width:1300px;border-radius:8px;box-shadow:0 1px 3px rgba(0,0,0,.06)}.form_container.full{max-width:100%}.form_container .form_group{margin-bottom:12px;display:flex}.form_container .form_group>.label{width:300px;display:inline-flex;align-items:flex-start;justify-content:right;padding-right:12px}.form_container .form_group .input{width:calc(100% - 300px)}.default_popup{position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,.45);display:none;z-index:2000}.default_popup .popup_content{position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);background:#fff;padding:25px;border-radius:10px;max-width:1140px;width:95%;box-shadow:0 20px 60px rgba(0,0,0,.15)}.default_popup .popup_content .popup_header{display:flex;justify-content:space-between;align-items:center;margin-bottom:15px}.default_popup .popup_content .popup_header .title{font-size:18px;font-weight:600}.default_popup .popup_content .close{cursor:pointer;color:#a0aec0;font-size:18px;padding:4px}.default_popup .popup_content .close:hover{color:#c00}.dt-layout-table{margin-bottom:20px}.pagination button{border:1px solid #e2e8f0;background:#fff;display:inline-flex;height:32px;width:32px;align-items:center;justify-content:center;margin:0 2px;border-radius:4px;transition:all .2s;cursor:pointer}.pagination button:hover{background:#f4f6f9;border-color:#6690f4}table#products a{color:inherit;text-decoration:none}table#products .table-product-title{display:flex;justify-content:space-between}table#products .edit-product-title{display:flex;height:25px;align-items:center;justify-content:center;width:25px;cursor:pointer;background:#fff;border:1px solid #cbd5e0;color:#cbd5e0;border-radius:4px}table#products .edit-product-title:hover{background:#cbd5e0;color:#fff}table#products a.custom_name{color:#57b951 !important}.product-history-page .product-history-meta{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:14px}.product-history-page .product-history-meta span{display:inline-flex;align-items:center;padding:5px 10px;border-radius:999px;font-size:12px;font-weight:600;color:#4e5e6a;background:#eef2ff;border:1px solid #d9e2ff}.product-history-page .product-history-chart-wrap{background:#fff;border-radius:10px;box-shadow:0 1px 4px rgba(0,0,0,.06);padding:20px;margin-bottom:16px}.product-history-page .chart-with-form{display:flex;gap:20px;align-items:flex-start}.product-history-page .chart-area{flex:1 1 auto;min-width:0}.product-history-page .product-history-chart{min-height:360px}.product-history-page .comment-form{width:340px;flex:0 0 340px;background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;padding:14px}.product-history-page .comment-form .form-group{margin-bottom:12px}.product-history-page .comment-form label{display:block;font-weight:600;margin-bottom:6px;font-size:13px;color:#52606d}.product-history-page .comment-form input[type=date],.product-history-page .comment-form textarea{width:100%;border:1px solid #e2e8f0;border-radius:6px;padding:8px 12px;font-size:14px;font-family:"Roboto",sans-serif;background:#fff}.product-history-page .comment-form input[type=date]:focus,.product-history-page .comment-form textarea:focus{outline:none;border-color:#6690f4;box-shadow:0 0 0 3px rgba(102,144,244,.1)}.product-history-page .comment-form textarea{min-height:110px;resize:vertical}.product-history-page .comment-form .btn{width:100%;justify-content:center;padding:10px 16px}.product-history-page .comment-form .btn[disabled]{opacity:.6;cursor:not-allowed}.product-history-page .products-table-wrap{overflow-x:auto}.product-history-page .products-table-wrap .table{min-width:980px}.product-history-page .products-table-wrap .comment-cell{display:flex;align-items:center;justify-content:space-between;gap:10px}.product-history-page .products-table-wrap .comment-text{word-break:break-word}.product-history-page .products-table-wrap .delete-comment{color:#c00;text-decoration:none;font-weight:600;white-space:nowrap}.product-history-page .products-table-wrap .delete-comment:hover{text-decoration:underline}.product-history-page .products-table-wrap .dt-paging .pagination .page-item{list-style:none}.cron-status-overview{display:flex;flex-wrap:wrap;gap:10px 20px;margin-bottom:20px;color:#4e5e6a;font-size:13px}.cron-progress-list{margin-bottom:20px}.cron-schedule-list{margin-bottom:20px}.cron-schedule-item{border:1px solid #dfe7f0;background:#f4f8fd;border-radius:8px;padding:9px 12px;margin-bottom:8px}.cron-schedule-item:last-child{margin-bottom:0}.cron-schedule-item strong{display:block;color:#2d3748;font-size:13px;font-weight:700;margin-bottom:2px}.cron-schedule-item small{display:block;color:#678;font-size:12px;line-height:1.35}.cron-progress-item{margin-bottom:14px}.cron-progress-item:last-child{margin-bottom:0}.cron-progress-item .cron-progress-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:6px;font-size:13px}.cron-progress-item .cron-progress-head strong{color:#2d3748;font-weight:600}.cron-progress-item .cron-progress-head span{color:#6b7a89;font-size:12px;font-weight:600;white-space:nowrap}.cron-progress-item small{display:block;margin-top:5px;color:#789;font-size:12px}.cron-progress-bar{width:100%;height:10px;border-radius:999px;background:#e9eef5;overflow:hidden}.cron-progress-bar>span{display:block;height:100%;background:linear-gradient(90deg, #5A9BFF 0%, #2E6BDF 100%)}.cron-url-list{margin-bottom:20px}.cron-url-item{border:1px solid #e2e8f0;border-radius:8px;background:#f8fafc;padding:10px 12px;margin-bottom:10px}.cron-url-item:last-child{margin-bottom:0}.cron-url-item .cron-url-top{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:6px}.cron-url-item .cron-url-top strong{color:#2d3748;font-size:13px;font-weight:600}.cron-url-item .cron-url-top small{color:#7a8794;font-size:11px;white-space:nowrap}.cron-url-item code{display:block;background:#eef2f7;border:1px solid #dde4ed;border-radius:6px;padding:6px 8px;color:#2e3b49;font-size:12px;overflow-x:auto}.cron-url-item .cron-url-plan{display:block;color:#6c7b8a;font-size:11px;margin-bottom:6px}@media(max-width: 1200px){.product-history-page .chart-with-form{flex-direction:column}.product-history-page .comment-form{width:100%;flex:1 1 auto}}.jconfirm-box .form-group .select2-container,.adspro-dialog-box .form-group .select2-container{width:100% !important;margin-top:8px}.jconfirm-box .select2-container--default .select2-selection--single,.adspro-dialog-box .select2-container--default .select2-selection--single{background-color:#fff;border:1px solid #e2e8f0;border-radius:6px;min-height:42px;display:flex;align-items:center;padding:4px 12px;box-shadow:none;transition:border-color .2s,box-shadow .2s;font-size:14px}.jconfirm-box .select2-container--default .select2-selection--single .select2-selection__rendered,.adspro-dialog-box .select2-container--default .select2-selection--single .select2-selection__rendered{padding-left:0;line-height:1.4;color:#495057}.jconfirm-box .select2-container--default .select2-selection--single .select2-selection__placeholder,.adspro-dialog-box .select2-container--default .select2-selection--single .select2-selection__placeholder{color:#cbd5e0}.jconfirm-box .select2-container--default .select2-selection--single .select2-selection__arrow,.adspro-dialog-box .select2-container--default .select2-selection--single .select2-selection__arrow{height:100%;right:8px}.jconfirm-box .select2-container--default.select2-container--focus .select2-selection--single,.jconfirm-box .select2-container--default .select2-selection--single:hover,.adspro-dialog-box .select2-container--default.select2-container--focus .select2-selection--single,.adspro-dialog-box .select2-container--default .select2-selection--single:hover{border-color:#6690f4;box-shadow:0 0 0 3px rgba(102,144,244,.1);outline:0}.jconfirm-box .select2-container .select2-dropdown,.adspro-dialog-box .select2-container .select2-dropdown{border-color:#e2e8f0;border-radius:0 0 6px 6px;font-size:14px}.jconfirm-box .select2-container .select2-search--dropdown .select2-search__field,.adspro-dialog-box .select2-container .select2-search--dropdown .select2-search__field{padding:6px 10px;border-radius:4px;border:1px solid #e2e8f0;font-size:14px}.jconfirm-box .select2-container--default .select2-results__option--highlighted[aria-selected],.adspro-dialog-box .select2-container--default .select2-results__option--highlighted[aria-selected]{background-color:#6690f4;color:#fff}@media(max-width: 992px){.sidebar{transform:translateX(-100%)}.sidebar.mobile-open{transform:translateX(0)}.main-wrapper{margin-left:0 !important}}.campaign-terms-wrap{display:flex;flex-direction:column;gap:20px;margin-top:20px}.campaign-terms-page{max-width:100%;overflow:hidden}.campaign-terms-page .campaigns-filters{flex-wrap:wrap}.campaign-terms-page .campaigns-filters .filter-group{min-width:220px}.campaign-terms-page .campaigns-filters .filter-group.terms-columns-group{min-width:280px}.campaign-terms-page .terms-card-toggle{margin-left:auto;width:28px;height:28px;border:1px solid #e2e8f0;border-radius:6px;background:#fff;color:#475569;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s}.campaign-terms-page .terms-card-toggle:hover{background:#f8fafc;border-color:#cbd5e1}.campaign-terms-page .terms-adgroups-card.is-collapsed .campaigns-extra-table-wrap{display:none}.campaign-terms-page .terms-search-toolbar{display:flex;align-items:center;gap:10px;padding:10px 12px;border-bottom:1px solid #eef2f7;background:#fff}.campaign-terms-page .terms-search-toolbar label{font-size:12px;font-weight:600;color:#475569;display:inline-flex;align-items:center;gap:6px;margin:0;white-space:nowrap}.campaign-terms-page .terms-search-toolbar .terms-search-toolbar-label{min-width:86px}.campaign-terms-page .terms-search-toolbar #terms_min_clicks_all,.campaign-terms-page .terms-search-toolbar #terms_max_clicks_all{width:160px;height:32px}.campaign-terms-page .terms-search-toolbar #terms_min_conversions_all,.campaign-terms-page .terms-search-toolbar #terms_max_conversions_all{width:130px;max-width:130px}.campaign-terms-page .terms-search-selected-label{margin:0;font-size:12px;color:#475569;font-weight:600;white-space:nowrap}.campaign-terms-page .terms-ai-analyze-btn{margin-left:auto;display:inline-flex;align-items:center;gap:6px;height:32px;padding:0 12px;border-radius:6px;border:1px solid #bfdbfe;background:#eff6ff;color:#1d4ed8;font-size:12px;font-weight:600;cursor:pointer;transition:all .2s}.campaign-terms-page .terms-ai-analyze-btn:hover{background:#dbeafe;border-color:#93c5fd}.campaign-terms-page .terms-ai-analyze-btn:disabled{opacity:.6;cursor:wait}.campaign-terms-page .terms-negative-toolbar{display:flex;align-items:center;gap:10px;padding:10px 12px;border-bottom:1px solid #eef2f7;background:#fff}.campaign-terms-page .terms-negative-bulk-btn{display:inline-flex;align-items:center;gap:6px;height:32px;padding:0 12px;border-radius:6px;border:1px solid #fecaca;background:#fef2f2;color:#dc2626;font-size:12px;font-weight:600;cursor:pointer;transition:all .2s}.campaign-terms-page .terms-negative-bulk-btn:hover{background:#fee2e2;border-color:#fca5a5}.campaign-terms-page .terms-negative-bulk-btn:disabled{opacity:.5;cursor:not-allowed}.campaign-terms-page table.campaigns-extra-table>thead>tr>th{position:sticky;top:0;z-index:2;background-color:#111827 !important;color:#e5e7eb !important;border-bottom:1px solid #0b1220 !important;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.4px;padding:10px 12px;white-space:nowrap}.campaign-terms-page #terms_search_table thead th .dt-column-order,.campaign-terms-page #terms_negative_table thead th .dt-column-order{display:none !important}.campaign-terms-page #terms_search_table thead th.dt-orderable-asc,.campaign-terms-page #terms_search_table thead th.dt-orderable-desc,.campaign-terms-page #terms_negative_table thead th.dt-orderable-asc,.campaign-terms-page #terms_negative_table thead th.dt-orderable-desc{cursor:pointer;padding-right:34px;overflow:hidden}.campaign-terms-page #terms_search_table thead th .dt-column-title,.campaign-terms-page #terms_negative_table thead th .dt-column-title{display:block;overflow:hidden;text-overflow:ellipsis;padding-right:2px}.campaign-terms-page #terms_search_table thead th.dt-orderable-asc::after,.campaign-terms-page #terms_search_table thead th.dt-orderable-desc::after,.campaign-terms-page #terms_negative_table thead th.dt-orderable-asc::after,.campaign-terms-page #terms_negative_table thead th.dt-orderable-desc::after{content:"↕";position:absolute;right:10px;top:50%;transform:translateY(-50%);width:16px;height:16px;border-radius:999px;font-size:12px;font-weight:700;line-height:16px;text-align:center;color:#e5e7eb;background:#374151}.campaign-terms-page #terms_search_table thead th.dt-ordering-asc::after,.campaign-terms-page #terms_negative_table thead th.dt-ordering-asc::after,.campaign-terms-page #terms_search_table thead th[aria-sort=ascending]::after,.campaign-terms-page #terms_negative_table thead th[aria-sort=ascending]::after{content:"▲";color:#fff;background:#2563eb}.campaign-terms-page #terms_search_table thead th.dt-ordering-desc::after,.campaign-terms-page #terms_negative_table thead th.dt-ordering-desc::after,.campaign-terms-page #terms_search_table thead th[aria-sort=descending]::after,.campaign-terms-page #terms_negative_table thead th[aria-sort=descending]::after{content:"▼";color:#fff;background:#2563eb}.campaign-terms-page #terms_negative_select_all,.campaign-terms-page .terms-negative-select-row,.campaign-terms-page #terms_search_select_all,.campaign-terms-page .terms-search-select-row{width:14px;height:14px;cursor:pointer}.campaign-terms-page .dt-layout-row:first-child{display:none}.campaign-terms-page .dt-layout-row{padding:10px 12px;margin:0 !important;border-top:1px solid #f1f5f9}.campaign-terms-page .dt-info{font-size:12px;color:#64748b}.campaign-terms-page .dt-paging .pagination{margin:0;padding:0;list-style:none !important;display:flex;align-items:center;gap:6px}.campaign-terms-page .dt-paging .pagination .page-item{list-style:none !important}.campaign-terms-page .dt-paging .pagination .page-item .page-link{display:inline-flex;align-items:center;justify-content:center;min-width:36px;width:-moz-fit-content;width:fit-content;height:32px;padding:0 12px;border-radius:6px;font-size:12px;font-weight:500;border:1px solid #e2e8f0;background:#fff;color:#4e5e6a;text-decoration:none;line-height:1;white-space:nowrap}.campaign-terms-page .dt-paging .pagination .page-item .page-link:hover{background:#eef2ff;color:#6690f4;border-color:#6690f4}.campaign-terms-page .dt-paging .pagination .page-item.previous .page-link,.campaign-terms-page .dt-paging .pagination .page-item.next .page-link{min-width:72px}.campaign-terms-page .dt-paging .pagination .page-item.active .page-link{background:#6690f4;color:#fff;border-color:#6690f4}.campaign-terms-page .dt-paging .pagination .page-item.disabled .page-link{opacity:.35;cursor:default;pointer-events:none}.terms-columns-box{display:flex;flex-direction:column;gap:6px}.terms-columns-control{border:1px solid #e2e8f0;border-radius:6px;background:#fff;overflow:hidden}.terms-columns-control summary{cursor:pointer;padding:8px 10px;font-size:12px;font-weight:600;color:#334155;list-style:none}.terms-columns-control summary::-webkit-details-marker{display:none}.terms-columns-control summary::after{content:"▼";float:right;font-size:10px;color:#64748b;margin-top:2px}.terms-columns-control[open] summary::after{content:"▲"}.terms-columns-list{border-top:1px solid #eef2f7;padding:8px 10px;max-height:180px;overflow-y:auto}.terms-columns-list .terms-col-item{display:flex;align-items:center;gap:8px;font-size:12px;color:#334155;margin-bottom:6px}.terms-columns-list .terms-col-item:last-child{margin-bottom:0}.terms-columns-list .terms-col-item input[type=checkbox]{margin:0}.campaigns-extra-card{background:#fff;border-radius:10px;box-shadow:0 1px 4px rgba(0,0,0,.06);overflow:hidden}.campaigns-extra-card-title{padding:14px 16px;border-bottom:1px solid #e2e8f0;font-size:13px;font-weight:700;color:#334155;display:flex;align-items:center;gap:8px}.campaigns-extra-card-title .terms-card-title-label{display:inline-flex;align-items:center;gap:8px}.campaigns-extra-table-wrap{overflow:auto}.campaigns-extra-table{margin:0;width:100%;table-layout:fixed}.campaigns-extra-table tbody td{padding:9px 12px;border-bottom:1px solid #f1f5f9;font-size:13px;color:#334155;vertical-align:middle;white-space:nowrap}.campaigns-extra-table td.num-cell{text-align:right;white-space:nowrap}.campaigns-extra-table td.text-cell{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.campaigns-extra-table th.terms-negative-select-cell,.campaigns-extra-table td.terms-negative-select-cell,.campaigns-extra-table th.terms-search-select-cell,.campaigns-extra-table td.terms-search-select-cell{text-align:center}.campaigns-extra-table th.phrase-nowrap,.campaigns-extra-table td.phrase-nowrap{white-space:nowrap !important;overflow:hidden;text-overflow:ellipsis}.campaigns-extra-table .terms-add-negative-btn,.campaigns-extra-table .terms-remove-negative-btn{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:6px;cursor:pointer;transition:all .2s}.campaigns-extra-table .terms-add-negative-btn{border:1px solid #e2e8f0;background:#eef2ff;color:#3b82f6}.campaigns-extra-table .terms-add-negative-btn:hover{background:#3b82f6;color:#fff;border-color:#3b82f6}.campaigns-extra-table .terms-remove-negative-btn{border:1px solid #fecaca;background:#fef2f2;color:#dc2626}.campaigns-extra-table .terms-remove-negative-btn:hover{background:#dc2626;color:#fff;border-color:#dc2626}.campaigns-extra-table tbody tr:hover{background:#f8fafc}.campaigns-extra-table tbody tr.term-is-negative td{color:#dc2626}.campaigns-extra-table tbody tr.term-is-negative:hover{background:#fef2f2}.campaigns-empty-row{text-align:center;color:#94a3b8 !important;font-style:italic}.terms-ai-modal-toolbar{display:flex;align-items:center;gap:10px;margin-bottom:10px}.terms-ai-modal-toolbar label{font-size:12px;font-weight:600;color:#334155;margin:0}.terms-ai-modal-toolbar .form-control{width:200px;height:32px}.terms-ai-summary{font-size:12px;color:#64748b;margin-bottom:10px}.terms-ai-results-wrap{border:1px solid #e2e8f0;border-radius:8px;max-height:420px;overflow:auto}.terms-ai-results-table{width:100%;border-collapse:collapse;font-size:12px}.terms-ai-results-table th,.terms-ai-results-table td{border-bottom:1px solid #eef2f7;padding:8px;vertical-align:middle}.terms-ai-results-table th{position:sticky;top:0;background:#f8fafc;color:#334155;font-weight:700}.terms-ai-results-table td.term-col{min-width:260px;max-width:380px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.terms-ai-results-table td.reason-col{min-width:320px}.terms-ai-action-badge{display:inline-flex;align-items:center;justify-content:center;border-radius:999px;padding:2px 8px;font-size:11px;font-weight:700}.terms-ai-action-badge.action-exclude{background:#fee2e2;color:#b91c1c}.terms-ai-action-badge.action-keep{background:#dcfce7;color:#166534}.products-page .products-filters .filter-group.filter-group-columns{min-width:240px}.products-columns-control{border:1px solid #e2e8f0;border-radius:6px;background:#fff;overflow:hidden}.products-columns-control summary{cursor:pointer;padding:8px 10px;font-size:12px;font-weight:600;color:#334155;list-style:none}.products-columns-control summary::-webkit-details-marker{display:none}.products-columns-control summary::after{content:"▼";float:right;font-size:10px;color:#64748b;margin-top:2px}.products-columns-control[open] summary::after{content:"▲"}.products-columns-list{border-top:1px solid #eef2f7;padding:8px 10px;max-height:220px;overflow-y:auto}.products-columns-list .products-col-item{display:flex;align-items:center;gap:8px;font-size:12px;color:#334155;margin-bottom:6px}.products-columns-list .products-col-item:last-child{margin-bottom:0}.products-columns-list .products-col-item input[type=checkbox]{margin:0}#products th:last-child,#products td:last-child{white-space:nowrap}#products .products-row-actions{display:inline-flex;align-items:center;gap:4px}#products .products-row-actions .btn{width:38px;height:32px;padding:0;display:inline-flex;align-items:center;justify-content:center;border-radius:4px !important}#products .products-row-actions .btn i{line-height:1}.logs-page .logs-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.logs-page .logs-header h2{margin:0;font-size:20px;font-weight:600;color:#2d3748}.logs-page .logs-filters{display:flex;flex-wrap:wrap;align-items:flex-end;gap:14px;margin-bottom:16px}.logs-page .logs-filters .filter-group{flex:1 1 160px;min-width:0;max-width:220px}.logs-page .logs-filters .filter-group label{display:block;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:#8899a6;margin-bottom:6px}.logs-page .logs-filters .filter-group .form-control{width:100%;padding:8px 12px;border:1px solid #e2e8f0;border-radius:8px;font-size:14px;color:#2d3748;background:#fff;transition:border-color .2s}.logs-page .logs-filters .filter-group .form-control:focus{outline:none;border-color:#6690f4;box-shadow:0 0 0 3px rgba(102,144,244,.1)}.logs-page .logs-filters .filter-group select.form-control{-moz-appearance:none;appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%238899A6' d='M6 8L1 3h10z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;padding-right:32px}.logs-page .logs-filters .filter-group.filter-group-buttons{flex:0 0 auto;display:flex;gap:6px;max-width:none}.logs-page .logs-table-wrap .table{width:100%}.logs-page .badge{display:inline-block;padding:3px 8px;border-radius:4px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.3px}.logs-page .badge-success{background:#d1fae5;color:#065f46}.logs-page .badge-danger{background:#fee2e2;color:#991b1b}.logs-page .badge-warning{background:#fef3c7;color:#92400e}.js-title-alt-apply{color:#000;justify-content:flex-start}/*# sourceMappingURL=style.css.map */ \ No newline at end of file +*{box-sizing:border-box}body{font-family:"Roboto",sans-serif;margin:0;padding:0;font-size:14px;color:#4e5e6a;background:#f4f6f9;max-width:100vw;overflow-x:hidden}.hide{display:none}small{font-size:.75em}.text-right{text-align:right}.text-bold{font-weight:700 !important}.nowrap{white-space:nowrap}body.unlogged{background:#f4f6f9;margin:0;padding:0}.login-container{display:flex;min-height:100vh}.login-brand{flex:0 0 45%;background:linear-gradient(135deg, #1E2A3A 0%, #2C3E57 50%, #6690F4 100%);display:flex;align-items:center;justify-content:center;padding:60px;position:relative;overflow:hidden}.login-brand::before{content:"";position:absolute;top:-50%;right:-50%;width:100%;height:100%;background:radial-gradient(circle, rgba(102, 144, 244, 0.15) 0%, transparent 70%);border-radius:50%}.login-brand .brand-content{position:relative;z-index:1;color:#fff;max-width:400px}.login-brand .brand-logo{font-size:48px;font-weight:300;margin-bottom:20px;letter-spacing:-1px}.login-brand .brand-logo strong{font-weight:700}.login-brand .brand-tagline{font-size:18px;opacity:.85;line-height:1.6;margin-bottom:50px}.login-brand .brand-features .feature{display:flex;align-items:center;gap:15px;margin-bottom:20px;opacity:.8}.login-brand .brand-features .feature i{font-size:20px;width:40px;height:40px;display:flex;align-items:center;justify-content:center;background:hsla(0,0%,100%,.1);border-radius:10px}.login-brand .brand-features .feature span{font-size:15px}.login-form-wrapper{flex:1;display:flex;align-items:center;justify-content:center;padding:60px;background:#fff}.login-box{width:100%;max-width:420px}.login-box .login-header{margin-bottom:35px}.login-box .login-header h1{font-size:28px;font-weight:700;color:#2d3748;margin:0 0 8px}.login-box .login-header p{color:#718096;font-size:15px;margin:0}.login-box .form-group{margin-bottom:20px}.login-box .form-group label{display:block;font-size:13px;font-weight:600;color:#2d3748;margin-bottom:6px}.login-box .input-with-icon{position:relative}.login-box .input-with-icon i{position:absolute;left:14px;top:50%;transform:translateY(-50%);color:#a0aec0;font-size:14px}.login-box .input-with-icon .form-control{padding-left:42px}.login-box .form-control{width:100%;height:46px;border:2px solid #e2e8f0;border-radius:8px;padding:0 14px;font-size:14px;font-family:"Roboto",sans-serif;color:#2d3748;transition:border-color .3s,box-shadow .3s}.login-box .form-control::-moz-placeholder{color:#cbd5e0}.login-box .form-control::placeholder{color:#cbd5e0}.login-box .form-control:focus{border-color:#6690f4;box-shadow:0 0 0 3px rgba(102,144,244,.15);outline:none}.login-box .form-error{color:#c00;font-size:12px;margin-top:4px}.login-box .checkbox-group .checkbox-label{display:flex;align-items:center;gap:8px;cursor:pointer;font-size:13px;color:#718096;font-weight:400}.login-box .checkbox-group .checkbox-label input[type=checkbox]{width:16px;height:16px;accent-color:#6690f4}.login-box .btn-login{width:100%;height:48px;font-size:15px;font-weight:600;border-radius:8px;display:flex;align-items:center;justify-content:center;gap:8px}.login-box .btn-login.disabled{opacity:.7;pointer-events:none}.login-box .alert{display:none;padding:12px 16px;border-radius:8px;font-size:13px;margin-bottom:20px}.login-box .alert.alert-danger{background:#fff5f5;color:#c00;border:1px solid #fed7d7}.login-box .alert.alert-success{background:#f0fff4;color:#276749;border:1px solid #c6f6d5}@media(max-width: 768px){.login-brand{display:none}.login-form-wrapper{padding:30px 20px}}body.logged{display:flex;min-height:100vh;background:#f4f6f9}.sidebar{width:260px;min-height:100vh;background:#1e2a3a;position:fixed;top:0;left:0;z-index:1000;display:flex;flex-direction:column;transition:width .3s ease;overflow:hidden}.sidebar.collapsed{width:70px}.sidebar.collapsed .sidebar-header{padding:16px 0;justify-content:center}.sidebar.collapsed .sidebar-header .sidebar-logo{display:none}.sidebar.collapsed .sidebar-header .sidebar-toggle i{transform:rotate(180deg)}.sidebar.collapsed .sidebar-nav ul li a{padding:12px 0;justify-content:center}.sidebar.collapsed .sidebar-nav ul li a span{display:none}.sidebar.collapsed .sidebar-nav ul li a i{margin-right:0;font-size:18px}.sidebar.collapsed .sidebar-nav ul li.nav-group .nav-group-label{padding:12px 0;justify-content:center}.sidebar.collapsed .sidebar-nav ul li.nav-group .nav-group-label span{display:none}.sidebar.collapsed .sidebar-nav ul li.nav-group .nav-group-label i{margin-right:0;font-size:18px}.sidebar.collapsed .sidebar-footer .sidebar-user{justify-content:center}.sidebar.collapsed .sidebar-footer .sidebar-user .user-info{display:none}.sidebar.collapsed .sidebar-footer .sidebar-logout{justify-content:center}.sidebar.collapsed .sidebar-footer .sidebar-logout span{display:none}.sidebar.collapsed .nav-divider{margin:8px 15px}.sidebar-header{display:flex;align-items:center;justify-content:space-between;padding:20px 20px 16px;border-bottom:1px solid hsla(0,0%,100%,.08)}.sidebar-header .sidebar-logo a{color:#fff;text-decoration:none;font-size:24px;font-weight:300;letter-spacing:-0.5px}.sidebar-header .sidebar-logo a strong{font-weight:700}.sidebar-header .sidebar-toggle{background:none;border:none;color:#a8b7c7;cursor:pointer;padding:6px;border-radius:6px;transition:all .3s}.sidebar-header .sidebar-toggle:hover{background:hsla(0,0%,100%,.08);color:#fff}.sidebar-header .sidebar-toggle i{transition:transform .3s}.sidebar-nav{flex:1;padding:12px 0;overflow-y:auto}.sidebar-nav ul{list-style:none;margin:0;padding:0}.sidebar-nav ul li.nav-group{margin-bottom:4px}.sidebar-nav ul li.nav-group .nav-group-label{display:flex;align-items:center;padding:11px 20px;color:#d5deea;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.6px;border-left:3px solid rgba(0,0,0,0)}.sidebar-nav ul li.nav-group .nav-group-label i{width:20px;text-align:center;margin-right:12px;font-size:14px;color:#b6c4d3}.sidebar-nav ul li.nav-group .nav-submenu{margin:0;padding:0;list-style:none}.sidebar-nav ul li.nav-group .nav-submenu li a{padding-left:44px}.sidebar-nav ul li.nav-group.active>.nav-group-label{color:#fff;background:rgba(102,144,244,.12);border-left-color:#6690f4}.sidebar-nav ul li.nav-group.active>.nav-group-label i{color:#6690f4}.sidebar-nav ul li.nav-divider{height:1px;background:hsla(0,0%,100%,.08);margin:8px 20px}.sidebar-nav ul li a{display:flex;align-items:center;padding:11px 20px;color:#a8b7c7;text-decoration:none;font-size:14px;transition:all .2s;border-left:3px solid rgba(0,0,0,0)}.sidebar-nav ul li a i{width:20px;text-align:center;margin-right:12px;font-size:15px}.sidebar-nav ul li a:hover{background:#263548;color:#fff}.sidebar-nav ul li.active>a{background:rgba(102,144,244,.15);color:#fff;border-left-color:#6690f4}.sidebar-nav ul li.active>a i{color:#6690f4}.badge-alerts-count{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 6px;margin-left:8px;border-radius:50%;font-size:11px;font-weight:600;line-height:1;background:#fff;color:#6690f4}.sidebar-footer{padding:16px 20px;border-top:1px solid hsla(0,0%,100%,.08)}.sidebar-footer .sidebar-user{display:flex;align-items:center;gap:10px;margin-bottom:12px}.sidebar-footer .sidebar-user .user-avatar{width:34px;height:34px;border-radius:50%;background:rgba(102,144,244,.2);display:flex;align-items:center;justify-content:center;color:#6690f4;font-size:14px;flex-shrink:0}.sidebar-footer .sidebar-user .user-info{overflow:hidden}.sidebar-footer .sidebar-user .user-info .user-email{color:#a8b7c7;font-size:12px;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar-footer .sidebar-logout{display:flex;align-items:center;gap:8px;color:#e53e3e;text-decoration:none;font-size:13px;padding:8px 10px;border-radius:6px;transition:all .2s}.sidebar-footer .sidebar-logout i{font-size:14px}.sidebar-footer .sidebar-logout:hover{background:rgba(229,62,62,.1)}.main-wrapper{margin-left:260px;flex:1;min-height:100vh;transition:margin-left .3s ease;display:flex;flex-direction:column}.main-wrapper.expanded{margin-left:70px}.topbar{height:56px;background:#fff;border-bottom:1px solid #e2e8f0;display:flex;align-items:center;padding:0 25px;position:sticky;top:0;z-index:500}.topbar .topbar-toggle{background:none;border:none;color:#4e5e6a;cursor:pointer;padding:8px 10px;border-radius:6px;font-size:16px;margin-right:15px;transition:all .2s}.topbar .topbar-toggle:hover{background:#f4f6f9}.topbar .topbar-breadcrumb{font-size:16px;font-weight:600;color:#2d3748}.content{flex:1;padding:25px}.app-alert{background:#ebf8ff;border:1px solid #bee3f8;color:#2b6cb0;padding:12px 16px;border-radius:8px;margin-bottom:20px;font-size:14px}.btn{padding:10px 20px;transition:all .2s ease;color:#fff;border:0;border-radius:6px;cursor:pointer;display:inline-flex;text-decoration:none;gap:6px;justify-content:center;align-items:center;font-size:14px;font-family:"Roboto",sans-serif;font-weight:500}.btn.btn_small,.btn.btn-xs,.btn.btn-sm{padding:5px 10px;font-size:12px}.btn.btn_small i,.btn.btn-xs i,.btn.btn-sm i{font-size:11px}.btn.btn-success{background:#57b951}.btn.btn-success:hover{background:#4a9c3b}.btn.btn-primary{background:#6690f4}.btn.btn-primary:hover{background:#3164db}.btn.btn-danger{background:#c00}.btn.btn-danger:hover{background:#b30000}.btn.disabled{opacity:.6;pointer-events:none}.form-control{border:1px solid #e2e8f0;border-radius:6px;height:38px;width:100%;padding:6px 12px;font-family:"Roboto",sans-serif;font-size:14px;color:#2d3748;transition:border-color .2s,box-shadow .2s}.form-control option{padding:5px}.form-control:focus{border-color:#6690f4;box-shadow:0 0 0 3px rgba(102,144,244,.1);outline:none}input[type=checkbox]{border:1px solid #e2e8f0}table{border-collapse:collapse;font-size:13px}.table{width:100%}.table th,.table td{border:1px solid #e2e8f0;padding:8px 10px}.table th{background:#f7fafc;font-weight:600;font-size:12px;text-transform:uppercase;letter-spacing:.03em;color:#718096}.table td.center{text-align:center}.table td.left{text-align:left}.table.table-sm td{padding:5px !important}.table input.form-control{font-size:13px;height:32px}.clients-table-wrap,.campaigns-table-wrap,.products-table-wrap,.logs-table-wrap{background:#fff;border-radius:10px;box-shadow:0 1px 4px rgba(0,0,0,.06);overflow-x:auto;max-width:100%;-ms-overflow-style:none;scrollbar-width:none}.clients-table-wrap::-webkit-scrollbar,.campaigns-table-wrap::-webkit-scrollbar,.products-table-wrap::-webkit-scrollbar,.logs-table-wrap::-webkit-scrollbar{display:none}.clients-table-wrap .table,.campaigns-table-wrap .table,.products-table-wrap .table,.logs-table-wrap .table{margin:0;width:100% !important}.clients-table-wrap .table thead th,.campaigns-table-wrap .table thead th,.products-table-wrap .table thead th,.logs-table-wrap .table thead th{background:#f8fafc;border-bottom:2px solid #e2e8f0;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:#8899a6;padding:12px 16px;white-space:nowrap}.clients-table-wrap .table tbody td,.campaigns-table-wrap .table tbody td,.products-table-wrap .table tbody td,.logs-table-wrap .table tbody td{padding:10px 16px;font-size:13px;color:#2d3748;vertical-align:middle;border-bottom:1px solid #f1f5f9}.clients-table-wrap .table tbody tr:hover td,.campaigns-table-wrap .table tbody tr:hover td,.products-table-wrap .table tbody tr:hover td,.logs-table-wrap .table tbody tr:hover td{background:#f8fafc}.clients-table-wrap .dt-layout-row,.campaigns-table-wrap .dt-layout-row,.products-table-wrap .dt-layout-row,.logs-table-wrap .dt-layout-row{padding:14px 20px;margin:0 !important;border-top:1px solid #f1f5f9}.clients-table-wrap .dt-layout-row:first-child,.campaigns-table-wrap .dt-layout-row:first-child,.products-table-wrap .dt-layout-row:first-child,.logs-table-wrap .dt-layout-row:first-child{display:none}.clients-table-wrap .dt-info,.campaigns-table-wrap .dt-info,.products-table-wrap .dt-info,.logs-table-wrap .dt-info{font-size:13px;color:#8899a6}.clients-table-wrap .dt-paging .pagination,.campaigns-table-wrap .dt-paging .pagination,.products-table-wrap .dt-paging .pagination,.logs-table-wrap .dt-paging .pagination{margin:0;padding:0;list-style:none;display:flex;align-items:center;gap:6px}.clients-table-wrap .dt-paging .pagination .page-item .page-link,.campaigns-table-wrap .dt-paging .pagination .page-item .page-link,.products-table-wrap .dt-paging .pagination .page-item .page-link,.logs-table-wrap .dt-paging .pagination .page-item .page-link{display:inline-flex;align-items:center;justify-content:center;min-width:36px;width:-moz-fit-content;width:fit-content;height:36px;padding:0 14px;border-radius:8px;font-size:13px;font-weight:500;border:1px solid #e2e8f0;background:#fff;color:#4e5e6a;cursor:pointer;transition:all .2s;text-decoration:none;line-height:1;white-space:nowrap}.clients-table-wrap .dt-paging .pagination .page-item .page-link:hover,.campaigns-table-wrap .dt-paging .pagination .page-item .page-link:hover,.products-table-wrap .dt-paging .pagination .page-item .page-link:hover,.logs-table-wrap .dt-paging .pagination .page-item .page-link:hover{background:#eef2ff;color:#6690f4;border-color:#6690f4}.clients-table-wrap .dt-paging .pagination .page-item.active .page-link,.campaigns-table-wrap .dt-paging .pagination .page-item.active .page-link,.products-table-wrap .dt-paging .pagination .page-item.active .page-link,.logs-table-wrap .dt-paging .pagination .page-item.active .page-link{background:#6690f4;color:#fff;border-color:#6690f4;font-weight:600}.clients-table-wrap .dt-paging .pagination .page-item.disabled .page-link,.campaigns-table-wrap .dt-paging .pagination .page-item.disabled .page-link,.products-table-wrap .dt-paging .pagination .page-item.disabled .page-link,.logs-table-wrap .dt-paging .pagination .page-item.disabled .page-link{opacity:.35;cursor:default;pointer-events:none}.clients-table-wrap .dt-processing,.campaigns-table-wrap .dt-processing,.products-table-wrap .dt-processing,.logs-table-wrap .dt-processing{background:hsla(0,0%,100%,.9);color:#4e5e6a;font-size:14px}.card{background:#fff;padding:20px;border-radius:8px;color:#2d3748;font-size:14px;box-shadow:0 1px 3px rgba(0,0,0,.06)}.card.mb25{margin-bottom:20px}.card .card-header{font-weight:600;font-size:15px}.card .card-body{padding-top:12px}.card .card-body table th,.card .card-body table td{font-size:13px}.card .card-body table th.bold,.card .card-body table td.bold{font-weight:600}.card .card-body table th.text-right,.card .card-body table td.text-right{text-align:right}.card .card-body table th.text-center,.card .card-body table td.text-center{text-align:center}.action_menu{display:flex;margin-bottom:20px;gap:12px}.action_menu .btn{padding:8px 16px}.action_menu .btn.btn_add{background:#57b951}.action_menu .btn.btn_add:hover{background:#4a9c3b}.action_menu .btn.btn_cancel{background:#c00}.action_menu .btn.btn_cancel:hover{background:#b30000}.settings-tabs{display:flex;gap:8px;margin-bottom:18px}.settings-tabs .settings-tab{display:inline-flex;align-items:center;gap:6px;padding:8px 14px;border-radius:8px;text-decoration:none;color:#6b7a89;background:#e9eef5;border:1px solid #d8e0ea;font-size:13px;font-weight:600;transition:all .2s}.settings-tabs .settings-tab:hover{color:#2d3748;background:#dde6f2}.settings-tabs .settings-tab.active{color:#fff;background:#6690f4;border-color:#6690f4}.settings-card{background:#fff;border-radius:10px;padding:28px;box-shadow:0 1px 4px rgba(0,0,0,.06)}.settings-card .settings-card-header{display:flex;align-items:center;gap:14px;margin-bottom:24px;padding-bottom:16px;border-bottom:1px solid #e2e8f0}.settings-card .settings-card-header .settings-card-icon{width:44px;height:44px;border-radius:10px;background:rgb(225.706097561,233.7475609756,252.893902439);color:#6690f4;display:flex;align-items:center;justify-content:center;font-size:18px;flex-shrink:0}.settings-card .settings-card-header h3{margin:0;font-size:17px;font-weight:600;color:#2d3748}.settings-card .settings-card-header small{color:#8899a6;font-size:13px}.settings-card .settings-field{margin-bottom:18px}.settings-card .settings-field label{display:block;font-size:13px;font-weight:600;color:#2d3748;margin-bottom:6px}.settings-card .settings-input-wrap{position:relative}.settings-card .settings-input-wrap .settings-input-icon{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:#a0aec0;font-size:14px;pointer-events:none}.settings-card .settings-input-wrap .form-control{padding-left:38px}.settings-card .settings-input-wrap .settings-toggle-pw{position:absolute;right:4px;top:50%;transform:translateY(-50%);background:none;border:none;color:#a0aec0;cursor:pointer;padding:6px 10px;font-size:14px;transition:color .2s}.settings-card .settings-input-wrap .settings-toggle-pw:hover{color:#6690f4}.settings-card .settings-field .settings-toggle-label{display:inline-flex;align-items:center;gap:10px;cursor:pointer;font-size:14px;font-weight:500;-webkit-user-select:none;-moz-user-select:none;user-select:none;margin-bottom:0;width:100%}.settings-card .settings-field .settings-toggle-label .settings-toggle-text{flex:1 1 auto;min-width:0;line-height:1.35}.settings-card .settings-toggle-checkbox{display:none}.settings-card .settings-toggle-checkbox+.settings-toggle-switch{display:inline-block;position:relative;width:44px;height:24px;background:#ccc;border-radius:12px;transition:background .2s;flex-shrink:0}.settings-card .settings-toggle-checkbox+.settings-toggle-switch::after{content:"";position:absolute;top:3px;left:3px;width:18px;height:18px;background:#fff;border-radius:50%;transition:transform .2s}.settings-card .settings-toggle-checkbox:checked+.settings-toggle-switch{background:#22c55e}.settings-card .settings-toggle-checkbox:checked+.settings-toggle-switch::after{transform:translateX(20px)}.settings-card .settings-fields-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 24px}@media(max-width: 768px){.settings-card .settings-fields-grid{grid-template-columns:1fr}}.settings-card .settings-alert-error{display:flex;align-items:center;gap:10px;background:#fff5f5;color:#c00;border:1px solid #fed7d7;border-radius:8px;padding:12px 16px;margin-bottom:20px;font-size:13px}.settings-card .settings-alert-error i{font-size:16px;flex-shrink:0}.clients-page .clients-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.clients-page .clients-header h2{margin:0;font-size:20px;font-weight:600;color:#2d3748}.clients-page .clients-header h2 i{color:#6690f4;margin-right:8px}.clients-page .clients-table-wrap .table .client-id{color:#8899a6;font-size:13px;font-weight:600}.clients-page .clients-table-wrap .table .client-name{font-weight:600;color:#2d3748}.clients-page .badge-id{display:inline-block;background:#eef2ff;color:#6690f4;font-size:13px;font-weight:600;padding:4px 10px;border-radius:6px;font-family:monospace}.clients-page .actions-cell{text-align:center;white-space:nowrap}.clients-page .btn-icon{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:8px;border:none;cursor:pointer;font-size:14px;transition:all .2s;margin:0 2px}.clients-page .btn-icon.btn-icon-edit{background:#eef2ff;color:#6690f4}.clients-page .btn-icon.btn-icon-edit:hover{background:#6690f4;color:#fff}.clients-page .btn-icon.btn-icon-delete{background:#fff5f5;color:#c00}.clients-page .btn-icon.btn-icon-delete:hover{background:#c00;color:#fff}.clients-page .btn-icon.btn-icon-sync{background:#f0fdf4;color:#16a34a}.clients-page .btn-icon.btn-icon-sync:hover{background:#16a34a;color:#fff}.clients-page .btn-icon.btn-icon-sync:disabled{opacity:.7;cursor:wait}.clients-page .btn-icon.btn-icon-sync.is-queued{background:#fef3c7;color:#d97706}.clients-page .client-sync-bars{display:flex;flex-direction:column;gap:4px}.clients-page .client-sync-row{display:flex;align-items:center;gap:4px}.clients-page .client-sync-label{font-size:11px;font-weight:600;color:#8899a6;width:18px;flex-shrink:0}.clients-page .client-sync-track{flex:1;height:6px;border-radius:999px;background:#e9eef5;overflow:hidden}.clients-page .client-sync-fill{height:100%;border-radius:999px;background:#cbd5e0;transition:width .4s ease}.clients-page .client-sync-fill.is-active{background:linear-gradient(90deg, #5A9BFF 0%, #2E6BDF 100%)}.clients-page .client-sync-fill.is-done{background:#57b951}.clients-page .client-sync-pct{font-size:11px;font-weight:600;color:#8899a6;width:32px;text-align:right;flex-shrink:0}.clients-page .empty-state{text-align:center;padding:50px 20px !important;color:#a0aec0}.clients-page .empty-state i{font-size:40px;margin-bottom:12px;display:block}.clients-page .empty-state p{margin:0;font-size:15px}.btn-secondary{background:#e2e8f0;color:#2d3748;border:none;padding:8px 18px;border-radius:6px;font-size:14px;cursor:pointer;transition:background .2s}.btn-secondary:hover{background:#cbd5e0}.campaigns-page{max-width:100%;overflow-x:hidden;width:100%}.campaigns-page .campaigns-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.campaigns-page .campaigns-header h2{margin:0;font-size:20px;font-weight:600;color:#2d3748}.campaigns-page .campaigns-header h2 i{color:#6690f4;margin-right:8px}.campaigns-page .campaigns-filters{display:flex;flex-wrap:wrap;gap:20px;margin-bottom:20px}.campaigns-page .campaigns-filters .filter-group{flex:1;min-width:0}.campaigns-page .campaigns-filters .filter-group label{display:block;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:#8899a6;margin-bottom:6px}.campaigns-page .campaigns-filters .filter-group label i{margin-right:4px}.campaigns-page .campaigns-filters .filter-group .form-control{width:100%;padding:10px 14px;border:1px solid #e2e8f0;border-radius:8px;font-size:14px;color:#2d3748;background:#fff;transition:border-color .2s;-moz-appearance:none;appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%238899A6' d='M6 8L1 3h10z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;padding-right:32px}.campaigns-page .campaigns-filters .filter-group .form-control:focus{outline:none;border-color:#6690f4;box-shadow:0 0 0 3px rgba(102,144,244,.1)}.campaigns-page .campaigns-filters .filter-group .filter-with-action{display:flex;align-items:center;gap:8px}.campaigns-page .campaigns-filters .filter-group .filter-with-action .form-control{flex:1}.campaigns-page .campaigns-filters .filter-group .filter-with-action .btn-icon{flex-shrink:0;width:42px;height:42px;display:inline-flex;align-items:center;justify-content:center;border-radius:8px;border:none;cursor:pointer;font-size:14px;transition:all .2s}.campaigns-page .campaigns-filters .filter-group .filter-with-action .btn-icon.btn-icon-delete{background:#fff5f5;color:#c00}.campaigns-page .campaigns-filters .filter-group .filter-with-action .btn-icon.btn-icon-delete:hover{background:#c00;color:#fff}.campaigns-page .campaigns-filters .filter-group-campaign-multi{flex:2 !important}.campaigns-page .campaigns-filters .campaign-dropdown{flex:1;min-width:0;position:relative}.campaigns-page .campaigns-filters .campaign-dropdown-trigger{width:100%;padding:10px 14px;padding-right:32px;border:1px solid #e2e8f0;border-radius:8px;font-size:14px;color:#2d3748;background:#fff;cursor:pointer;display:flex;align-items:center;transition:border-color .2s;position:relative;min-height:42px;box-sizing:border-box}.campaigns-page .campaigns-filters .campaign-dropdown-trigger .campaign-dropdown-text{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.campaigns-page .campaigns-filters .campaign-dropdown-trigger .campaign-dropdown-text.is-placeholder{color:#8899a6}.campaigns-page .campaigns-filters .campaign-dropdown-trigger .campaign-dropdown-arrow{position:absolute;right:12px;font-size:10px;color:#8899a6;transition:transform .2s}.campaigns-page .campaigns-filters .campaign-dropdown.is-open .campaign-dropdown-trigger{border-color:#6690f4;box-shadow:0 0 0 3px rgba(102,144,244,.1)}.campaigns-page .campaigns-filters .campaign-dropdown.is-open .campaign-dropdown-arrow{transform:rotate(180deg)}.campaigns-page .campaigns-filters .campaign-dropdown.is-open .campaign-dropdown-menu{display:block}.campaigns-page .campaigns-filters .campaign-dropdown-menu{display:none;position:absolute;top:calc(100% + 4px);left:0;right:0;z-index:100;max-height:280px;overflow-y:auto;background:#fff;border:1px solid #e2e8f0;border-radius:8px;box-shadow:0 4px 12px rgba(0,0,0,.1);padding:4px 0}.campaigns-page .campaigns-filters .campaign-dropdown-item{display:flex;align-items:center;gap:8px;padding:8px 12px;cursor:pointer;font-size:14px;color:#2d3748;margin:0;transition:background .15s}.campaigns-page .campaigns-filters .campaign-dropdown-item:hover{background:#f8fafc}.campaigns-page .campaigns-filters .campaign-dropdown-item.is-checked{background:#eef2ff}.campaigns-page .campaigns-filters .campaign-dropdown-item input[type=checkbox]{width:16px;height:16px;cursor:pointer;flex-shrink:0;accent-color:#6690f4}.campaigns-page .campaigns-filters .campaign-dropdown-item span{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.campaigns-page .campaigns-list-panel{background:#fff;border-radius:10px;box-shadow:0 1px 4px rgba(0,0,0,.06);margin-bottom:20px;overflow:hidden}.campaigns-page .campaigns-list-panel .campaigns-list-toolbar{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid #e2e8f0;gap:12px}.campaigns-page .campaigns-list-panel .campaigns-list-toolbar-left{display:flex;align-items:center;gap:8px;font-size:13px;color:#4e5e6a}.campaigns-page .campaigns-list-panel .campaigns-list-toolbar-left input[type=checkbox]{width:16px;height:16px;cursor:pointer}.campaigns-page .campaigns-list-panel .campaigns-list-toolbar-left label{cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;margin:0}.campaigns-page .campaigns-list-panel .campaigns-list-toolbar-left .campaigns-selected-count{margin-left:12px;color:#8899a6}.campaigns-page .campaigns-list-panel .campaigns-list-toolbar-right .campaigns-bulk-delete-btn{display:inline-flex;align-items:center;gap:6px;padding:8px 16px;border:none;border-radius:8px;font-size:13px;font-weight:600;cursor:pointer;background:#fff5f5;color:#c00;transition:all .2s}.campaigns-page .campaigns-list-panel .campaigns-list-toolbar-right .campaigns-bulk-delete-btn:hover:not(:disabled){background:#c00;color:#fff}.campaigns-page .campaigns-list-panel .campaigns-list-toolbar-right .campaigns-bulk-delete-btn:disabled{opacity:.4;cursor:not-allowed}.campaigns-page .campaigns-list-panel .campaigns-list-items{display:flex;flex-wrap:wrap;gap:0;padding:8px 8px;max-height:220px;overflow-y:auto}.campaigns-page .campaigns-list-panel .campaigns-list-items .campaigns-list-item{display:flex;align-items:center;gap:8px;padding:6px 12px;margin:2px;border-radius:6px;font-size:13px;color:#2d3748;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;transition:background .15s}.campaigns-page .campaigns-list-panel .campaigns-list-items .campaigns-list-item:hover{background:#f0f4ff}.campaigns-page .campaigns-list-panel .campaigns-list-items .campaigns-list-item input[type=checkbox]{width:15px;height:15px;cursor:pointer;flex-shrink:0}.campaigns-page .campaigns-list-panel .campaigns-list-items .campaigns-list-item .campaigns-list-item-name{white-space:nowrap}.campaigns-page .campaigns-chart-wrap{background:#fff;border-radius:10px;box-shadow:0 1px 4px rgba(0,0,0,.06);padding:20px;margin-bottom:20px;min-height:350px;overflow:hidden}.campaigns-page .campaigns-chart-wrap #container{max-width:100%}.campaigns-page .campaigns-table-wrap .table{width:100%}.campaigns-page .delete-history-entry{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:6px;border:none;cursor:pointer;font-size:12px;background:#fff5f5;color:#c00;transition:all .2s}.campaigns-page .delete-history-entry:hover{background:#c00;color:#fff}.products-page .products-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.products-page .products-header h2{margin:0;font-size:20px;font-weight:600;color:#2d3748}.products-page .products-header h2 i{color:#6690f4;margin-right:8px}.products-page .products-filters{display:flex;flex-wrap:wrap;align-items:flex-end;gap:20px;margin-bottom:16px}.products-page .products-filters .filter-group{flex:1 1 220px;min-width:0}.products-page .products-filters .filter-group label{display:block;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:#8899a6;margin-bottom:6px}.products-page .products-filters .filter-group label i{margin-right:4px}.products-page .products-filters .filter-group .form-control{width:100%;padding:10px 14px;border:1px solid #e2e8f0;border-radius:8px;font-size:14px;color:#2d3748;background:#fff;transition:border-color .2s}.products-page .products-filters .filter-group .form-control:focus{outline:none;border-color:#6690f4;box-shadow:0 0 0 3px rgba(102,144,244,.1)}.products-page .products-filters .filter-group select.form-control{-moz-appearance:none;appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%238899A6' d='M6 8L1 3h10z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;padding-right:32px}.products-page .products-filters .filter-group.filter-group-client,.products-page .products-filters .filter-group.filter-group-campaign,.products-page .products-filters .filter-group.filter-group-ad-group{flex:1 1 260px}.products-page .products-filters .filter-group.filter-group-ad-group .ad-group-filter-actions{display:flex;gap:8px;align-items:center}.products-page .products-filters .filter-group.filter-group-ad-group .ad-group-filter-actions .form-control{flex:1 1 auto;min-width:0}.products-page .products-filters .filter-group.filter-group-ad-group #delete-products-ad-group{min-width:38px;height:38px;border-radius:6px;margin:0;background:#dc3545;border:1px solid #dc3545;color:#fff;cursor:pointer}.products-page .products-filters .filter-group.filter-group-ad-group #delete-products-ad-group:hover:not(:disabled){background:#bb2d3b;border-color:#bb2d3b;color:#fff}.products-page .products-filters .filter-group.filter-group-ad-group #delete-products-ad-group:disabled{opacity:.45;cursor:default;background:#dc3545;border-color:#dc3545;color:#fff}.products-page .products-filters .filter-group.filter-group-roas{flex:0 0 200px}.products-page .products-filters .filter-group.filter-group-search{flex:1 1 200px}.products-page .products-filters .filter-group.filter-group-cl4{flex:0 0 160px}.products-page .products-filters .filter-group.filter-group-columns{flex:0 0 240px}.products-page .products-scope-alerts{margin-bottom:12px;border:1px solid #fecaca;background:#fef2f2;border-radius:8px;overflow:hidden}.products-page .products-scope-alerts summary{cursor:pointer;list-style:none;padding:10px 12px;font-size:13px;font-weight:600;color:#991b1b;display:flex;align-items:center;gap:8px}.products-page .products-scope-alerts summary::-webkit-details-marker{display:none}.products-page .products-scope-alerts .products-scope-alerts-list{border-top:1px solid #fecaca;background:#fff;max-height:260px;overflow:auto}.products-page .products-scope-alerts .products-scope-alert-item{padding:10px 12px;border-bottom:1px solid #f1f5f9}.products-page .products-scope-alerts .products-scope-alert-item:last-child{border-bottom:none}.products-page .products-scope-alerts .products-scope-alert-meta{display:flex;align-items:center;gap:8px;margin-bottom:4px;font-size:11px;color:#64748b}.products-page .products-scope-alerts .products-scope-alert-type{display:inline-flex;align-items:center;padding:2px 6px;border-radius:999px;background:#eef2ff;color:#4338ca;font-weight:600;text-transform:uppercase;letter-spacing:.3px}.products-page .products-scope-alerts .products-scope-alert-message{font-size:13px;color:#2d3748;line-height:1.45}.products-page .products-actions{margin-bottom:12px}.products-page .products-actions .btn-danger{padding:7px 14px;font-size:13px;border-radius:6px;border:none;cursor:pointer;transition:all .2s}.products-page .products-actions .btn-danger:disabled{opacity:.4;cursor:default}.products-page .products-table-wrap .table{width:100%}.products-page .products-table-wrap .table input.min_roas,.products-page .products-table-wrap .table input.form-control-sm,.products-page .products-table-wrap .table select.custom_label_4,.products-page .products-table-wrap .table select.form-control-sm{padding:3px 6px;font-size:12px;border:1px solid #e2e8f0;border-radius:4px;background:#fff}.products-page .delete-product{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:6px;border:none;cursor:pointer;font-size:12px;background:#fff5f5;color:#c00;transition:all .2s}.products-page .delete-product:hover{background:#c00;color:#fff}.products-page .edit-product-title{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:6px;border:none;cursor:pointer;font-size:12px;background:#eef2ff;color:#6690f4;transition:all .2s}.products-page .edit-product-title:hover{background:#6690f4;color:#fff}.desc-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:4px}.desc-header label{margin:0}.desc-tabs{display:flex;gap:2px;background:#eee;border-radius:6px;padding:2px}.desc-tab{border:none;background:rgba(0,0,0,0);padding:4px 12px;font-size:12px;border-radius:4px;cursor:pointer;color:#666;transition:all .15s ease}.desc-tab i{margin-right:4px}.desc-tab.active{background:#fff;color:#333;box-shadow:0 1px 3px rgba(0,0,0,.12);font-weight:500}.desc-tab:hover:not(.active){color:#333}.desc-wrap{flex:1;min-width:0}.desc-preview ul,.desc-preview ol{margin:6px 0;padding-left:20px}.desc-preview li{margin-bottom:3px}.desc-preview b,.desc-preview strong{font-weight:600}.input-with-ai{display:flex;gap:8px;align-items:flex-start}.input-with-ai .form-control{flex:1}.btn-ai-suggest{display:inline-flex;align-items:center;gap:4px;padding:6px 12px;border-radius:8px;border:1px solid #c084fc;background:linear-gradient(135deg, #F3E8FF, #EDE9FE);color:#7c3aed;font-size:12px;font-weight:600;cursor:pointer;transition:all .2s;white-space:nowrap;min-height:38px}.btn-ai-suggest i{font-size:13px}.btn-ai-suggest:hover{background:linear-gradient(135deg, #7C3AED, #6D28D9);color:#fff;border-color:#6d28d9}.btn-ai-suggest:disabled{opacity:.7;cursor:wait}.btn-ai-suggest.btn-ai-claude{border-color:#d97706;background:linear-gradient(135deg, #FEF3C7, #FDE68A);color:#92400e}.btn-ai-suggest.btn-ai-claude:hover{background:linear-gradient(135deg, #D97706, #B45309);color:#fff;border-color:#b45309}.btn-ai-suggest.btn-ai-gemini{border-color:#4285f4;background:linear-gradient(135deg, #E8F0FE, #D2E3FC);color:#1a73e8}.btn-ai-suggest.btn-ai-gemini:hover{background:linear-gradient(135deg, #4285F4, #1A73E8);color:#fff;border-color:#1a73e8}.form_container{background:#fff;padding:25px;max-width:1300px;border-radius:8px;box-shadow:0 1px 3px rgba(0,0,0,.06)}.form_container.full{max-width:100%}.form_container .form_group{margin-bottom:12px;display:flex}.form_container .form_group>.label{width:300px;display:inline-flex;align-items:flex-start;justify-content:right;padding-right:12px}.form_container .form_group .input{width:calc(100% - 300px)}.default_popup{position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,.45);display:none;z-index:2000}.default_popup .popup_content{position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);background:#fff;padding:25px;border-radius:10px;max-width:1140px;width:95%;box-shadow:0 20px 60px rgba(0,0,0,.15)}.default_popup .popup_content .popup_header{display:flex;justify-content:space-between;align-items:center;margin-bottom:15px}.default_popup .popup_content .popup_header .title{font-size:18px;font-weight:600}.default_popup .popup_content .close{cursor:pointer;color:#a0aec0;font-size:18px;padding:4px}.default_popup .popup_content .close:hover{color:#c00}.dt-layout-table{margin-bottom:20px}.pagination button{border:1px solid #e2e8f0;background:#fff;display:inline-flex;height:32px;width:32px;align-items:center;justify-content:center;margin:0 2px;border-radius:4px;transition:all .2s;cursor:pointer}.pagination button:hover{background:#f4f6f9;border-color:#6690f4}table#products a{color:inherit;text-decoration:none}table#products .table-product-title{display:flex;justify-content:space-between}table#products .edit-product-title{display:flex;height:25px;align-items:center;justify-content:center;width:25px;cursor:pointer;background:#fff;border:1px solid #cbd5e0;color:#cbd5e0;border-radius:4px}table#products .edit-product-title:hover{background:#cbd5e0;color:#fff}table#products a.custom_name{color:#57b951 !important}.product-history-page .product-history-meta{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:14px}.product-history-page .product-history-meta span{display:inline-flex;align-items:center;padding:5px 10px;border-radius:999px;font-size:12px;font-weight:600;color:#4e5e6a;background:#eef2ff;border:1px solid #d9e2ff}.product-history-page .product-history-chart-wrap{background:#fff;border-radius:10px;box-shadow:0 1px 4px rgba(0,0,0,.06);padding:20px;margin-bottom:16px}.product-history-page .chart-with-form{display:flex;gap:20px;align-items:flex-start}.product-history-page .chart-area{flex:1 1 auto;min-width:0}.product-history-page .product-history-chart{min-height:360px}.product-history-page .comment-form{width:340px;flex:0 0 340px;background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;padding:14px}.product-history-page .comment-form .form-group{margin-bottom:12px}.product-history-page .comment-form label{display:block;font-weight:600;margin-bottom:6px;font-size:13px;color:#52606d}.product-history-page .comment-form input[type=date],.product-history-page .comment-form textarea{width:100%;border:1px solid #e2e8f0;border-radius:6px;padding:8px 12px;font-size:14px;font-family:"Roboto",sans-serif;background:#fff}.product-history-page .comment-form input[type=date]:focus,.product-history-page .comment-form textarea:focus{outline:none;border-color:#6690f4;box-shadow:0 0 0 3px rgba(102,144,244,.1)}.product-history-page .comment-form textarea{min-height:110px;resize:vertical}.product-history-page .comment-form .btn{width:100%;justify-content:center;padding:10px 16px}.product-history-page .comment-form .btn[disabled]{opacity:.6;cursor:not-allowed}.product-history-page .products-table-wrap{overflow-x:auto}.product-history-page .products-table-wrap .table{min-width:980px}.product-history-page .products-table-wrap .comment-cell{display:flex;align-items:center;justify-content:space-between;gap:10px}.product-history-page .products-table-wrap .comment-text{word-break:break-word}.product-history-page .products-table-wrap .delete-comment{color:#c00;text-decoration:none;font-weight:600;white-space:nowrap}.product-history-page .products-table-wrap .delete-comment:hover{text-decoration:underline}.product-history-page .products-table-wrap .dt-paging .pagination .page-item{list-style:none}.cron-status-overview{display:flex;flex-wrap:wrap;gap:10px 20px;margin-bottom:20px;color:#4e5e6a;font-size:13px}.cron-progress-list{margin-bottom:20px}.cron-schedule-list{margin-bottom:20px}.cron-schedule-item{border:1px solid #dfe7f0;background:#f4f8fd;border-radius:8px;padding:9px 12px;margin-bottom:8px}.cron-schedule-item:last-child{margin-bottom:0}.cron-schedule-item strong{display:block;color:#2d3748;font-size:13px;font-weight:700;margin-bottom:2px}.cron-schedule-item small{display:block;color:#678;font-size:12px;line-height:1.35}.cron-progress-item{margin-bottom:14px}.cron-progress-item:last-child{margin-bottom:0}.cron-progress-item .cron-progress-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:6px;font-size:13px}.cron-progress-item .cron-progress-head strong{color:#2d3748;font-weight:600}.cron-progress-item .cron-progress-head span{color:#6b7a89;font-size:12px;font-weight:600;white-space:nowrap}.cron-progress-item small{display:block;margin-top:5px;color:#789;font-size:12px}.cron-progress-bar{width:100%;height:10px;border-radius:999px;background:#e9eef5;overflow:hidden}.cron-progress-bar>span{display:block;height:100%;background:linear-gradient(90deg, #5A9BFF 0%, #2E6BDF 100%)}.cron-url-list{margin-bottom:20px}.cron-url-item{border:1px solid #e2e8f0;border-radius:8px;background:#f8fafc;padding:10px 12px;margin-bottom:10px}.cron-url-item:last-child{margin-bottom:0}.cron-url-item .cron-url-top{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:6px}.cron-url-item .cron-url-top strong{color:#2d3748;font-size:13px;font-weight:600}.cron-url-item .cron-url-top small{color:#7a8794;font-size:11px;white-space:nowrap}.cron-url-item code{display:block;background:#eef2f7;border:1px solid #dde4ed;border-radius:6px;padding:6px 8px;color:#2e3b49;font-size:12px;overflow-x:auto}.cron-url-item .cron-url-plan{display:block;color:#6c7b8a;font-size:11px;margin-bottom:6px}@media(max-width: 1200px){.product-history-page .chart-with-form{flex-direction:column}.product-history-page .comment-form{width:100%;flex:1 1 auto}}.jconfirm-box .form-group .select2-container,.adspro-dialog-box .form-group .select2-container{width:100% !important;margin-top:8px}.jconfirm-box .select2-container--default .select2-selection--single,.adspro-dialog-box .select2-container--default .select2-selection--single{background-color:#fff;border:1px solid #e2e8f0;border-radius:6px;min-height:42px;display:flex;align-items:center;padding:4px 12px;box-shadow:none;transition:border-color .2s,box-shadow .2s;font-size:14px}.jconfirm-box .select2-container--default .select2-selection--single .select2-selection__rendered,.adspro-dialog-box .select2-container--default .select2-selection--single .select2-selection__rendered{padding-left:0;line-height:1.4;color:#495057}.jconfirm-box .select2-container--default .select2-selection--single .select2-selection__placeholder,.adspro-dialog-box .select2-container--default .select2-selection--single .select2-selection__placeholder{color:#cbd5e0}.jconfirm-box .select2-container--default .select2-selection--single .select2-selection__arrow,.adspro-dialog-box .select2-container--default .select2-selection--single .select2-selection__arrow{height:100%;right:8px}.jconfirm-box .select2-container--default.select2-container--focus .select2-selection--single,.jconfirm-box .select2-container--default .select2-selection--single:hover,.adspro-dialog-box .select2-container--default.select2-container--focus .select2-selection--single,.adspro-dialog-box .select2-container--default .select2-selection--single:hover{border-color:#6690f4;box-shadow:0 0 0 3px rgba(102,144,244,.1);outline:0}.jconfirm-box .select2-container .select2-dropdown,.adspro-dialog-box .select2-container .select2-dropdown{border-color:#e2e8f0;border-radius:0 0 6px 6px;font-size:14px}.jconfirm-box .select2-container .select2-search--dropdown .select2-search__field,.adspro-dialog-box .select2-container .select2-search--dropdown .select2-search__field{padding:6px 10px;border-radius:4px;border:1px solid #e2e8f0;font-size:14px}.jconfirm-box .select2-container--default .select2-results__option--highlighted[aria-selected],.adspro-dialog-box .select2-container--default .select2-results__option--highlighted[aria-selected]{background-color:#6690f4;color:#fff}@media(max-width: 992px){.sidebar{transform:translateX(-100%)}.sidebar.mobile-open{transform:translateX(0)}.main-wrapper{margin-left:0 !important}}.campaign-terms-wrap{display:flex;flex-direction:column;gap:20px;margin-top:20px}.campaign-terms-page{max-width:100%;overflow:hidden}.campaign-terms-page .campaigns-filters{flex-wrap:wrap}.campaign-terms-page .campaigns-filters .filter-group{min-width:220px}.campaign-terms-page .campaigns-filters .filter-group.terms-columns-group{min-width:280px}.campaign-terms-page .terms-card-toggle{margin-left:auto;width:28px;height:28px;border:1px solid #e2e8f0;border-radius:6px;background:#fff;color:#475569;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s}.campaign-terms-page .terms-card-toggle:hover{background:#f8fafc;border-color:#cbd5e1}.campaign-terms-page .terms-adgroups-card.is-collapsed .campaigns-extra-table-wrap{display:none}.campaign-terms-page .terms-search-toolbar{display:flex;align-items:center;gap:10px;padding:10px 12px;border-bottom:1px solid #eef2f7;background:#fff}.campaign-terms-page .terms-search-toolbar label{font-size:12px;font-weight:600;color:#475569;display:inline-flex;align-items:center;gap:6px;margin:0;white-space:nowrap}.campaign-terms-page .terms-search-toolbar .terms-search-toolbar-label{min-width:86px}.campaign-terms-page .terms-search-toolbar #terms_min_clicks_all,.campaign-terms-page .terms-search-toolbar #terms_max_clicks_all{width:160px;height:32px}.campaign-terms-page .terms-search-toolbar #terms_min_conversions_all,.campaign-terms-page .terms-search-toolbar #terms_max_conversions_all{width:130px;max-width:130px}.campaign-terms-page .terms-search-selected-label{margin:0;font-size:12px;color:#475569;font-weight:600;white-space:nowrap}.campaign-terms-page .terms-ai-analyze-btn{margin-left:auto;display:inline-flex;align-items:center;gap:6px;height:32px;padding:0 12px;border-radius:6px;border:1px solid #bfdbfe;background:#eff6ff;color:#1d4ed8;font-size:12px;font-weight:600;cursor:pointer;transition:all .2s}.campaign-terms-page .terms-ai-analyze-btn:hover{background:#dbeafe;border-color:#93c5fd}.campaign-terms-page .terms-ai-analyze-btn:disabled{opacity:.6;cursor:wait}.campaign-terms-page .terms-negative-toolbar{display:flex;align-items:center;gap:10px;padding:10px 12px;border-bottom:1px solid #eef2f7;background:#fff}.campaign-terms-page .terms-negative-bulk-btn{display:inline-flex;align-items:center;gap:6px;height:32px;padding:0 12px;border-radius:6px;border:1px solid #fecaca;background:#fef2f2;color:#dc2626;font-size:12px;font-weight:600;cursor:pointer;transition:all .2s}.campaign-terms-page .terms-negative-bulk-btn:hover{background:#fee2e2;border-color:#fca5a5}.campaign-terms-page .terms-negative-bulk-btn:disabled{opacity:.5;cursor:not-allowed}.campaign-terms-page table.campaigns-extra-table>thead>tr>th{position:sticky;top:0;z-index:2;background-color:#111827 !important;color:#e5e7eb !important;border-bottom:1px solid #0b1220 !important;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.4px;padding:10px 12px;white-space:nowrap}.campaign-terms-page #terms_search_table thead th .dt-column-order,.campaign-terms-page #terms_negative_table thead th .dt-column-order{display:none !important}.campaign-terms-page #terms_search_table thead th.dt-orderable-asc,.campaign-terms-page #terms_search_table thead th.dt-orderable-desc,.campaign-terms-page #terms_negative_table thead th.dt-orderable-asc,.campaign-terms-page #terms_negative_table thead th.dt-orderable-desc{cursor:pointer;padding-right:34px;overflow:hidden}.campaign-terms-page #terms_search_table thead th .dt-column-title,.campaign-terms-page #terms_negative_table thead th .dt-column-title{display:block;overflow:hidden;text-overflow:ellipsis;padding-right:2px}.campaign-terms-page #terms_search_table thead th.dt-orderable-asc::after,.campaign-terms-page #terms_search_table thead th.dt-orderable-desc::after,.campaign-terms-page #terms_negative_table thead th.dt-orderable-asc::after,.campaign-terms-page #terms_negative_table thead th.dt-orderable-desc::after{content:"↕";position:absolute;right:10px;top:50%;transform:translateY(-50%);width:16px;height:16px;border-radius:999px;font-size:12px;font-weight:700;line-height:16px;text-align:center;color:#e5e7eb;background:#374151}.campaign-terms-page #terms_search_table thead th.dt-ordering-asc::after,.campaign-terms-page #terms_negative_table thead th.dt-ordering-asc::after,.campaign-terms-page #terms_search_table thead th[aria-sort=ascending]::after,.campaign-terms-page #terms_negative_table thead th[aria-sort=ascending]::after{content:"▲";color:#fff;background:#2563eb}.campaign-terms-page #terms_search_table thead th.dt-ordering-desc::after,.campaign-terms-page #terms_negative_table thead th.dt-ordering-desc::after,.campaign-terms-page #terms_search_table thead th[aria-sort=descending]::after,.campaign-terms-page #terms_negative_table thead th[aria-sort=descending]::after{content:"▼";color:#fff;background:#2563eb}.campaign-terms-page #terms_negative_select_all,.campaign-terms-page .terms-negative-select-row,.campaign-terms-page #terms_search_select_all,.campaign-terms-page .terms-search-select-row{width:14px;height:14px;cursor:pointer}.campaign-terms-page .dt-layout-row:first-child{display:none}.campaign-terms-page .dt-layout-row{padding:10px 12px;margin:0 !important;border-top:1px solid #f1f5f9}.campaign-terms-page .dt-info{font-size:12px;color:#64748b}.campaign-terms-page .dt-paging .pagination{margin:0;padding:0;list-style:none !important;display:flex;align-items:center;gap:6px}.campaign-terms-page .dt-paging .pagination .page-item{list-style:none !important}.campaign-terms-page .dt-paging .pagination .page-item .page-link{display:inline-flex;align-items:center;justify-content:center;min-width:36px;width:-moz-fit-content;width:fit-content;height:32px;padding:0 12px;border-radius:6px;font-size:12px;font-weight:500;border:1px solid #e2e8f0;background:#fff;color:#4e5e6a;text-decoration:none;line-height:1;white-space:nowrap}.campaign-terms-page .dt-paging .pagination .page-item .page-link:hover{background:#eef2ff;color:#6690f4;border-color:#6690f4}.campaign-terms-page .dt-paging .pagination .page-item.previous .page-link,.campaign-terms-page .dt-paging .pagination .page-item.next .page-link{min-width:72px}.campaign-terms-page .dt-paging .pagination .page-item.active .page-link{background:#6690f4;color:#fff;border-color:#6690f4}.campaign-terms-page .dt-paging .pagination .page-item.disabled .page-link{opacity:.35;cursor:default;pointer-events:none}.terms-columns-box{display:flex;flex-direction:column;gap:6px}.terms-columns-control{border:1px solid #e2e8f0;border-radius:6px;background:#fff;overflow:hidden}.terms-columns-control summary{cursor:pointer;padding:8px 10px;font-size:12px;font-weight:600;color:#334155;list-style:none}.terms-columns-control summary::-webkit-details-marker{display:none}.terms-columns-control summary::after{content:"▼";float:right;font-size:10px;color:#64748b;margin-top:2px}.terms-columns-control[open] summary::after{content:"▲"}.terms-columns-list{border-top:1px solid #eef2f7;padding:8px 10px;max-height:180px;overflow-y:auto}.terms-columns-list .terms-col-item{display:flex;align-items:center;gap:8px;font-size:12px;color:#334155;margin-bottom:6px}.terms-columns-list .terms-col-item:last-child{margin-bottom:0}.terms-columns-list .terms-col-item input[type=checkbox]{margin:0}.campaigns-extra-card{background:#fff;border-radius:10px;box-shadow:0 1px 4px rgba(0,0,0,.06);overflow:hidden}.campaigns-extra-card-title{padding:14px 16px;border-bottom:1px solid #e2e8f0;font-size:13px;font-weight:700;color:#334155;display:flex;align-items:center;gap:8px}.campaigns-extra-card-title .terms-card-title-label{display:inline-flex;align-items:center;gap:8px}.campaigns-extra-table-wrap{overflow:auto}.campaigns-extra-table{margin:0;width:100%;table-layout:fixed}.campaigns-extra-table tbody td{padding:9px 12px;border-bottom:1px solid #f1f5f9;font-size:13px;color:#334155;vertical-align:middle;white-space:nowrap}.campaigns-extra-table td.num-cell{text-align:right;white-space:nowrap}.campaigns-extra-table td.text-cell{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.campaigns-extra-table th.terms-negative-select-cell,.campaigns-extra-table td.terms-negative-select-cell,.campaigns-extra-table th.terms-search-select-cell,.campaigns-extra-table td.terms-search-select-cell{text-align:center}.campaigns-extra-table th.phrase-nowrap,.campaigns-extra-table td.phrase-nowrap{white-space:nowrap !important;overflow:hidden;text-overflow:ellipsis}.campaigns-extra-table .terms-add-negative-btn,.campaigns-extra-table .terms-remove-negative-btn{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:6px;cursor:pointer;transition:all .2s}.campaigns-extra-table .terms-add-negative-btn{border:1px solid #e2e8f0;background:#eef2ff;color:#3b82f6}.campaigns-extra-table .terms-add-negative-btn:hover{background:#3b82f6;color:#fff;border-color:#3b82f6}.campaigns-extra-table .terms-remove-negative-btn{border:1px solid #fecaca;background:#fef2f2;color:#dc2626}.campaigns-extra-table .terms-remove-negative-btn:hover{background:#dc2626;color:#fff;border-color:#dc2626}.campaigns-extra-table tbody tr:hover{background:#f8fafc}.campaigns-extra-table tbody tr.term-is-negative td{color:#dc2626}.campaigns-extra-table tbody tr.term-is-negative:hover{background:#fef2f2}.campaigns-empty-row{text-align:center;color:#94a3b8 !important;font-style:italic}.terms-ai-modal-toolbar{display:flex;align-items:center;gap:10px;margin-bottom:10px}.terms-ai-modal-toolbar label{font-size:12px;font-weight:600;color:#334155;margin:0}.terms-ai-modal-toolbar .form-control{width:200px;height:32px}.terms-ai-summary{font-size:12px;color:#64748b;margin-bottom:10px}.terms-ai-results-wrap{border:1px solid #e2e8f0;border-radius:8px;max-height:420px;overflow:auto}.terms-ai-results-table{width:100%;border-collapse:collapse;font-size:12px}.terms-ai-results-table th,.terms-ai-results-table td{border-bottom:1px solid #eef2f7;padding:8px;vertical-align:middle}.terms-ai-results-table th{position:sticky;top:0;background:#f8fafc;color:#334155;font-weight:700}.terms-ai-results-table td.term-col{min-width:260px;max-width:380px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.terms-ai-results-table td.reason-col{min-width:320px}.terms-ai-action-badge{display:inline-flex;align-items:center;justify-content:center;border-radius:999px;padding:2px 8px;font-size:11px;font-weight:700}.terms-ai-action-badge.action-exclude{background:#fee2e2;color:#b91c1c}.terms-ai-action-badge.action-keep{background:#dcfce7;color:#166534}.products-page .products-filters .filter-group.filter-group-columns{min-width:240px}.products-columns-control{border:1px solid #e2e8f0;border-radius:6px;background:#fff;overflow:hidden}.products-columns-control summary{cursor:pointer;padding:8px 10px;font-size:12px;font-weight:600;color:#334155;list-style:none}.products-columns-control summary::-webkit-details-marker{display:none}.products-columns-control summary::after{content:"▼";float:right;font-size:10px;color:#64748b;margin-top:2px}.products-columns-control[open] summary::after{content:"▲"}.products-columns-list{border-top:1px solid #eef2f7;padding:8px 10px;max-height:220px;overflow-y:auto}.products-columns-list .products-col-item{display:flex;align-items:center;gap:8px;font-size:12px;color:#334155;margin-bottom:6px}.products-columns-list .products-col-item:last-child{margin-bottom:0}.products-columns-list .products-col-item input[type=checkbox]{margin:0}#products th:last-child,#products td:last-child{white-space:nowrap}#products tr.product-row-unavailable{opacity:.45}#products tr.product-row-unavailable td{background-color:#f0f0f0 !important}#products .products-row-actions{display:inline-flex;align-items:center;gap:4px}#products .products-row-actions .btn{width:38px;height:32px;padding:0;display:inline-flex;align-items:center;justify-content:center;border-radius:4px !important}#products .products-row-actions .btn i{line-height:1}.logs-page .logs-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.logs-page .logs-header h2{margin:0;font-size:20px;font-weight:600;color:#2d3748}.logs-page .logs-filters{display:flex;flex-wrap:wrap;align-items:flex-end;gap:14px;margin-bottom:16px}.logs-page .logs-filters .filter-group{flex:1 1 160px;min-width:0;max-width:220px}.logs-page .logs-filters .filter-group label{display:block;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:#8899a6;margin-bottom:6px}.logs-page .logs-filters .filter-group .form-control{width:100%;padding:8px 12px;border:1px solid #e2e8f0;border-radius:8px;font-size:14px;color:#2d3748;background:#fff;transition:border-color .2s}.logs-page .logs-filters .filter-group .form-control:focus{outline:none;border-color:#6690f4;box-shadow:0 0 0 3px rgba(102,144,244,.1)}.logs-page .logs-filters .filter-group select.form-control{-moz-appearance:none;appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%238899A6' d='M6 8L1 3h10z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;padding-right:32px}.logs-page .logs-filters .filter-group.filter-group-buttons{flex:0 0 auto;display:flex;gap:6px;max-width:none}.logs-page .logs-table-wrap .table{width:100%}.logs-page .badge{display:inline-block;padding:3px 8px;border-radius:4px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.3px}.logs-page .badge-success{background:#d1fae5;color:#065f46}.logs-page .badge-danger{background:#fee2e2;color:#991b1b}.logs-page .badge-warning{background:#fef3c7;color:#92400e}.js-title-alt-apply{color:#000;justify-content:flex-start}/*# sourceMappingURL=style.css.map */ \ No newline at end of file diff --git a/layout/style.css.map b/layout/style.css.map index 45233ed..250a00c 100644 --- a/layout/style.css.map +++ b/layout/style.css.map @@ -1 +1 @@ -{"version":3,"sources":["style.css","style.scss"],"names":[],"mappings":"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","file":"style.css","sourcesContent":["*{box-sizing:border-box}body{font-family:\"Roboto\",sans-serif;margin:0;padding:0;font-size:14px;color:#4e5e6a;background:#f4f6f9;max-width:100vw;overflow-x:hidden}.hide{display:none}small{font-size:.75em}.text-right{text-align:right}.text-bold{font-weight:700 !important}.nowrap{white-space:nowrap}body.unlogged{background:#f4f6f9;margin:0;padding:0}.login-container{display:flex;min-height:100vh}.login-brand{flex:0 0 45%;background:linear-gradient(135deg, #1E2A3A 0%, #2C3E57 50%, #6690F4 100%);display:flex;align-items:center;justify-content:center;padding:60px;position:relative;overflow:hidden}.login-brand::before{content:\"\";position:absolute;top:-50%;right:-50%;width:100%;height:100%;background:radial-gradient(circle, rgba(102, 144, 244, 0.15) 0%, transparent 70%);border-radius:50%}.login-brand .brand-content{position:relative;z-index:1;color:#fff;max-width:400px}.login-brand .brand-logo{font-size:48px;font-weight:300;margin-bottom:20px;letter-spacing:-1px}.login-brand .brand-logo strong{font-weight:700}.login-brand .brand-tagline{font-size:18px;opacity:.85;line-height:1.6;margin-bottom:50px}.login-brand .brand-features .feature{display:flex;align-items:center;gap:15px;margin-bottom:20px;opacity:.8}.login-brand .brand-features .feature i{font-size:20px;width:40px;height:40px;display:flex;align-items:center;justify-content:center;background:hsla(0,0%,100%,.1);border-radius:10px}.login-brand .brand-features .feature span{font-size:15px}.login-form-wrapper{flex:1;display:flex;align-items:center;justify-content:center;padding:60px;background:#fff}.login-box{width:100%;max-width:420px}.login-box .login-header{margin-bottom:35px}.login-box .login-header h1{font-size:28px;font-weight:700;color:#2d3748;margin:0 0 8px}.login-box .login-header p{color:#718096;font-size:15px;margin:0}.login-box .form-group{margin-bottom:20px}.login-box .form-group label{display:block;font-size:13px;font-weight:600;color:#2d3748;margin-bottom:6px}.login-box .input-with-icon{position:relative}.login-box .input-with-icon i{position:absolute;left:14px;top:50%;transform:translateY(-50%);color:#a0aec0;font-size:14px}.login-box .input-with-icon .form-control{padding-left:42px}.login-box .form-control{width:100%;height:46px;border:2px solid #e2e8f0;border-radius:8px;padding:0 14px;font-size:14px;font-family:\"Roboto\",sans-serif;color:#2d3748;transition:border-color .3s,box-shadow .3s}.login-box .form-control::placeholder{color:#cbd5e0}.login-box .form-control:focus{border-color:#6690f4;box-shadow:0 0 0 3px rgba(102,144,244,.15);outline:none}.login-box .form-error{color:#c00;font-size:12px;margin-top:4px}.login-box .checkbox-group .checkbox-label{display:flex;align-items:center;gap:8px;cursor:pointer;font-size:13px;color:#718096;font-weight:400}.login-box .checkbox-group .checkbox-label input[type=checkbox]{width:16px;height:16px;accent-color:#6690f4}.login-box .btn-login{width:100%;height:48px;font-size:15px;font-weight:600;border-radius:8px;display:flex;align-items:center;justify-content:center;gap:8px}.login-box .btn-login.disabled{opacity:.7;pointer-events:none}.login-box .alert{display:none;padding:12px 16px;border-radius:8px;font-size:13px;margin-bottom:20px}.login-box .alert.alert-danger{background:#fff5f5;color:#c00;border:1px solid #fed7d7}.login-box .alert.alert-success{background:#f0fff4;color:#276749;border:1px solid #c6f6d5}@media(max-width: 768px){.login-brand{display:none}.login-form-wrapper{padding:30px 20px}}body.logged{display:flex;min-height:100vh;background:#f4f6f9}.sidebar{width:260px;min-height:100vh;background:#1e2a3a;position:fixed;top:0;left:0;z-index:1000;display:flex;flex-direction:column;transition:width .3s ease;overflow:hidden}.sidebar.collapsed{width:70px}.sidebar.collapsed .sidebar-header{padding:16px 0;justify-content:center}.sidebar.collapsed .sidebar-header .sidebar-logo{display:none}.sidebar.collapsed .sidebar-header .sidebar-toggle i{transform:rotate(180deg)}.sidebar.collapsed .sidebar-nav ul li a{padding:12px 0;justify-content:center}.sidebar.collapsed .sidebar-nav ul li a span{display:none}.sidebar.collapsed .sidebar-nav ul li a i{margin-right:0;font-size:18px}.sidebar.collapsed .sidebar-nav ul li.nav-group .nav-group-label{padding:12px 0;justify-content:center}.sidebar.collapsed .sidebar-nav ul li.nav-group .nav-group-label span{display:none}.sidebar.collapsed .sidebar-nav ul li.nav-group .nav-group-label i{margin-right:0;font-size:18px}.sidebar.collapsed .sidebar-footer .sidebar-user{justify-content:center}.sidebar.collapsed .sidebar-footer .sidebar-user .user-info{display:none}.sidebar.collapsed .sidebar-footer .sidebar-logout{justify-content:center}.sidebar.collapsed .sidebar-footer .sidebar-logout span{display:none}.sidebar.collapsed .nav-divider{margin:8px 15px}.sidebar-header{display:flex;align-items:center;justify-content:space-between;padding:20px 20px 16px;border-bottom:1px solid hsla(0,0%,100%,.08)}.sidebar-header .sidebar-logo a{color:#fff;text-decoration:none;font-size:24px;font-weight:300;letter-spacing:-0.5px}.sidebar-header .sidebar-logo a strong{font-weight:700}.sidebar-header .sidebar-toggle{background:none;border:none;color:#a8b7c7;cursor:pointer;padding:6px;border-radius:6px;transition:all .3s}.sidebar-header .sidebar-toggle:hover{background:hsla(0,0%,100%,.08);color:#fff}.sidebar-header .sidebar-toggle i{transition:transform .3s}.sidebar-nav{flex:1;padding:12px 0;overflow-y:auto}.sidebar-nav ul{list-style:none;margin:0;padding:0}.sidebar-nav ul li.nav-group{margin-bottom:4px}.sidebar-nav ul li.nav-group .nav-group-label{display:flex;align-items:center;padding:11px 20px;color:#d5deea;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.6px;border-left:3px solid rgba(0,0,0,0)}.sidebar-nav ul li.nav-group .nav-group-label i{width:20px;text-align:center;margin-right:12px;font-size:14px;color:#b6c4d3}.sidebar-nav ul li.nav-group .nav-submenu{margin:0;padding:0;list-style:none}.sidebar-nav ul li.nav-group .nav-submenu li a{padding-left:44px}.sidebar-nav ul li.nav-group.active>.nav-group-label{color:#fff;background:rgba(102,144,244,.12);border-left-color:#6690f4}.sidebar-nav ul li.nav-group.active>.nav-group-label i{color:#6690f4}.sidebar-nav ul li.nav-divider{height:1px;background:hsla(0,0%,100%,.08);margin:8px 20px}.sidebar-nav ul li a{display:flex;align-items:center;padding:11px 20px;color:#a8b7c7;text-decoration:none;font-size:14px;transition:all .2s;border-left:3px solid rgba(0,0,0,0)}.sidebar-nav ul li a i{width:20px;text-align:center;margin-right:12px;font-size:15px}.sidebar-nav ul li a:hover{background:#263548;color:#fff}.sidebar-nav ul li.active>a{background:rgba(102,144,244,.15);color:#fff;border-left-color:#6690f4}.sidebar-nav ul li.active>a i{color:#6690f4}.badge-alerts-count{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 6px;margin-left:8px;border-radius:50%;font-size:11px;font-weight:600;line-height:1;background:#fff;color:#6690f4}.sidebar-footer{padding:16px 20px;border-top:1px solid hsla(0,0%,100%,.08)}.sidebar-footer .sidebar-user{display:flex;align-items:center;gap:10px;margin-bottom:12px}.sidebar-footer .sidebar-user .user-avatar{width:34px;height:34px;border-radius:50%;background:rgba(102,144,244,.2);display:flex;align-items:center;justify-content:center;color:#6690f4;font-size:14px;flex-shrink:0}.sidebar-footer .sidebar-user .user-info{overflow:hidden}.sidebar-footer .sidebar-user .user-info .user-email{color:#a8b7c7;font-size:12px;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar-footer .sidebar-logout{display:flex;align-items:center;gap:8px;color:#e53e3e;text-decoration:none;font-size:13px;padding:8px 10px;border-radius:6px;transition:all .2s}.sidebar-footer .sidebar-logout i{font-size:14px}.sidebar-footer .sidebar-logout:hover{background:rgba(229,62,62,.1)}.main-wrapper{margin-left:260px;flex:1;min-height:100vh;transition:margin-left .3s ease;display:flex;flex-direction:column}.main-wrapper.expanded{margin-left:70px}.topbar{height:56px;background:#fff;border-bottom:1px solid #e2e8f0;display:flex;align-items:center;padding:0 25px;position:sticky;top:0;z-index:500}.topbar .topbar-toggle{background:none;border:none;color:#4e5e6a;cursor:pointer;padding:8px 10px;border-radius:6px;font-size:16px;margin-right:15px;transition:all .2s}.topbar .topbar-toggle:hover{background:#f4f6f9}.topbar .topbar-breadcrumb{font-size:16px;font-weight:600;color:#2d3748}.content{flex:1;padding:25px}.app-alert{background:#ebf8ff;border:1px solid #bee3f8;color:#2b6cb0;padding:12px 16px;border-radius:8px;margin-bottom:20px;font-size:14px}.btn{padding:10px 20px;transition:all .2s ease;color:#fff;border:0;border-radius:6px;cursor:pointer;display:inline-flex;text-decoration:none;gap:6px;justify-content:center;align-items:center;font-size:14px;font-family:\"Roboto\",sans-serif;font-weight:500}.btn.btn_small,.btn.btn-xs,.btn.btn-sm{padding:5px 10px;font-size:12px}.btn.btn_small i,.btn.btn-xs i,.btn.btn-sm i{font-size:11px}.btn.btn-success{background:#57b951}.btn.btn-success:hover{background:#4a9c3b}.btn.btn-primary{background:#6690f4}.btn.btn-primary:hover{background:#3164db}.btn.btn-danger{background:#c00}.btn.btn-danger:hover{background:#b30000}.btn.disabled{opacity:.6;pointer-events:none}.form-control{border:1px solid #e2e8f0;border-radius:6px;height:38px;width:100%;padding:6px 12px;font-family:\"Roboto\",sans-serif;font-size:14px;color:#2d3748;transition:border-color .2s,box-shadow .2s}.form-control option{padding:5px}.form-control:focus{border-color:#6690f4;box-shadow:0 0 0 3px rgba(102,144,244,.1);outline:none}input[type=checkbox]{border:1px solid #e2e8f0}table{border-collapse:collapse;font-size:13px}.table{width:100%}.table th,.table td{border:1px solid #e2e8f0;padding:8px 10px}.table th{background:#f7fafc;font-weight:600;font-size:12px;text-transform:uppercase;letter-spacing:.03em;color:#718096}.table td.center{text-align:center}.table td.left{text-align:left}.table.table-sm td{padding:5px !important}.table input.form-control{font-size:13px;height:32px}.clients-table-wrap,.campaigns-table-wrap,.products-table-wrap,.logs-table-wrap{background:#fff;border-radius:10px;box-shadow:0 1px 4px rgba(0,0,0,.06);overflow-x:auto;max-width:100%;-ms-overflow-style:none;scrollbar-width:none}.clients-table-wrap::-webkit-scrollbar,.campaigns-table-wrap::-webkit-scrollbar,.products-table-wrap::-webkit-scrollbar,.logs-table-wrap::-webkit-scrollbar{display:none}.clients-table-wrap .table,.campaigns-table-wrap .table,.products-table-wrap .table,.logs-table-wrap .table{margin:0;width:100% !important}.clients-table-wrap .table thead th,.campaigns-table-wrap .table thead th,.products-table-wrap .table thead th,.logs-table-wrap .table thead th{background:#f8fafc;border-bottom:2px solid #e2e8f0;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:#8899a6;padding:12px 16px;white-space:nowrap}.clients-table-wrap .table tbody td,.campaigns-table-wrap .table tbody td,.products-table-wrap .table tbody td,.logs-table-wrap .table tbody td{padding:10px 16px;font-size:13px;color:#2d3748;vertical-align:middle;border-bottom:1px solid #f1f5f9}.clients-table-wrap .table tbody tr:hover td,.campaigns-table-wrap .table tbody tr:hover td,.products-table-wrap .table tbody tr:hover td,.logs-table-wrap .table tbody tr:hover td{background:#f8fafc}.clients-table-wrap .dt-layout-row,.campaigns-table-wrap .dt-layout-row,.products-table-wrap .dt-layout-row,.logs-table-wrap .dt-layout-row{padding:14px 20px;margin:0 !important;border-top:1px solid #f1f5f9}.clients-table-wrap .dt-layout-row:first-child,.campaigns-table-wrap .dt-layout-row:first-child,.products-table-wrap .dt-layout-row:first-child,.logs-table-wrap .dt-layout-row:first-child{display:none}.clients-table-wrap .dt-info,.campaigns-table-wrap .dt-info,.products-table-wrap .dt-info,.logs-table-wrap .dt-info{font-size:13px;color:#8899a6}.clients-table-wrap .dt-paging .pagination,.campaigns-table-wrap .dt-paging .pagination,.products-table-wrap .dt-paging .pagination,.logs-table-wrap .dt-paging .pagination{margin:0;padding:0;list-style:none;display:flex;align-items:center;gap:6px}.clients-table-wrap .dt-paging .pagination .page-item .page-link,.campaigns-table-wrap .dt-paging .pagination .page-item .page-link,.products-table-wrap .dt-paging .pagination .page-item .page-link,.logs-table-wrap .dt-paging .pagination .page-item .page-link{display:inline-flex;align-items:center;justify-content:center;min-width:36px;width:fit-content;height:36px;padding:0 14px;border-radius:8px;font-size:13px;font-weight:500;border:1px solid #e2e8f0;background:#fff;color:#4e5e6a;cursor:pointer;transition:all .2s;text-decoration:none;line-height:1;white-space:nowrap}.clients-table-wrap .dt-paging .pagination .page-item .page-link:hover,.campaigns-table-wrap .dt-paging .pagination .page-item .page-link:hover,.products-table-wrap .dt-paging .pagination .page-item .page-link:hover,.logs-table-wrap .dt-paging .pagination .page-item .page-link:hover{background:#eef2ff;color:#6690f4;border-color:#6690f4}.clients-table-wrap .dt-paging .pagination .page-item.active .page-link,.campaigns-table-wrap .dt-paging .pagination .page-item.active .page-link,.products-table-wrap .dt-paging .pagination .page-item.active .page-link,.logs-table-wrap .dt-paging .pagination .page-item.active .page-link{background:#6690f4;color:#fff;border-color:#6690f4;font-weight:600}.clients-table-wrap .dt-paging .pagination .page-item.disabled .page-link,.campaigns-table-wrap .dt-paging .pagination .page-item.disabled .page-link,.products-table-wrap .dt-paging .pagination .page-item.disabled .page-link,.logs-table-wrap .dt-paging .pagination .page-item.disabled .page-link{opacity:.35;cursor:default;pointer-events:none}.clients-table-wrap .dt-processing,.campaigns-table-wrap .dt-processing,.products-table-wrap .dt-processing,.logs-table-wrap .dt-processing{background:hsla(0,0%,100%,.9);color:#4e5e6a;font-size:14px}.card{background:#fff;padding:20px;border-radius:8px;color:#2d3748;font-size:14px;box-shadow:0 1px 3px rgba(0,0,0,.06)}.card.mb25{margin-bottom:20px}.card .card-header{font-weight:600;font-size:15px}.card .card-body{padding-top:12px}.card .card-body table th,.card .card-body table td{font-size:13px}.card .card-body table th.bold,.card .card-body table td.bold{font-weight:600}.card .card-body table th.text-right,.card .card-body table td.text-right{text-align:right}.card .card-body table th.text-center,.card .card-body table td.text-center{text-align:center}.action_menu{display:flex;margin-bottom:20px;gap:12px}.action_menu .btn{padding:8px 16px}.action_menu .btn.btn_add{background:#57b951}.action_menu .btn.btn_add:hover{background:#4a9c3b}.action_menu .btn.btn_cancel{background:#c00}.action_menu .btn.btn_cancel:hover{background:#b30000}.settings-tabs{display:flex;gap:8px;margin-bottom:18px}.settings-tabs .settings-tab{display:inline-flex;align-items:center;gap:6px;padding:8px 14px;border-radius:8px;text-decoration:none;color:#6b7a89;background:#e9eef5;border:1px solid #d8e0ea;font-size:13px;font-weight:600;transition:all .2s}.settings-tabs .settings-tab:hover{color:#2d3748;background:#dde6f2}.settings-tabs .settings-tab.active{color:#fff;background:#6690f4;border-color:#6690f4}.settings-card{background:#fff;border-radius:10px;padding:28px;box-shadow:0 1px 4px rgba(0,0,0,.06)}.settings-card .settings-card-header{display:flex;align-items:center;gap:14px;margin-bottom:24px;padding-bottom:16px;border-bottom:1px solid #e2e8f0}.settings-card .settings-card-header .settings-card-icon{width:44px;height:44px;border-radius:10px;background:rgb(225.706097561,233.7475609756,252.893902439);color:#6690f4;display:flex;align-items:center;justify-content:center;font-size:18px;flex-shrink:0}.settings-card .settings-card-header h3{margin:0;font-size:17px;font-weight:600;color:#2d3748}.settings-card .settings-card-header small{color:#8899a6;font-size:13px}.settings-card .settings-field{margin-bottom:18px}.settings-card .settings-field label{display:block;font-size:13px;font-weight:600;color:#2d3748;margin-bottom:6px}.settings-card .settings-input-wrap{position:relative}.settings-card .settings-input-wrap .settings-input-icon{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:#a0aec0;font-size:14px;pointer-events:none}.settings-card .settings-input-wrap .form-control{padding-left:38px}.settings-card .settings-input-wrap .settings-toggle-pw{position:absolute;right:4px;top:50%;transform:translateY(-50%);background:none;border:none;color:#a0aec0;cursor:pointer;padding:6px 10px;font-size:14px;transition:color .2s}.settings-card .settings-input-wrap .settings-toggle-pw:hover{color:#6690f4}.settings-card .settings-field .settings-toggle-label{display:inline-flex;align-items:center;gap:10px;cursor:pointer;font-size:14px;font-weight:500;user-select:none;margin-bottom:0;width:100%}.settings-card .settings-field .settings-toggle-label .settings-toggle-text{flex:1 1 auto;min-width:0;line-height:1.35}.settings-card .settings-toggle-checkbox{display:none}.settings-card .settings-toggle-checkbox+.settings-toggle-switch{display:inline-block;position:relative;width:44px;height:24px;background:#ccc;border-radius:12px;transition:background .2s;flex-shrink:0}.settings-card .settings-toggle-checkbox+.settings-toggle-switch::after{content:\"\";position:absolute;top:3px;left:3px;width:18px;height:18px;background:#fff;border-radius:50%;transition:transform .2s}.settings-card .settings-toggle-checkbox:checked+.settings-toggle-switch{background:#22c55e}.settings-card .settings-toggle-checkbox:checked+.settings-toggle-switch::after{transform:translateX(20px)}.settings-card .settings-fields-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 24px}@media(max-width: 768px){.settings-card .settings-fields-grid{grid-template-columns:1fr}}.settings-card .settings-alert-error{display:flex;align-items:center;gap:10px;background:#fff5f5;color:#c00;border:1px solid #fed7d7;border-radius:8px;padding:12px 16px;margin-bottom:20px;font-size:13px}.settings-card .settings-alert-error i{font-size:16px;flex-shrink:0}.clients-page .clients-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.clients-page .clients-header h2{margin:0;font-size:20px;font-weight:600;color:#2d3748}.clients-page .clients-header h2 i{color:#6690f4;margin-right:8px}.clients-page .clients-table-wrap .table .client-id{color:#8899a6;font-size:13px;font-weight:600}.clients-page .clients-table-wrap .table .client-name{font-weight:600;color:#2d3748}.clients-page .badge-id{display:inline-block;background:#eef2ff;color:#6690f4;font-size:13px;font-weight:600;padding:4px 10px;border-radius:6px;font-family:monospace}.clients-page .actions-cell{text-align:center;white-space:nowrap}.clients-page .btn-icon{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:8px;border:none;cursor:pointer;font-size:14px;transition:all .2s;margin:0 2px}.clients-page .btn-icon.btn-icon-edit{background:#eef2ff;color:#6690f4}.clients-page .btn-icon.btn-icon-edit:hover{background:#6690f4;color:#fff}.clients-page .btn-icon.btn-icon-delete{background:#fff5f5;color:#c00}.clients-page .btn-icon.btn-icon-delete:hover{background:#c00;color:#fff}.clients-page .btn-icon.btn-icon-sync{background:#f0fdf4;color:#16a34a}.clients-page .btn-icon.btn-icon-sync:hover{background:#16a34a;color:#fff}.clients-page .btn-icon.btn-icon-sync:disabled{opacity:.7;cursor:wait}.clients-page .btn-icon.btn-icon-sync.is-queued{background:#fef3c7;color:#d97706}.clients-page .client-sync-bars{display:flex;flex-direction:column;gap:4px}.clients-page .client-sync-row{display:flex;align-items:center;gap:4px}.clients-page .client-sync-label{font-size:11px;font-weight:600;color:#8899a6;width:18px;flex-shrink:0}.clients-page .client-sync-track{flex:1;height:6px;border-radius:999px;background:#e9eef5;overflow:hidden}.clients-page .client-sync-fill{height:100%;border-radius:999px;background:#cbd5e0;transition:width .4s ease}.clients-page .client-sync-fill.is-active{background:linear-gradient(90deg, #5A9BFF 0%, #2E6BDF 100%)}.clients-page .client-sync-fill.is-done{background:#57b951}.clients-page .client-sync-pct{font-size:11px;font-weight:600;color:#8899a6;width:32px;text-align:right;flex-shrink:0}.clients-page .empty-state{text-align:center;padding:50px 20px !important;color:#a0aec0}.clients-page .empty-state i{font-size:40px;margin-bottom:12px;display:block}.clients-page .empty-state p{margin:0;font-size:15px}.btn-secondary{background:#e2e8f0;color:#2d3748;border:none;padding:8px 18px;border-radius:6px;font-size:14px;cursor:pointer;transition:background .2s}.btn-secondary:hover{background:#cbd5e0}.campaigns-page{max-width:100%;overflow-x:hidden;width:100%}.campaigns-page .campaigns-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.campaigns-page .campaigns-header h2{margin:0;font-size:20px;font-weight:600;color:#2d3748}.campaigns-page .campaigns-header h2 i{color:#6690f4;margin-right:8px}.campaigns-page .campaigns-filters{display:flex;flex-wrap:wrap;gap:20px;margin-bottom:20px}.campaigns-page .campaigns-filters .filter-group{flex:1;min-width:0}.campaigns-page .campaigns-filters .filter-group label{display:block;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:#8899a6;margin-bottom:6px}.campaigns-page .campaigns-filters .filter-group label i{margin-right:4px}.campaigns-page .campaigns-filters .filter-group .form-control{width:100%;padding:10px 14px;border:1px solid #e2e8f0;border-radius:8px;font-size:14px;color:#2d3748;background:#fff;transition:border-color .2s;appearance:none;-webkit-appearance:none;background-image:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%238899A6' d='M6 8L1 3h10z'/%3E%3C/svg%3E\");background-repeat:no-repeat;background-position:right 12px center;padding-right:32px}.campaigns-page .campaigns-filters .filter-group .form-control:focus{outline:none;border-color:#6690f4;box-shadow:0 0 0 3px rgba(102,144,244,.1)}.campaigns-page .campaigns-filters .filter-group .filter-with-action{display:flex;align-items:center;gap:8px}.campaigns-page .campaigns-filters .filter-group .filter-with-action .form-control{flex:1}.campaigns-page .campaigns-filters .filter-group .filter-with-action .btn-icon{flex-shrink:0;width:42px;height:42px;display:inline-flex;align-items:center;justify-content:center;border-radius:8px;border:none;cursor:pointer;font-size:14px;transition:all .2s}.campaigns-page .campaigns-filters .filter-group .filter-with-action .btn-icon.btn-icon-delete{background:#fff5f5;color:#c00}.campaigns-page .campaigns-filters .filter-group .filter-with-action .btn-icon.btn-icon-delete:hover{background:#c00;color:#fff}.campaigns-page .campaigns-filters .filter-group-campaign-multi{flex:2 !important}.campaigns-page .campaigns-filters .campaign-dropdown{flex:1;min-width:0;position:relative}.campaigns-page .campaigns-filters .campaign-dropdown-trigger{width:100%;padding:10px 14px;padding-right:32px;border:1px solid #e2e8f0;border-radius:8px;font-size:14px;color:#2d3748;background:#fff;cursor:pointer;display:flex;align-items:center;transition:border-color .2s;position:relative;min-height:42px;box-sizing:border-box}.campaigns-page .campaigns-filters .campaign-dropdown-trigger .campaign-dropdown-text{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.campaigns-page .campaigns-filters .campaign-dropdown-trigger .campaign-dropdown-text.is-placeholder{color:#8899a6}.campaigns-page .campaigns-filters .campaign-dropdown-trigger .campaign-dropdown-arrow{position:absolute;right:12px;font-size:10px;color:#8899a6;transition:transform .2s}.campaigns-page .campaigns-filters .campaign-dropdown.is-open .campaign-dropdown-trigger{border-color:#6690f4;box-shadow:0 0 0 3px rgba(102,144,244,.1)}.campaigns-page .campaigns-filters .campaign-dropdown.is-open .campaign-dropdown-arrow{transform:rotate(180deg)}.campaigns-page .campaigns-filters .campaign-dropdown.is-open .campaign-dropdown-menu{display:block}.campaigns-page .campaigns-filters .campaign-dropdown-menu{display:none;position:absolute;top:calc(100% + 4px);left:0;right:0;z-index:100;max-height:280px;overflow-y:auto;background:#fff;border:1px solid #e2e8f0;border-radius:8px;box-shadow:0 4px 12px rgba(0,0,0,.1);padding:4px 0}.campaigns-page .campaigns-filters .campaign-dropdown-item{display:flex;align-items:center;gap:8px;padding:8px 12px;cursor:pointer;font-size:14px;color:#2d3748;margin:0;transition:background .15s}.campaigns-page .campaigns-filters .campaign-dropdown-item:hover{background:#f8fafc}.campaigns-page .campaigns-filters .campaign-dropdown-item.is-checked{background:#eef2ff}.campaigns-page .campaigns-filters .campaign-dropdown-item input[type=checkbox]{width:16px;height:16px;cursor:pointer;flex-shrink:0;accent-color:#6690f4}.campaigns-page .campaigns-filters .campaign-dropdown-item span{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.campaigns-page .campaigns-list-panel{background:#fff;border-radius:10px;box-shadow:0 1px 4px rgba(0,0,0,.06);margin-bottom:20px;overflow:hidden}.campaigns-page .campaigns-list-panel .campaigns-list-toolbar{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid #e2e8f0;gap:12px}.campaigns-page .campaigns-list-panel .campaigns-list-toolbar-left{display:flex;align-items:center;gap:8px;font-size:13px;color:#4e5e6a}.campaigns-page .campaigns-list-panel .campaigns-list-toolbar-left input[type=checkbox]{width:16px;height:16px;cursor:pointer}.campaigns-page .campaigns-list-panel .campaigns-list-toolbar-left label{cursor:pointer;user-select:none;margin:0}.campaigns-page .campaigns-list-panel .campaigns-list-toolbar-left .campaigns-selected-count{margin-left:12px;color:#8899a6}.campaigns-page .campaigns-list-panel .campaigns-list-toolbar-right .campaigns-bulk-delete-btn{display:inline-flex;align-items:center;gap:6px;padding:8px 16px;border:none;border-radius:8px;font-size:13px;font-weight:600;cursor:pointer;background:#fff5f5;color:#c00;transition:all .2s}.campaigns-page .campaigns-list-panel .campaigns-list-toolbar-right .campaigns-bulk-delete-btn:hover:not(:disabled){background:#c00;color:#fff}.campaigns-page .campaigns-list-panel .campaigns-list-toolbar-right .campaigns-bulk-delete-btn:disabled{opacity:.4;cursor:not-allowed}.campaigns-page .campaigns-list-panel .campaigns-list-items{display:flex;flex-wrap:wrap;gap:0;padding:8px 8px;max-height:220px;overflow-y:auto}.campaigns-page .campaigns-list-panel .campaigns-list-items .campaigns-list-item{display:flex;align-items:center;gap:8px;padding:6px 12px;margin:2px;border-radius:6px;font-size:13px;color:#2d3748;cursor:pointer;user-select:none;transition:background .15s}.campaigns-page .campaigns-list-panel .campaigns-list-items .campaigns-list-item:hover{background:#f0f4ff}.campaigns-page .campaigns-list-panel .campaigns-list-items .campaigns-list-item input[type=checkbox]{width:15px;height:15px;cursor:pointer;flex-shrink:0}.campaigns-page .campaigns-list-panel .campaigns-list-items .campaigns-list-item .campaigns-list-item-name{white-space:nowrap}.campaigns-page .campaigns-chart-wrap{background:#fff;border-radius:10px;box-shadow:0 1px 4px rgba(0,0,0,.06);padding:20px;margin-bottom:20px;min-height:350px;overflow:hidden}.campaigns-page .campaigns-chart-wrap #container{max-width:100%}.campaigns-page .campaigns-table-wrap .table{width:100%}.campaigns-page .delete-history-entry{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:6px;border:none;cursor:pointer;font-size:12px;background:#fff5f5;color:#c00;transition:all .2s}.campaigns-page .delete-history-entry:hover{background:#c00;color:#fff}.products-page .products-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.products-page .products-header h2{margin:0;font-size:20px;font-weight:600;color:#2d3748}.products-page .products-header h2 i{color:#6690f4;margin-right:8px}.products-page .products-filters{display:flex;flex-wrap:wrap;align-items:flex-end;gap:20px;margin-bottom:16px}.products-page .products-filters .filter-group{flex:1 1 220px;min-width:0}.products-page .products-filters .filter-group label{display:block;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:#8899a6;margin-bottom:6px}.products-page .products-filters .filter-group label i{margin-right:4px}.products-page .products-filters .filter-group .form-control{width:100%;padding:10px 14px;border:1px solid #e2e8f0;border-radius:8px;font-size:14px;color:#2d3748;background:#fff;transition:border-color .2s}.products-page .products-filters .filter-group .form-control:focus{outline:none;border-color:#6690f4;box-shadow:0 0 0 3px rgba(102,144,244,.1)}.products-page .products-filters .filter-group select.form-control{appearance:none;-webkit-appearance:none;background-image:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%238899A6' d='M6 8L1 3h10z'/%3E%3C/svg%3E\");background-repeat:no-repeat;background-position:right 12px center;padding-right:32px}.products-page .products-filters .filter-group.filter-group-client,.products-page .products-filters .filter-group.filter-group-campaign,.products-page .products-filters .filter-group.filter-group-ad-group{flex:1 1 260px}.products-page .products-filters .filter-group.filter-group-ad-group .ad-group-filter-actions{display:flex;gap:8px;align-items:center}.products-page .products-filters .filter-group.filter-group-ad-group .ad-group-filter-actions .form-control{flex:1 1 auto;min-width:0}.products-page .products-filters .filter-group.filter-group-ad-group #delete-products-ad-group{min-width:38px;height:38px;border-radius:6px;margin:0;background:#dc3545;border:1px solid #dc3545;color:#fff;cursor:pointer}.products-page .products-filters .filter-group.filter-group-ad-group #delete-products-ad-group:hover:not(:disabled){background:#bb2d3b;border-color:#bb2d3b;color:#fff}.products-page .products-filters .filter-group.filter-group-ad-group #delete-products-ad-group:disabled{opacity:.45;cursor:default;background:#dc3545;border-color:#dc3545;color:#fff}.products-page .products-filters .filter-group.filter-group-roas{flex:0 0 200px}.products-page .products-filters .filter-group.filter-group-columns{flex:0 0 240px}.products-page .products-scope-alerts{margin-bottom:12px;border:1px solid #fecaca;background:#fef2f2;border-radius:8px;overflow:hidden}.products-page .products-scope-alerts summary{cursor:pointer;list-style:none;padding:10px 12px;font-size:13px;font-weight:600;color:#991b1b;display:flex;align-items:center;gap:8px}.products-page .products-scope-alerts summary::-webkit-details-marker{display:none}.products-page .products-scope-alerts .products-scope-alerts-list{border-top:1px solid #fecaca;background:#fff;max-height:260px;overflow:auto}.products-page .products-scope-alerts .products-scope-alert-item{padding:10px 12px;border-bottom:1px solid #f1f5f9}.products-page .products-scope-alerts .products-scope-alert-item:last-child{border-bottom:none}.products-page .products-scope-alerts .products-scope-alert-meta{display:flex;align-items:center;gap:8px;margin-bottom:4px;font-size:11px;color:#64748b}.products-page .products-scope-alerts .products-scope-alert-type{display:inline-flex;align-items:center;padding:2px 6px;border-radius:999px;background:#eef2ff;color:#4338ca;font-weight:600;text-transform:uppercase;letter-spacing:.3px}.products-page .products-scope-alerts .products-scope-alert-message{font-size:13px;color:#2d3748;line-height:1.45}.products-page .products-actions{margin-bottom:12px}.products-page .products-actions .btn-danger{padding:7px 14px;font-size:13px;border-radius:6px;border:none;cursor:pointer;transition:all .2s}.products-page .products-actions .btn-danger:disabled{opacity:.4;cursor:default}.products-page .products-table-wrap .table{width:100%}.products-page .products-table-wrap .table input.min_roas,.products-page .products-table-wrap .table input.form-control-sm,.products-page .products-table-wrap .table select.custom_label_4,.products-page .products-table-wrap .table select.form-control-sm{padding:3px 6px;font-size:12px;border:1px solid #e2e8f0;border-radius:4px;background:#fff}.products-page .delete-product{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:6px;border:none;cursor:pointer;font-size:12px;background:#fff5f5;color:#c00;transition:all .2s}.products-page .delete-product:hover{background:#c00;color:#fff}.products-page .edit-product-title{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:6px;border:none;cursor:pointer;font-size:12px;background:#eef2ff;color:#6690f4;transition:all .2s}.products-page .edit-product-title:hover{background:#6690f4;color:#fff}.desc-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:4px}.desc-header label{margin:0}.desc-tabs{display:flex;gap:2px;background:#eee;border-radius:6px;padding:2px}.desc-tab{border:none;background:rgba(0,0,0,0);padding:4px 12px;font-size:12px;border-radius:4px;cursor:pointer;color:#666;transition:all .15s ease}.desc-tab i{margin-right:4px}.desc-tab.active{background:#fff;color:#333;box-shadow:0 1px 3px rgba(0,0,0,.12);font-weight:500}.desc-tab:hover:not(.active){color:#333}.desc-wrap{flex:1;min-width:0}.desc-preview ul,.desc-preview ol{margin:6px 0;padding-left:20px}.desc-preview li{margin-bottom:3px}.desc-preview b,.desc-preview strong{font-weight:600}.input-with-ai{display:flex;gap:8px;align-items:flex-start}.input-with-ai .form-control{flex:1}.btn-ai-suggest{display:inline-flex;align-items:center;gap:4px;padding:6px 12px;border-radius:8px;border:1px solid #c084fc;background:linear-gradient(135deg, #F3E8FF, #EDE9FE);color:#7c3aed;font-size:12px;font-weight:600;cursor:pointer;transition:all .2s;white-space:nowrap;min-height:38px}.btn-ai-suggest i{font-size:13px}.btn-ai-suggest:hover{background:linear-gradient(135deg, #7C3AED, #6D28D9);color:#fff;border-color:#6d28d9}.btn-ai-suggest:disabled{opacity:.7;cursor:wait}.btn-ai-suggest.btn-ai-claude{border-color:#d97706;background:linear-gradient(135deg, #FEF3C7, #FDE68A);color:#92400e}.btn-ai-suggest.btn-ai-claude:hover{background:linear-gradient(135deg, #D97706, #B45309);color:#fff;border-color:#b45309}.btn-ai-suggest.btn-ai-gemini{border-color:#4285f4;background:linear-gradient(135deg, #E8F0FE, #D2E3FC);color:#1a73e8}.btn-ai-suggest.btn-ai-gemini:hover{background:linear-gradient(135deg, #4285F4, #1A73E8);color:#fff;border-color:#1a73e8}.form_container{background:#fff;padding:25px;max-width:1300px;border-radius:8px;box-shadow:0 1px 3px rgba(0,0,0,.06)}.form_container.full{max-width:100%}.form_container .form_group{margin-bottom:12px;display:flex}.form_container .form_group>.label{width:300px;display:inline-flex;align-items:flex-start;justify-content:right;padding-right:12px}.form_container .form_group .input{width:calc(100% - 300px)}.default_popup{position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,.45);display:none;z-index:2000}.default_popup .popup_content{position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);background:#fff;padding:25px;border-radius:10px;max-width:1140px;width:95%;box-shadow:0 20px 60px rgba(0,0,0,.15)}.default_popup .popup_content .popup_header{display:flex;justify-content:space-between;align-items:center;margin-bottom:15px}.default_popup .popup_content .popup_header .title{font-size:18px;font-weight:600}.default_popup .popup_content .close{cursor:pointer;color:#a0aec0;font-size:18px;padding:4px}.default_popup .popup_content .close:hover{color:#c00}.dt-layout-table{margin-bottom:20px}.pagination button{border:1px solid #e2e8f0;background:#fff;display:inline-flex;height:32px;width:32px;align-items:center;justify-content:center;margin:0 2px;border-radius:4px;transition:all .2s;cursor:pointer}.pagination button:hover{background:#f4f6f9;border-color:#6690f4}table#products a{color:inherit;text-decoration:none}table#products .table-product-title{display:flex;justify-content:space-between}table#products .edit-product-title{display:flex;height:25px;align-items:center;justify-content:center;width:25px;cursor:pointer;background:#fff;border:1px solid #cbd5e0;color:#cbd5e0;border-radius:4px}table#products .edit-product-title:hover{background:#cbd5e0;color:#fff}table#products a.custom_name{color:#57b951 !important}.product-history-page .product-history-meta{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:14px}.product-history-page .product-history-meta span{display:inline-flex;align-items:center;padding:5px 10px;border-radius:999px;font-size:12px;font-weight:600;color:#4e5e6a;background:#eef2ff;border:1px solid #d9e2ff}.product-history-page .product-history-chart-wrap{background:#fff;border-radius:10px;box-shadow:0 1px 4px rgba(0,0,0,.06);padding:20px;margin-bottom:16px}.product-history-page .chart-with-form{display:flex;gap:20px;align-items:flex-start}.product-history-page .chart-area{flex:1 1 auto;min-width:0}.product-history-page .product-history-chart{min-height:360px}.product-history-page .comment-form{width:340px;flex:0 0 340px;background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;padding:14px}.product-history-page .comment-form .form-group{margin-bottom:12px}.product-history-page .comment-form label{display:block;font-weight:600;margin-bottom:6px;font-size:13px;color:#52606d}.product-history-page .comment-form input[type=date],.product-history-page .comment-form textarea{width:100%;border:1px solid #e2e8f0;border-radius:6px;padding:8px 12px;font-size:14px;font-family:\"Roboto\",sans-serif;background:#fff}.product-history-page .comment-form input[type=date]:focus,.product-history-page .comment-form textarea:focus{outline:none;border-color:#6690f4;box-shadow:0 0 0 3px rgba(102,144,244,.1)}.product-history-page .comment-form textarea{min-height:110px;resize:vertical}.product-history-page .comment-form .btn{width:100%;justify-content:center;padding:10px 16px}.product-history-page .comment-form .btn[disabled]{opacity:.6;cursor:not-allowed}.product-history-page .products-table-wrap{overflow-x:auto}.product-history-page .products-table-wrap .table{min-width:980px}.product-history-page .products-table-wrap .comment-cell{display:flex;align-items:center;justify-content:space-between;gap:10px}.product-history-page .products-table-wrap .comment-text{word-break:break-word}.product-history-page .products-table-wrap .delete-comment{color:#c00;text-decoration:none;font-weight:600;white-space:nowrap}.product-history-page .products-table-wrap .delete-comment:hover{text-decoration:underline}.product-history-page .products-table-wrap .dt-paging .pagination .page-item{list-style:none}.cron-status-overview{display:flex;flex-wrap:wrap;gap:10px 20px;margin-bottom:20px;color:#4e5e6a;font-size:13px}.cron-progress-list{margin-bottom:20px}.cron-schedule-list{margin-bottom:20px}.cron-schedule-item{border:1px solid #dfe7f0;background:#f4f8fd;border-radius:8px;padding:9px 12px;margin-bottom:8px}.cron-schedule-item:last-child{margin-bottom:0}.cron-schedule-item strong{display:block;color:#2d3748;font-size:13px;font-weight:700;margin-bottom:2px}.cron-schedule-item small{display:block;color:#678;font-size:12px;line-height:1.35}.cron-progress-item{margin-bottom:14px}.cron-progress-item:last-child{margin-bottom:0}.cron-progress-item .cron-progress-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:6px;font-size:13px}.cron-progress-item .cron-progress-head strong{color:#2d3748;font-weight:600}.cron-progress-item .cron-progress-head span{color:#6b7a89;font-size:12px;font-weight:600;white-space:nowrap}.cron-progress-item small{display:block;margin-top:5px;color:#789;font-size:12px}.cron-progress-bar{width:100%;height:10px;border-radius:999px;background:#e9eef5;overflow:hidden}.cron-progress-bar>span{display:block;height:100%;background:linear-gradient(90deg, #5A9BFF 0%, #2E6BDF 100%)}.cron-url-list{margin-bottom:20px}.cron-url-item{border:1px solid #e2e8f0;border-radius:8px;background:#f8fafc;padding:10px 12px;margin-bottom:10px}.cron-url-item:last-child{margin-bottom:0}.cron-url-item .cron-url-top{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:6px}.cron-url-item .cron-url-top strong{color:#2d3748;font-size:13px;font-weight:600}.cron-url-item .cron-url-top small{color:#7a8794;font-size:11px;white-space:nowrap}.cron-url-item code{display:block;background:#eef2f7;border:1px solid #dde4ed;border-radius:6px;padding:6px 8px;color:#2e3b49;font-size:12px;overflow-x:auto}.cron-url-item .cron-url-plan{display:block;color:#6c7b8a;font-size:11px;margin-bottom:6px}@media(max-width: 1200px){.product-history-page .chart-with-form{flex-direction:column}.product-history-page .comment-form{width:100%;flex:1 1 auto}}.jconfirm-box .form-group .select2-container,.adspro-dialog-box .form-group .select2-container{width:100% !important;margin-top:8px}.jconfirm-box .select2-container--default .select2-selection--single,.adspro-dialog-box .select2-container--default .select2-selection--single{background-color:#fff;border:1px solid #e2e8f0;border-radius:6px;min-height:42px;display:flex;align-items:center;padding:4px 12px;box-shadow:none;transition:border-color .2s,box-shadow .2s;font-size:14px}.jconfirm-box .select2-container--default .select2-selection--single .select2-selection__rendered,.adspro-dialog-box .select2-container--default .select2-selection--single .select2-selection__rendered{padding-left:0;line-height:1.4;color:#495057}.jconfirm-box .select2-container--default .select2-selection--single .select2-selection__placeholder,.adspro-dialog-box .select2-container--default .select2-selection--single .select2-selection__placeholder{color:#cbd5e0}.jconfirm-box .select2-container--default .select2-selection--single .select2-selection__arrow,.adspro-dialog-box .select2-container--default .select2-selection--single .select2-selection__arrow{height:100%;right:8px}.jconfirm-box .select2-container--default.select2-container--focus .select2-selection--single,.jconfirm-box .select2-container--default .select2-selection--single:hover,.adspro-dialog-box .select2-container--default.select2-container--focus .select2-selection--single,.adspro-dialog-box .select2-container--default .select2-selection--single:hover{border-color:#6690f4;box-shadow:0 0 0 3px rgba(102,144,244,.1);outline:0}.jconfirm-box .select2-container .select2-dropdown,.adspro-dialog-box .select2-container .select2-dropdown{border-color:#e2e8f0;border-radius:0 0 6px 6px;font-size:14px}.jconfirm-box .select2-container .select2-search--dropdown .select2-search__field,.adspro-dialog-box .select2-container .select2-search--dropdown .select2-search__field{padding:6px 10px;border-radius:4px;border:1px solid #e2e8f0;font-size:14px}.jconfirm-box .select2-container--default .select2-results__option--highlighted[aria-selected],.adspro-dialog-box .select2-container--default .select2-results__option--highlighted[aria-selected]{background-color:#6690f4;color:#fff}@media(max-width: 992px){.sidebar{transform:translateX(-100%)}.sidebar.mobile-open{transform:translateX(0)}.main-wrapper{margin-left:0 !important}}.campaign-terms-wrap{display:flex;flex-direction:column;gap:20px;margin-top:20px}.campaign-terms-page{max-width:100%;overflow:hidden}.campaign-terms-page .campaigns-filters{flex-wrap:wrap}.campaign-terms-page .campaigns-filters .filter-group{min-width:220px}.campaign-terms-page .campaigns-filters .filter-group.terms-columns-group{min-width:280px}.campaign-terms-page .terms-card-toggle{margin-left:auto;width:28px;height:28px;border:1px solid #e2e8f0;border-radius:6px;background:#fff;color:#475569;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s}.campaign-terms-page .terms-card-toggle:hover{background:#f8fafc;border-color:#cbd5e1}.campaign-terms-page .terms-adgroups-card.is-collapsed .campaigns-extra-table-wrap{display:none}.campaign-terms-page .terms-search-toolbar{display:flex;align-items:center;gap:10px;padding:10px 12px;border-bottom:1px solid #eef2f7;background:#fff}.campaign-terms-page .terms-search-toolbar label{font-size:12px;font-weight:600;color:#475569;display:inline-flex;align-items:center;gap:6px;margin:0;white-space:nowrap}.campaign-terms-page .terms-search-toolbar .terms-search-toolbar-label{min-width:86px}.campaign-terms-page .terms-search-toolbar #terms_min_clicks_all,.campaign-terms-page .terms-search-toolbar #terms_max_clicks_all{width:160px;height:32px}.campaign-terms-page .terms-search-toolbar #terms_min_conversions_all,.campaign-terms-page .terms-search-toolbar #terms_max_conversions_all{width:130px;max-width:130px}.campaign-terms-page .terms-search-selected-label{margin:0;font-size:12px;color:#475569;font-weight:600;white-space:nowrap}.campaign-terms-page .terms-ai-analyze-btn{margin-left:auto;display:inline-flex;align-items:center;gap:6px;height:32px;padding:0 12px;border-radius:6px;border:1px solid #bfdbfe;background:#eff6ff;color:#1d4ed8;font-size:12px;font-weight:600;cursor:pointer;transition:all .2s}.campaign-terms-page .terms-ai-analyze-btn:hover{background:#dbeafe;border-color:#93c5fd}.campaign-terms-page .terms-ai-analyze-btn:disabled{opacity:.6;cursor:wait}.campaign-terms-page .terms-negative-toolbar{display:flex;align-items:center;gap:10px;padding:10px 12px;border-bottom:1px solid #eef2f7;background:#fff}.campaign-terms-page .terms-negative-bulk-btn{display:inline-flex;align-items:center;gap:6px;height:32px;padding:0 12px;border-radius:6px;border:1px solid #fecaca;background:#fef2f2;color:#dc2626;font-size:12px;font-weight:600;cursor:pointer;transition:all .2s}.campaign-terms-page .terms-negative-bulk-btn:hover{background:#fee2e2;border-color:#fca5a5}.campaign-terms-page .terms-negative-bulk-btn:disabled{opacity:.5;cursor:not-allowed}.campaign-terms-page table.campaigns-extra-table>thead>tr>th{position:sticky;top:0;z-index:2;background-color:#111827 !important;color:#e5e7eb !important;border-bottom:1px solid #0b1220 !important;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.4px;padding:10px 12px;white-space:nowrap}.campaign-terms-page #terms_search_table thead th .dt-column-order,.campaign-terms-page #terms_negative_table thead th .dt-column-order{display:none !important}.campaign-terms-page #terms_search_table thead th.dt-orderable-asc,.campaign-terms-page #terms_search_table thead th.dt-orderable-desc,.campaign-terms-page #terms_negative_table thead th.dt-orderable-asc,.campaign-terms-page #terms_negative_table thead th.dt-orderable-desc{cursor:pointer;padding-right:34px;overflow:hidden}.campaign-terms-page #terms_search_table thead th .dt-column-title,.campaign-terms-page #terms_negative_table thead th .dt-column-title{display:block;overflow:hidden;text-overflow:ellipsis;padding-right:2px}.campaign-terms-page #terms_search_table thead th.dt-orderable-asc::after,.campaign-terms-page #terms_search_table thead th.dt-orderable-desc::after,.campaign-terms-page #terms_negative_table thead th.dt-orderable-asc::after,.campaign-terms-page #terms_negative_table thead th.dt-orderable-desc::after{content:\"↕\";position:absolute;right:10px;top:50%;transform:translateY(-50%);width:16px;height:16px;border-radius:999px;font-size:12px;font-weight:700;line-height:16px;text-align:center;color:#e5e7eb;background:#374151}.campaign-terms-page #terms_search_table thead th.dt-ordering-asc::after,.campaign-terms-page #terms_negative_table thead th.dt-ordering-asc::after,.campaign-terms-page #terms_search_table thead th[aria-sort=ascending]::after,.campaign-terms-page #terms_negative_table thead th[aria-sort=ascending]::after{content:\"▲\";color:#fff;background:#2563eb}.campaign-terms-page #terms_search_table thead th.dt-ordering-desc::after,.campaign-terms-page #terms_negative_table thead th.dt-ordering-desc::after,.campaign-terms-page #terms_search_table thead th[aria-sort=descending]::after,.campaign-terms-page #terms_negative_table thead th[aria-sort=descending]::after{content:\"▼\";color:#fff;background:#2563eb}.campaign-terms-page #terms_negative_select_all,.campaign-terms-page .terms-negative-select-row,.campaign-terms-page #terms_search_select_all,.campaign-terms-page .terms-search-select-row{width:14px;height:14px;cursor:pointer}.campaign-terms-page .dt-layout-row:first-child{display:none}.campaign-terms-page .dt-layout-row{padding:10px 12px;margin:0 !important;border-top:1px solid #f1f5f9}.campaign-terms-page .dt-info{font-size:12px;color:#64748b}.campaign-terms-page .dt-paging .pagination{margin:0;padding:0;list-style:none !important;display:flex;align-items:center;gap:6px}.campaign-terms-page .dt-paging .pagination .page-item{list-style:none !important}.campaign-terms-page .dt-paging .pagination .page-item .page-link{display:inline-flex;align-items:center;justify-content:center;min-width:36px;width:fit-content;height:32px;padding:0 12px;border-radius:6px;font-size:12px;font-weight:500;border:1px solid #e2e8f0;background:#fff;color:#4e5e6a;text-decoration:none;line-height:1;white-space:nowrap}.campaign-terms-page .dt-paging .pagination .page-item .page-link:hover{background:#eef2ff;color:#6690f4;border-color:#6690f4}.campaign-terms-page .dt-paging .pagination .page-item.previous .page-link,.campaign-terms-page .dt-paging .pagination .page-item.next .page-link{min-width:72px}.campaign-terms-page .dt-paging .pagination .page-item.active .page-link{background:#6690f4;color:#fff;border-color:#6690f4}.campaign-terms-page .dt-paging .pagination .page-item.disabled .page-link{opacity:.35;cursor:default;pointer-events:none}.terms-columns-box{display:flex;flex-direction:column;gap:6px}.terms-columns-control{border:1px solid #e2e8f0;border-radius:6px;background:#fff;overflow:hidden}.terms-columns-control summary{cursor:pointer;padding:8px 10px;font-size:12px;font-weight:600;color:#334155;list-style:none}.terms-columns-control summary::-webkit-details-marker{display:none}.terms-columns-control summary::after{content:\"▼\";float:right;font-size:10px;color:#64748b;margin-top:2px}.terms-columns-control[open] summary::after{content:\"▲\"}.terms-columns-list{border-top:1px solid #eef2f7;padding:8px 10px;max-height:180px;overflow-y:auto}.terms-columns-list .terms-col-item{display:flex;align-items:center;gap:8px;font-size:12px;color:#334155;margin-bottom:6px}.terms-columns-list .terms-col-item:last-child{margin-bottom:0}.terms-columns-list .terms-col-item input[type=checkbox]{margin:0}.campaigns-extra-card{background:#fff;border-radius:10px;box-shadow:0 1px 4px rgba(0,0,0,.06);overflow:hidden}.campaigns-extra-card-title{padding:14px 16px;border-bottom:1px solid #e2e8f0;font-size:13px;font-weight:700;color:#334155;display:flex;align-items:center;gap:8px}.campaigns-extra-card-title .terms-card-title-label{display:inline-flex;align-items:center;gap:8px}.campaigns-extra-table-wrap{overflow:auto}.campaigns-extra-table{margin:0;width:100%;table-layout:fixed}.campaigns-extra-table tbody td{padding:9px 12px;border-bottom:1px solid #f1f5f9;font-size:13px;color:#334155;vertical-align:middle;white-space:nowrap}.campaigns-extra-table td.num-cell{text-align:right;white-space:nowrap}.campaigns-extra-table td.text-cell{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.campaigns-extra-table th.terms-negative-select-cell,.campaigns-extra-table td.terms-negative-select-cell,.campaigns-extra-table th.terms-search-select-cell,.campaigns-extra-table td.terms-search-select-cell{text-align:center}.campaigns-extra-table th.phrase-nowrap,.campaigns-extra-table td.phrase-nowrap{white-space:nowrap !important;overflow:hidden;text-overflow:ellipsis}.campaigns-extra-table .terms-add-negative-btn,.campaigns-extra-table .terms-remove-negative-btn{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:6px;cursor:pointer;transition:all .2s}.campaigns-extra-table .terms-add-negative-btn{border:1px solid #e2e8f0;background:#eef2ff;color:#3b82f6}.campaigns-extra-table .terms-add-negative-btn:hover{background:#3b82f6;color:#fff;border-color:#3b82f6}.campaigns-extra-table .terms-remove-negative-btn{border:1px solid #fecaca;background:#fef2f2;color:#dc2626}.campaigns-extra-table .terms-remove-negative-btn:hover{background:#dc2626;color:#fff;border-color:#dc2626}.campaigns-extra-table tbody tr:hover{background:#f8fafc}.campaigns-extra-table tbody tr.term-is-negative td{color:#dc2626}.campaigns-extra-table tbody tr.term-is-negative:hover{background:#fef2f2}.campaigns-empty-row{text-align:center;color:#94a3b8 !important;font-style:italic}.terms-ai-modal-toolbar{display:flex;align-items:center;gap:10px;margin-bottom:10px}.terms-ai-modal-toolbar label{font-size:12px;font-weight:600;color:#334155;margin:0}.terms-ai-modal-toolbar .form-control{width:200px;height:32px}.terms-ai-summary{font-size:12px;color:#64748b;margin-bottom:10px}.terms-ai-results-wrap{border:1px solid #e2e8f0;border-radius:8px;max-height:420px;overflow:auto}.terms-ai-results-table{width:100%;border-collapse:collapse;font-size:12px}.terms-ai-results-table th,.terms-ai-results-table td{border-bottom:1px solid #eef2f7;padding:8px;vertical-align:middle}.terms-ai-results-table th{position:sticky;top:0;background:#f8fafc;color:#334155;font-weight:700}.terms-ai-results-table td.term-col{min-width:260px;max-width:380px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.terms-ai-results-table td.reason-col{min-width:320px}.terms-ai-action-badge{display:inline-flex;align-items:center;justify-content:center;border-radius:999px;padding:2px 8px;font-size:11px;font-weight:700}.terms-ai-action-badge.action-exclude{background:#fee2e2;color:#b91c1c}.terms-ai-action-badge.action-keep{background:#dcfce7;color:#166534}.products-page .products-filters .filter-group.filter-group-columns{min-width:240px}.products-columns-control{border:1px solid #e2e8f0;border-radius:6px;background:#fff;overflow:hidden}.products-columns-control summary{cursor:pointer;padding:8px 10px;font-size:12px;font-weight:600;color:#334155;list-style:none}.products-columns-control summary::-webkit-details-marker{display:none}.products-columns-control summary::after{content:\"▼\";float:right;font-size:10px;color:#64748b;margin-top:2px}.products-columns-control[open] summary::after{content:\"▲\"}.products-columns-list{border-top:1px solid #eef2f7;padding:8px 10px;max-height:220px;overflow-y:auto}.products-columns-list .products-col-item{display:flex;align-items:center;gap:8px;font-size:12px;color:#334155;margin-bottom:6px}.products-columns-list .products-col-item:last-child{margin-bottom:0}.products-columns-list .products-col-item input[type=checkbox]{margin:0}#products th:last-child,#products td:last-child{white-space:nowrap}#products .products-row-actions{display:inline-flex;align-items:center;gap:4px}#products .products-row-actions .btn{width:38px;height:32px;padding:0;display:inline-flex;align-items:center;justify-content:center;border-radius:4px !important}#products .products-row-actions .btn i{line-height:1}.logs-page .logs-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.logs-page .logs-header h2{margin:0;font-size:20px;font-weight:600;color:#2d3748}.logs-page .logs-filters{display:flex;flex-wrap:wrap;align-items:flex-end;gap:14px;margin-bottom:16px}.logs-page .logs-filters .filter-group{flex:1 1 160px;min-width:0;max-width:220px}.logs-page .logs-filters .filter-group label{display:block;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:#8899a6;margin-bottom:6px}.logs-page .logs-filters .filter-group .form-control{width:100%;padding:8px 12px;border:1px solid #e2e8f0;border-radius:8px;font-size:14px;color:#2d3748;background:#fff;transition:border-color .2s}.logs-page .logs-filters .filter-group .form-control:focus{outline:none;border-color:#6690f4;box-shadow:0 0 0 3px rgba(102,144,244,.1)}.logs-page .logs-filters .filter-group select.form-control{appearance:none;-webkit-appearance:none;background-image:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%238899A6' d='M6 8L1 3h10z'/%3E%3C/svg%3E\");background-repeat:no-repeat;background-position:right 12px center;padding-right:32px}.logs-page .logs-filters .filter-group.filter-group-buttons{flex:0 0 auto;display:flex;gap:6px;max-width:none}.logs-page .logs-table-wrap .table{width:100%}.logs-page .badge{display:inline-block;padding:3px 8px;border-radius:4px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.3px}.logs-page .badge-success{background:#d1fae5;color:#065f46}.logs-page .badge-danger{background:#fee2e2;color:#991b1b}.logs-page .badge-warning{background:#fef3c7;color:#92400e}.js-title-alt-apply{color:#000;justify-content:flex-start}","@use \"sass:color\";\r\n// === adsPRO - Nowe style ===\r\n\r\n// --- Zmienne ---\r\n$cPrimary: #6690F4;\r\n$cPrimaryDark: #3164db;\r\n$cSidebarBg: #1E2A3A;\r\n$cSidebarText: #A8B7C7;\r\n$cSidebarHover: #263548;\r\n$cSidebarActive: $cPrimary;\r\n$cContentBg: #F4F6F9;\r\n$cWhite: #FFFFFF;\r\n$cText: #4E5E6A;\r\n$cTextDark: #2D3748;\r\n$cBorder: #E2E8F0;\r\n$cSuccess: #57B951;\r\n$cSuccessDark: #4a9c3b;\r\n$cDanger: #CC0000;\r\n$cDangerDark: #b30000;\r\n$cWarning: #FF8C00;\r\n$cGreenLight: #57b951;\r\n\r\n$sidebarWidth: 260px;\r\n$sidebarCollapsed: 70px;\r\n$topbarHeight: 56px;\r\n$transitionSpeed: 0.3s;\r\n\r\n// --- Reset i baza ---\r\n* {\r\n box-sizing: border-box;\r\n}\r\n\r\nbody {\r\n font-family: \"Roboto\", sans-serif;\r\n margin: 0;\r\n padding: 0;\r\n font-size: 14px;\r\n color: $cText;\r\n background: $cContentBg;\r\n max-width: 100vw;\r\n overflow-x: hidden;\r\n}\r\n\r\n.hide {\r\n display: none;\r\n}\r\n\r\n// --- Typografia ---\r\nsmall {\r\n font-size: .75em;\r\n}\r\n\r\n.text-right {\r\n text-align: right;\r\n}\r\n\r\n.text-bold {\r\n font-weight: 700 !important;\r\n}\r\n\r\n.nowrap {\r\n white-space: nowrap;\r\n}\r\n\r\n// ===========================\r\n// LOGIN PAGE (unlogged)\r\n// ===========================\r\nbody.unlogged {\r\n background: $cContentBg;\r\n margin: 0;\r\n padding: 0;\r\n}\r\n\r\n.login-container {\r\n display: flex;\r\n min-height: 100vh;\r\n}\r\n\r\n.login-brand {\r\n flex: 0 0 45%;\r\n background: linear-gradient(135deg, $cSidebarBg 0%, #2C3E57 50%, $cPrimary 100%);\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n padding: 60px;\r\n position: relative;\r\n overflow: hidden;\r\n\r\n &::before {\r\n content: '';\r\n position: absolute;\r\n top: -50%;\r\n right: -50%;\r\n width: 100%;\r\n height: 100%;\r\n background: radial-gradient(circle, rgba($cPrimary, 0.15) 0%, transparent 70%);\r\n border-radius: 50%;\r\n }\r\n\r\n .brand-content {\r\n position: relative;\r\n z-index: 1;\r\n color: $cWhite;\r\n max-width: 400px;\r\n }\r\n\r\n .brand-logo {\r\n font-size: 48px;\r\n font-weight: 300;\r\n margin-bottom: 20px;\r\n letter-spacing: -1px;\r\n\r\n strong {\r\n font-weight: 700;\r\n }\r\n }\r\n\r\n .brand-tagline {\r\n font-size: 18px;\r\n opacity: 0.85;\r\n line-height: 1.6;\r\n margin-bottom: 50px;\r\n }\r\n\r\n .brand-features {\r\n .feature {\r\n display: flex;\r\n align-items: center;\r\n gap: 15px;\r\n margin-bottom: 20px;\r\n opacity: 0.8;\r\n\r\n i {\r\n font-size: 20px;\r\n width: 40px;\r\n height: 40px;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n background: rgba($cWhite, 0.1);\r\n border-radius: 10px;\r\n }\r\n\r\n span {\r\n font-size: 15px;\r\n }\r\n }\r\n }\r\n}\r\n\r\n.login-form-wrapper {\r\n flex: 1;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n padding: 60px;\r\n background: $cWhite;\r\n}\r\n\r\n.login-box {\r\n width: 100%;\r\n max-width: 420px;\r\n\r\n .login-header {\r\n margin-bottom: 35px;\r\n\r\n h1 {\r\n font-size: 28px;\r\n font-weight: 700;\r\n color: $cTextDark;\r\n margin: 0 0 8px;\r\n }\r\n\r\n p {\r\n color: #718096;\r\n font-size: 15px;\r\n margin: 0;\r\n }\r\n }\r\n\r\n .form-group {\r\n margin-bottom: 20px;\r\n\r\n label {\r\n display: block;\r\n font-size: 13px;\r\n font-weight: 600;\r\n color: $cTextDark;\r\n margin-bottom: 6px;\r\n }\r\n }\r\n\r\n .input-with-icon {\r\n position: relative;\r\n\r\n i {\r\n position: absolute;\r\n left: 14px;\r\n top: 50%;\r\n transform: translateY(-50%);\r\n color: #A0AEC0;\r\n font-size: 14px;\r\n }\r\n\r\n .form-control {\r\n padding-left: 42px;\r\n }\r\n }\r\n\r\n .form-control {\r\n width: 100%;\r\n height: 46px;\r\n border: 2px solid $cBorder;\r\n border-radius: 8px;\r\n padding: 0 14px;\r\n font-size: 14px;\r\n font-family: \"Roboto\", sans-serif;\r\n color: $cTextDark;\r\n transition: border-color $transitionSpeed, box-shadow $transitionSpeed;\r\n\r\n &::placeholder {\r\n color: #CBD5E0;\r\n }\r\n\r\n &:focus {\r\n border-color: $cPrimary;\r\n box-shadow: 0 0 0 3px rgba($cPrimary, 0.15);\r\n outline: none;\r\n }\r\n }\r\n\r\n .form-error {\r\n color: $cDanger;\r\n font-size: 12px;\r\n margin-top: 4px;\r\n }\r\n\r\n .checkbox-group {\r\n .checkbox-label {\r\n display: flex;\r\n align-items: center;\r\n gap: 8px;\r\n cursor: pointer;\r\n font-size: 13px;\r\n color: #718096;\r\n font-weight: 400;\r\n\r\n input[type=\"checkbox\"] {\r\n width: 16px;\r\n height: 16px;\r\n accent-color: $cPrimary;\r\n }\r\n }\r\n }\r\n\r\n .btn-login {\r\n width: 100%;\r\n height: 48px;\r\n font-size: 15px;\r\n font-weight: 600;\r\n border-radius: 8px;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n gap: 8px;\r\n\r\n &.disabled {\r\n opacity: 0.7;\r\n pointer-events: none;\r\n }\r\n }\r\n\r\n .alert {\r\n display: none;\r\n padding: 12px 16px;\r\n border-radius: 8px;\r\n font-size: 13px;\r\n margin-bottom: 20px;\r\n\r\n &.alert-danger {\r\n background: #FFF5F5;\r\n color: $cDanger;\r\n border: 1px solid #FED7D7;\r\n }\r\n\r\n &.alert-success {\r\n background: #F0FFF4;\r\n color: #276749;\r\n border: 1px solid #C6F6D5;\r\n }\r\n }\r\n}\r\n\r\n// Responsywność logowania\r\n@media (max-width: 768px) {\r\n .login-brand {\r\n display: none;\r\n }\r\n\r\n .login-form-wrapper {\r\n padding: 30px 20px;\r\n }\r\n}\r\n\r\n// ===========================\r\n// LAYOUT (logged) - SIDEBAR\r\n// ===========================\r\nbody.logged {\r\n display: flex;\r\n min-height: 100vh;\r\n background: $cContentBg;\r\n}\r\n\r\n// --- Sidebar ---\r\n.sidebar {\r\n width: $sidebarWidth;\r\n min-height: 100vh;\r\n background: $cSidebarBg;\r\n position: fixed;\r\n top: 0;\r\n left: 0;\r\n z-index: 1000;\r\n display: flex;\r\n flex-direction: column;\r\n transition: width $transitionSpeed ease;\r\n overflow: hidden;\r\n\r\n &.collapsed {\r\n width: $sidebarCollapsed;\r\n\r\n .sidebar-header {\r\n padding: 16px 0;\r\n justify-content: center;\r\n\r\n .sidebar-logo {\r\n display: none;\r\n }\r\n\r\n .sidebar-toggle i {\r\n transform: rotate(180deg);\r\n }\r\n }\r\n\r\n .sidebar-nav ul li a {\r\n padding: 12px 0;\r\n justify-content: center;\r\n\r\n span {\r\n display: none;\r\n }\r\n\r\n i {\r\n margin-right: 0;\r\n font-size: 18px;\r\n }\r\n }\r\n\r\n .sidebar-nav ul li.nav-group .nav-group-label {\r\n padding: 12px 0;\r\n justify-content: center;\r\n\r\n span {\r\n display: none;\r\n }\r\n\r\n i {\r\n margin-right: 0;\r\n font-size: 18px;\r\n }\r\n }\r\n\r\n .sidebar-footer {\r\n .sidebar-user {\r\n justify-content: center;\r\n\r\n .user-info {\r\n display: none;\r\n }\r\n }\r\n\r\n .sidebar-logout {\r\n justify-content: center;\r\n\r\n span {\r\n display: none;\r\n }\r\n }\r\n }\r\n\r\n .nav-divider {\r\n margin: 8px 15px;\r\n }\r\n }\r\n}\r\n\r\n.sidebar-header {\r\n display: flex;\r\n align-items: center;\r\n justify-content: space-between;\r\n padding: 20px 20px 16px;\r\n border-bottom: 1px solid rgba($cWhite, 0.08);\r\n\r\n .sidebar-logo a {\r\n color: $cWhite;\r\n text-decoration: none;\r\n font-size: 24px;\r\n font-weight: 300;\r\n letter-spacing: -0.5px;\r\n\r\n strong {\r\n font-weight: 700;\r\n }\r\n }\r\n\r\n .sidebar-toggle {\r\n background: none;\r\n border: none;\r\n color: $cSidebarText;\r\n cursor: pointer;\r\n padding: 6px;\r\n border-radius: 6px;\r\n transition: all $transitionSpeed;\r\n\r\n &:hover {\r\n background: rgba($cWhite, 0.08);\r\n color: $cWhite;\r\n }\r\n\r\n i {\r\n transition: transform $transitionSpeed;\r\n }\r\n }\r\n}\r\n\r\n.sidebar-nav {\r\n flex: 1;\r\n padding: 12px 0;\r\n overflow-y: auto;\r\n\r\n ul {\r\n list-style: none;\r\n margin: 0;\r\n padding: 0;\r\n\r\n li {\r\n &.nav-group {\r\n margin-bottom: 4px;\r\n\r\n .nav-group-label {\r\n display: flex;\r\n align-items: center;\r\n padding: 11px 20px;\r\n color: #D5DEEA;\r\n font-size: 12px;\r\n font-weight: 700;\r\n text-transform: uppercase;\r\n letter-spacing: 0.6px;\r\n border-left: 3px solid transparent;\r\n\r\n i {\r\n width: 20px;\r\n text-align: center;\r\n margin-right: 12px;\r\n font-size: 14px;\r\n color: #B6C4D3;\r\n }\r\n }\r\n\r\n .nav-submenu {\r\n margin: 0;\r\n padding: 0;\r\n list-style: none;\r\n\r\n li a {\r\n padding-left: 44px;\r\n }\r\n }\r\n\r\n &.active>.nav-group-label {\r\n color: $cWhite;\r\n background: rgba($cPrimary, 0.12);\r\n border-left-color: $cPrimary;\r\n\r\n i {\r\n color: $cPrimary;\r\n }\r\n }\r\n }\r\n\r\n &.nav-divider {\r\n height: 1px;\r\n background: rgba($cWhite, 0.08);\r\n margin: 8px 20px;\r\n }\r\n\r\n a {\r\n display: flex;\r\n align-items: center;\r\n padding: 11px 20px;\r\n color: $cSidebarText;\r\n text-decoration: none;\r\n font-size: 14px;\r\n transition: all 0.2s;\r\n border-left: 3px solid transparent;\r\n\r\n i {\r\n width: 20px;\r\n text-align: center;\r\n margin-right: 12px;\r\n font-size: 15px;\r\n }\r\n\r\n &:hover {\r\n background: $cSidebarHover;\r\n color: $cWhite;\r\n }\r\n }\r\n\r\n &.active>a {\r\n background: rgba($cPrimary, 0.15);\r\n color: $cWhite;\r\n border-left-color: $cPrimary;\r\n\r\n i {\r\n color: $cPrimary;\r\n }\r\n }\r\n }\r\n }\r\n}\r\n\r\n.badge-alerts-count {\r\n display: inline-flex;\r\n align-items: center;\r\n justify-content: center;\r\n min-width: 20px;\r\n height: 20px;\r\n padding: 0 6px;\r\n margin-left: 8px;\r\n border-radius: 50%;\r\n font-size: 11px;\r\n font-weight: 600;\r\n line-height: 1;\r\n background: $cWhite;\r\n color: $cPrimary;\r\n}\r\n\r\n.sidebar-footer {\r\n padding: 16px 20px;\r\n border-top: 1px solid rgba($cWhite, 0.08);\r\n\r\n .sidebar-user {\r\n display: flex;\r\n align-items: center;\r\n gap: 10px;\r\n margin-bottom: 12px;\r\n\r\n .user-avatar {\r\n width: 34px;\r\n height: 34px;\r\n border-radius: 50%;\r\n background: rgba($cPrimary, 0.2);\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n color: $cPrimary;\r\n font-size: 14px;\r\n flex-shrink: 0;\r\n }\r\n\r\n .user-info {\r\n overflow: hidden;\r\n\r\n .user-email {\r\n color: $cSidebarText;\r\n font-size: 12px;\r\n display: block;\r\n white-space: nowrap;\r\n overflow: hidden;\r\n text-overflow: ellipsis;\r\n }\r\n }\r\n }\r\n\r\n .sidebar-logout {\r\n display: flex;\r\n align-items: center;\r\n gap: 8px;\r\n color: #E53E3E;\r\n text-decoration: none;\r\n font-size: 13px;\r\n padding: 8px 10px;\r\n border-radius: 6px;\r\n transition: all 0.2s;\r\n\r\n i {\r\n font-size: 14px;\r\n }\r\n\r\n &:hover {\r\n background: rgba(#E53E3E, 0.1);\r\n }\r\n }\r\n}\r\n\r\n// --- Main wrapper ---\r\n.main-wrapper {\r\n margin-left: $sidebarWidth;\r\n flex: 1;\r\n min-height: 100vh;\r\n transition: margin-left $transitionSpeed ease;\r\n display: flex;\r\n flex-direction: column;\r\n\r\n &.expanded {\r\n margin-left: $sidebarCollapsed;\r\n }\r\n}\r\n\r\n// --- Topbar ---\r\n.topbar {\r\n height: $topbarHeight;\r\n background: $cWhite;\r\n border-bottom: 1px solid $cBorder;\r\n display: flex;\r\n align-items: center;\r\n padding: 0 25px;\r\n position: sticky;\r\n top: 0;\r\n z-index: 500;\r\n\r\n .topbar-toggle {\r\n background: none;\r\n border: none;\r\n color: $cText;\r\n cursor: pointer;\r\n padding: 8px 10px;\r\n border-radius: 6px;\r\n font-size: 16px;\r\n margin-right: 15px;\r\n transition: all 0.2s;\r\n\r\n &:hover {\r\n background: $cContentBg;\r\n }\r\n }\r\n\r\n .topbar-breadcrumb {\r\n font-size: 16px;\r\n font-weight: 600;\r\n color: $cTextDark;\r\n }\r\n}\r\n\r\n// --- Content area ---\r\n.content {\r\n flex: 1;\r\n padding: 25px;\r\n}\r\n\r\n.app-alert {\r\n background: #EBF8FF;\r\n border: 1px solid #BEE3F8;\r\n color: #2B6CB0;\r\n padding: 12px 16px;\r\n border-radius: 8px;\r\n margin-bottom: 20px;\r\n font-size: 14px;\r\n}\r\n\r\n// ===========================\r\n// KOMPONENTY WSPÓLNE\r\n// ===========================\r\n\r\n// --- Buttons ---\r\n.btn {\r\n padding: 10px 20px;\r\n transition: all 0.2s ease;\r\n color: $cWhite;\r\n border: 0;\r\n border-radius: 6px;\r\n cursor: pointer;\r\n display: inline-flex;\r\n text-decoration: none;\r\n gap: 6px;\r\n justify-content: center;\r\n align-items: center;\r\n font-size: 14px;\r\n font-family: \"Roboto\", sans-serif;\r\n font-weight: 500;\r\n\r\n &.btn_small,\r\n &.btn-xs,\r\n &.btn-sm {\r\n padding: 5px 10px;\r\n font-size: 12px;\r\n\r\n i {\r\n font-size: 11px;\r\n }\r\n }\r\n\r\n &.btn-success {\r\n background: $cSuccess;\r\n\r\n &:hover {\r\n background: $cSuccessDark;\r\n }\r\n }\r\n\r\n &.btn-primary {\r\n background: $cPrimary;\r\n\r\n &:hover {\r\n background: $cPrimaryDark;\r\n }\r\n }\r\n\r\n &.btn-danger {\r\n background: $cDanger;\r\n\r\n &:hover {\r\n background: $cDangerDark;\r\n }\r\n }\r\n\r\n &.disabled {\r\n opacity: 0.6;\r\n pointer-events: none;\r\n }\r\n}\r\n\r\n// --- Form controls ---\r\n.form-control {\r\n border: 1px solid $cBorder;\r\n border-radius: 6px;\r\n height: 38px;\r\n width: 100%;\r\n padding: 6px 12px;\r\n font-family: \"Roboto\", sans-serif;\r\n font-size: 14px;\r\n color: $cTextDark;\r\n transition: border-color 0.2s, box-shadow 0.2s;\r\n\r\n option {\r\n padding: 5px;\r\n }\r\n\r\n &:focus {\r\n border-color: $cPrimary;\r\n box-shadow: 0 0 0 3px rgba($cPrimary, 0.1);\r\n outline: none;\r\n }\r\n}\r\n\r\ninput[type=\"checkbox\"] {\r\n border: 1px solid $cBorder;\r\n}\r\n\r\n// --- Tables ---\r\ntable {\r\n border-collapse: collapse;\r\n font-size: 13px;\r\n}\r\n\r\n.table {\r\n width: 100%;\r\n\r\n th,\r\n td {\r\n border: 1px solid $cBorder;\r\n padding: 8px 10px;\r\n }\r\n\r\n th {\r\n background: #F7FAFC;\r\n font-weight: 600;\r\n font-size: 12px;\r\n text-transform: uppercase;\r\n letter-spacing: 0.03em;\r\n color: #718096;\r\n }\r\n\r\n td.center {\r\n text-align: center;\r\n }\r\n\r\n td.left {\r\n text-align: left;\r\n }\r\n\r\n &.table-sm td {\r\n padding: 5px !important;\r\n }\r\n\r\n input.form-control {\r\n font-size: 13px;\r\n height: 32px;\r\n }\r\n}\r\n\r\n// --- Unified app tables (clients/campaigns/products/logs) ---\r\n.clients-table-wrap,\r\n.campaigns-table-wrap,\r\n.products-table-wrap,\r\n.logs-table-wrap {\r\n background: $cWhite;\r\n border-radius: 10px;\r\n box-shadow: 0 1px 4px rgba(0, 0, 0, 0.06);\r\n overflow-x: auto;\r\n max-width: 100%;\r\n -ms-overflow-style: none;\r\n scrollbar-width: none;\r\n\r\n &::-webkit-scrollbar {\r\n display: none;\r\n }\r\n\r\n .table {\r\n margin: 0;\r\n width: 100% !important;\r\n\r\n thead th {\r\n background: #F8FAFC;\r\n border-bottom: 2px solid $cBorder;\r\n font-size: 12px;\r\n font-weight: 700;\r\n text-transform: uppercase;\r\n letter-spacing: 0.5px;\r\n color: #8899A6;\r\n padding: 12px 16px;\r\n white-space: nowrap;\r\n }\r\n\r\n tbody td {\r\n padding: 10px 16px;\r\n font-size: 13px;\r\n color: $cTextDark;\r\n vertical-align: middle;\r\n border-bottom: 1px solid #F1F5F9;\r\n }\r\n\r\n tbody tr:hover td {\r\n background: #F8FAFC;\r\n }\r\n }\r\n\r\n .dt-layout-row {\r\n padding: 14px 20px;\r\n margin: 0 !important;\r\n border-top: 1px solid #F1F5F9;\r\n\r\n &:first-child {\r\n display: none;\r\n }\r\n }\r\n\r\n .dt-info {\r\n font-size: 13px;\r\n color: #8899A6;\r\n }\r\n\r\n .dt-paging {\r\n .pagination {\r\n margin: 0;\r\n padding: 0;\r\n list-style: none;\r\n display: flex;\r\n align-items: center;\r\n gap: 6px;\r\n\r\n .page-item {\r\n .page-link {\r\n display: inline-flex;\r\n align-items: center;\r\n justify-content: center;\r\n min-width: 36px;\r\n width: fit-content;\r\n height: 36px;\r\n padding: 0 14px;\r\n border-radius: 8px;\r\n font-size: 13px;\r\n font-weight: 500;\r\n border: 1px solid $cBorder;\r\n background: $cWhite;\r\n color: $cText;\r\n cursor: pointer;\r\n transition: all 0.2s;\r\n text-decoration: none;\r\n line-height: 1;\r\n white-space: nowrap;\r\n\r\n &:hover {\r\n background: #EEF2FF;\r\n color: $cPrimary;\r\n border-color: $cPrimary;\r\n }\r\n }\r\n\r\n &.active .page-link {\r\n background: $cPrimary;\r\n color: $cWhite;\r\n border-color: $cPrimary;\r\n font-weight: 600;\r\n }\r\n\r\n &.disabled .page-link {\r\n opacity: 0.35;\r\n cursor: default;\r\n pointer-events: none;\r\n }\r\n }\r\n }\r\n }\r\n\r\n .dt-processing {\r\n background: rgba($cWhite, 0.9);\r\n color: $cText;\r\n font-size: 14px;\r\n }\r\n}\r\n\r\n// --- Cards ---\r\n.card {\r\n background: $cWhite;\r\n padding: 20px;\r\n border-radius: 8px;\r\n color: $cTextDark;\r\n font-size: 14px;\r\n box-shadow: 0 1px 3px rgba(0, 0, 0, 0.06);\r\n\r\n &.mb25 {\r\n margin-bottom: 20px;\r\n }\r\n\r\n .card-header {\r\n font-weight: 600;\r\n font-size: 15px;\r\n }\r\n\r\n .card-body {\r\n padding-top: 12px;\r\n\r\n table {\r\n\r\n th,\r\n td {\r\n font-size: 13px;\r\n\r\n &.bold {\r\n font-weight: 600;\r\n }\r\n\r\n &.text-right {\r\n text-align: right;\r\n }\r\n\r\n &.text-center {\r\n text-align: center;\r\n }\r\n }\r\n }\r\n }\r\n}\r\n\r\n// --- Action menu ---\r\n.action_menu {\r\n display: flex;\r\n margin-bottom: 20px;\r\n gap: 12px;\r\n\r\n .btn {\r\n padding: 8px 16px;\r\n\r\n &.btn_add {\r\n background: $cSuccess;\r\n\r\n &:hover {\r\n background: $cSuccessDark;\r\n }\r\n }\r\n\r\n &.btn_cancel {\r\n background: $cDanger;\r\n\r\n &:hover {\r\n background: $cDangerDark;\r\n }\r\n }\r\n }\r\n}\r\n\r\n// --- Settings page ---\r\n.settings-tabs {\r\n display: flex;\r\n gap: 8px;\r\n margin-bottom: 18px;\r\n\r\n .settings-tab {\r\n display: inline-flex;\r\n align-items: center;\r\n gap: 6px;\r\n padding: 8px 14px;\r\n border-radius: 8px;\r\n text-decoration: none;\r\n color: #6B7A89;\r\n background: #E9EEF5;\r\n border: 1px solid #D8E0EA;\r\n font-size: 13px;\r\n font-weight: 600;\r\n transition: all 0.2s;\r\n\r\n &:hover {\r\n color: $cTextDark;\r\n background: #DDE6F2;\r\n }\r\n\r\n &.active {\r\n color: $cWhite;\r\n background: $cPrimary;\r\n border-color: $cPrimary;\r\n }\r\n }\r\n}\r\n\r\n.settings-card {\r\n background: $cWhite;\r\n border-radius: 10px;\r\n padding: 28px;\r\n box-shadow: 0 1px 4px rgba(0, 0, 0, 0.06);\r\n\r\n .settings-card-header {\r\n display: flex;\r\n align-items: center;\r\n gap: 14px;\r\n margin-bottom: 24px;\r\n padding-bottom: 16px;\r\n border-bottom: 1px solid $cBorder;\r\n\r\n .settings-card-icon {\r\n width: 44px;\r\n height: 44px;\r\n border-radius: 10px;\r\n background: color.adjust($cPrimary, $lightness: 26%);\r\n color: $cPrimary;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n font-size: 18px;\r\n flex-shrink: 0;\r\n }\r\n\r\n h3 {\r\n margin: 0;\r\n font-size: 17px;\r\n font-weight: 600;\r\n color: $cTextDark;\r\n }\r\n\r\n small {\r\n color: #8899A6;\r\n font-size: 13px;\r\n }\r\n }\r\n\r\n .settings-field {\r\n margin-bottom: 18px;\r\n\r\n label {\r\n display: block;\r\n font-size: 13px;\r\n font-weight: 600;\r\n color: $cTextDark;\r\n margin-bottom: 6px;\r\n }\r\n }\r\n\r\n .settings-input-wrap {\r\n position: relative;\r\n\r\n .settings-input-icon {\r\n position: absolute;\r\n left: 12px;\r\n top: 50%;\r\n transform: translateY(-50%);\r\n color: #A0AEC0;\r\n font-size: 14px;\r\n pointer-events: none;\r\n }\r\n\r\n .form-control {\r\n padding-left: 38px;\r\n }\r\n\r\n .settings-toggle-pw {\r\n position: absolute;\r\n right: 4px;\r\n top: 50%;\r\n transform: translateY(-50%);\r\n background: none;\r\n border: none;\r\n color: #A0AEC0;\r\n cursor: pointer;\r\n padding: 6px 10px;\r\n font-size: 14px;\r\n transition: color 0.2s;\r\n\r\n &:hover {\r\n color: $cPrimary;\r\n }\r\n }\r\n }\r\n\r\n .settings-field .settings-toggle-label {\r\n display: inline-flex;\r\n align-items: center;\r\n gap: 10px;\r\n cursor: pointer;\r\n font-size: 14px;\r\n font-weight: 500;\r\n user-select: none;\r\n margin-bottom: 0;\r\n width: 100%;\r\n\r\n .settings-toggle-text {\r\n flex: 1 1 auto;\r\n min-width: 0;\r\n line-height: 1.35;\r\n }\r\n }\r\n\r\n .settings-toggle-checkbox {\r\n display: none;\r\n\r\n &+.settings-toggle-switch {\r\n display: inline-block;\r\n position: relative;\r\n width: 44px;\r\n height: 24px;\r\n background: #ccc;\r\n border-radius: 12px;\r\n transition: background 0.2s;\r\n flex-shrink: 0;\r\n\r\n &::after {\r\n content: '';\r\n position: absolute;\r\n top: 3px;\r\n left: 3px;\r\n width: 18px;\r\n height: 18px;\r\n background: #fff;\r\n border-radius: 50%;\r\n transition: transform 0.2s;\r\n }\r\n }\r\n\r\n &:checked+.settings-toggle-switch {\r\n background: #22C55E;\r\n\r\n &::after {\r\n transform: translateX(20px);\r\n }\r\n }\r\n }\r\n\r\n .settings-fields-grid {\r\n display: grid;\r\n grid-template-columns: 1fr 1fr;\r\n gap: 0 24px;\r\n\r\n @media (max-width: 768px) {\r\n grid-template-columns: 1fr;\r\n }\r\n }\r\n\r\n .settings-alert-error {\r\n display: flex;\r\n align-items: center;\r\n gap: 10px;\r\n background: #FFF5F5;\r\n color: $cDanger;\r\n border: 1px solid #FED7D7;\r\n border-radius: 8px;\r\n padding: 12px 16px;\r\n margin-bottom: 20px;\r\n font-size: 13px;\r\n\r\n i {\r\n font-size: 16px;\r\n flex-shrink: 0;\r\n }\r\n }\r\n}\r\n\r\n// --- Clients page ---\r\n.clients-page {\r\n .clients-header {\r\n display: flex;\r\n justify-content: space-between;\r\n align-items: center;\r\n margin-bottom: 20px;\r\n\r\n h2 {\r\n margin: 0;\r\n font-size: 20px;\r\n font-weight: 600;\r\n color: $cTextDark;\r\n\r\n i {\r\n color: $cPrimary;\r\n margin-right: 8px;\r\n }\r\n }\r\n }\r\n\r\n .clients-table-wrap {\r\n .table {\r\n .client-id {\r\n color: #8899A6;\r\n font-size: 13px;\r\n font-weight: 600;\r\n }\r\n\r\n .client-name {\r\n font-weight: 600;\r\n color: $cTextDark;\r\n }\r\n }\r\n }\r\n\r\n .badge-id {\r\n display: inline-block;\r\n background: #EEF2FF;\r\n color: $cPrimary;\r\n font-size: 13px;\r\n font-weight: 600;\r\n padding: 4px 10px;\r\n border-radius: 6px;\r\n font-family: monospace;\r\n }\r\n\r\n .actions-cell {\r\n text-align: center;\r\n white-space: nowrap;\r\n }\r\n\r\n .btn-icon {\r\n display: inline-flex;\r\n align-items: center;\r\n justify-content: center;\r\n width: 34px;\r\n height: 34px;\r\n border-radius: 8px;\r\n border: none;\r\n cursor: pointer;\r\n font-size: 14px;\r\n transition: all 0.2s;\r\n margin: 0 2px;\r\n\r\n &.btn-icon-edit {\r\n background: #EEF2FF;\r\n color: $cPrimary;\r\n\r\n &:hover {\r\n background: $cPrimary;\r\n color: $cWhite;\r\n }\r\n }\r\n\r\n &.btn-icon-delete {\r\n background: #FFF5F5;\r\n color: $cDanger;\r\n\r\n &:hover {\r\n background: $cDanger;\r\n color: $cWhite;\r\n }\r\n }\r\n\r\n &.btn-icon-sync {\r\n background: #F0FDF4;\r\n color: #16a34a;\r\n\r\n &:hover {\r\n background: #16a34a;\r\n color: $cWhite;\r\n }\r\n\r\n &:disabled {\r\n opacity: 0.7;\r\n cursor: wait;\r\n }\r\n\r\n &.is-queued {\r\n background: #FEF3C7;\r\n color: #D97706;\r\n }\r\n }\r\n }\r\n\r\n .client-sync-bars {\r\n display: flex;\r\n flex-direction: column;\r\n gap: 4px;\r\n }\r\n\r\n .client-sync-row {\r\n display: flex;\r\n align-items: center;\r\n gap: 4px;\r\n }\r\n\r\n .client-sync-label {\r\n font-size: 11px;\r\n font-weight: 600;\r\n color: #8899A6;\r\n width: 18px;\r\n flex-shrink: 0;\r\n }\r\n\r\n .client-sync-track {\r\n flex: 1;\r\n height: 6px;\r\n border-radius: 999px;\r\n background: #E9EEF5;\r\n overflow: hidden;\r\n }\r\n\r\n .client-sync-fill {\r\n height: 100%;\r\n border-radius: 999px;\r\n background: #CBD5E0;\r\n transition: width 0.4s ease;\r\n\r\n &.is-active {\r\n background: linear-gradient(90deg, #5A9BFF 0%, #2E6BDF 100%);\r\n }\r\n\r\n &.is-done {\r\n background: $cSuccess;\r\n }\r\n }\r\n\r\n .client-sync-pct {\r\n font-size: 11px;\r\n font-weight: 600;\r\n color: #8899A6;\r\n width: 32px;\r\n text-align: right;\r\n flex-shrink: 0;\r\n }\r\n\r\n .empty-state {\r\n text-align: center;\r\n padding: 50px 20px !important;\r\n color: #A0AEC0;\r\n\r\n i {\r\n font-size: 40px;\r\n margin-bottom: 12px;\r\n display: block;\r\n }\r\n\r\n p {\r\n margin: 0;\r\n font-size: 15px;\r\n }\r\n }\r\n}\r\n\r\n.btn-secondary {\r\n background: #E2E8F0;\r\n color: $cTextDark;\r\n border: none;\r\n padding: 8px 18px;\r\n border-radius: 6px;\r\n font-size: 14px;\r\n cursor: pointer;\r\n transition: background 0.2s;\r\n\r\n &:hover {\r\n background: #CBD5E0;\r\n }\r\n}\r\n\r\n// ===========================\r\n// CAMPAIGNS PAGE\r\n// ===========================\r\n.campaigns-page {\r\n max-width: 100%;\r\n overflow-x: hidden;\r\n width: 100%;\r\n\r\n .campaigns-header {\r\n display: flex;\r\n justify-content: space-between;\r\n align-items: center;\r\n margin-bottom: 20px;\r\n\r\n h2 {\r\n margin: 0;\r\n font-size: 20px;\r\n font-weight: 600;\r\n color: $cTextDark;\r\n\r\n i {\r\n color: $cPrimary;\r\n margin-right: 8px;\r\n }\r\n }\r\n }\r\n\r\n .campaigns-filters {\r\n display: flex;\r\n flex-wrap: wrap;\r\n gap: 20px;\r\n margin-bottom: 20px;\r\n\r\n .filter-group {\r\n flex: 1;\r\n min-width: 0;\r\n\r\n label {\r\n display: block;\r\n font-size: 12px;\r\n font-weight: 700;\r\n text-transform: uppercase;\r\n letter-spacing: 0.5px;\r\n color: #8899A6;\r\n margin-bottom: 6px;\r\n\r\n i {\r\n margin-right: 4px;\r\n }\r\n }\r\n\r\n .form-control {\r\n width: 100%;\r\n padding: 10px 14px;\r\n border: 1px solid $cBorder;\r\n border-radius: 8px;\r\n font-size: 14px;\r\n color: $cTextDark;\r\n background: $cWhite;\r\n transition: border-color 0.2s;\r\n appearance: none;\r\n -webkit-appearance: none;\r\n background-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%238899A6' d='M6 8L1 3h10z'/%3E%3C/svg%3E\");\r\n background-repeat: no-repeat;\r\n background-position: right 12px center;\r\n padding-right: 32px;\r\n\r\n &:focus {\r\n outline: none;\r\n border-color: $cPrimary;\r\n box-shadow: 0 0 0 3px rgba($cPrimary, 0.1);\r\n }\r\n }\r\n\r\n .filter-with-action {\r\n display: flex;\r\n align-items: center;\r\n gap: 8px;\r\n\r\n .form-control {\r\n flex: 1;\r\n }\r\n\r\n .btn-icon {\r\n flex-shrink: 0;\r\n width: 42px;\r\n height: 42px;\r\n display: inline-flex;\r\n align-items: center;\r\n justify-content: center;\r\n border-radius: 8px;\r\n border: none;\r\n cursor: pointer;\r\n font-size: 14px;\r\n transition: all 0.2s;\r\n\r\n &.btn-icon-delete {\r\n background: #FFF5F5;\r\n color: $cDanger;\r\n\r\n &:hover {\r\n background: $cDanger;\r\n color: $cWhite;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n .filter-group-campaign-multi {\r\n flex: 2 !important;\r\n }\r\n\r\n .campaign-dropdown {\r\n flex: 1;\r\n min-width: 0;\r\n position: relative;\r\n }\r\n\r\n .campaign-dropdown-trigger {\r\n width: 100%;\r\n padding: 10px 14px;\r\n padding-right: 32px;\r\n border: 1px solid $cBorder;\r\n border-radius: 8px;\r\n font-size: 14px;\r\n color: $cTextDark;\r\n background: $cWhite;\r\n cursor: pointer;\r\n display: flex;\r\n align-items: center;\r\n transition: border-color 0.2s;\r\n position: relative;\r\n min-height: 42px;\r\n box-sizing: border-box;\r\n\r\n .campaign-dropdown-text {\r\n flex: 1;\r\n min-width: 0;\r\n overflow: hidden;\r\n text-overflow: ellipsis;\r\n white-space: nowrap;\r\n\r\n &.is-placeholder {\r\n color: #8899A6;\r\n }\r\n }\r\n\r\n .campaign-dropdown-arrow {\r\n position: absolute;\r\n right: 12px;\r\n font-size: 10px;\r\n color: #8899A6;\r\n transition: transform 0.2s;\r\n }\r\n }\r\n\r\n .campaign-dropdown.is-open {\r\n .campaign-dropdown-trigger {\r\n border-color: $cPrimary;\r\n box-shadow: 0 0 0 3px rgba($cPrimary, 0.1);\r\n }\r\n\r\n .campaign-dropdown-arrow {\r\n transform: rotate(180deg);\r\n }\r\n\r\n .campaign-dropdown-menu {\r\n display: block;\r\n }\r\n }\r\n\r\n .campaign-dropdown-menu {\r\n display: none;\r\n position: absolute;\r\n top: calc(100% + 4px);\r\n left: 0;\r\n right: 0;\r\n z-index: 100;\r\n max-height: 280px;\r\n overflow-y: auto;\r\n background: $cWhite;\r\n border: 1px solid $cBorder;\r\n border-radius: 8px;\r\n box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);\r\n padding: 4px 0;\r\n }\r\n\r\n .campaign-dropdown-item {\r\n display: flex;\r\n align-items: center;\r\n gap: 8px;\r\n padding: 8px 12px;\r\n cursor: pointer;\r\n font-size: 14px;\r\n color: $cTextDark;\r\n margin: 0;\r\n transition: background 0.15s;\r\n\r\n &:hover {\r\n background: #F8FAFC;\r\n }\r\n\r\n &.is-checked {\r\n background: #EEF2FF;\r\n }\r\n\r\n input[type=\"checkbox\"] {\r\n width: 16px;\r\n height: 16px;\r\n cursor: pointer;\r\n flex-shrink: 0;\r\n accent-color: $cPrimary;\r\n }\r\n\r\n span {\r\n flex: 1;\r\n min-width: 0;\r\n overflow: hidden;\r\n text-overflow: ellipsis;\r\n white-space: nowrap;\r\n }\r\n }\r\n }\r\n\r\n .campaigns-list-panel {\r\n background: $cWhite;\r\n border-radius: 10px;\r\n box-shadow: 0 1px 4px rgba(0, 0, 0, 0.06);\r\n margin-bottom: 20px;\r\n overflow: hidden;\r\n\r\n .campaigns-list-toolbar {\r\n display: flex;\r\n align-items: center;\r\n justify-content: space-between;\r\n padding: 12px 16px;\r\n border-bottom: 1px solid $cBorder;\r\n gap: 12px;\r\n\r\n &-left {\r\n display: flex;\r\n align-items: center;\r\n gap: 8px;\r\n font-size: 13px;\r\n color: $cText;\r\n\r\n input[type=\"checkbox\"] {\r\n width: 16px;\r\n height: 16px;\r\n cursor: pointer;\r\n }\r\n\r\n label {\r\n cursor: pointer;\r\n user-select: none;\r\n margin: 0;\r\n }\r\n\r\n .campaigns-selected-count {\r\n margin-left: 12px;\r\n color: #8899A6;\r\n }\r\n }\r\n\r\n &-right {\r\n .campaigns-bulk-delete-btn {\r\n display: inline-flex;\r\n align-items: center;\r\n gap: 6px;\r\n padding: 8px 16px;\r\n border: none;\r\n border-radius: 8px;\r\n font-size: 13px;\r\n font-weight: 600;\r\n cursor: pointer;\r\n background: #FFF5F5;\r\n color: $cDanger;\r\n transition: all 0.2s;\r\n\r\n &:hover:not(:disabled) {\r\n background: $cDanger;\r\n color: $cWhite;\r\n }\r\n\r\n &:disabled {\r\n opacity: 0.4;\r\n cursor: not-allowed;\r\n }\r\n }\r\n }\r\n }\r\n\r\n .campaigns-list-items {\r\n display: flex;\r\n flex-wrap: wrap;\r\n gap: 0;\r\n padding: 8px 8px;\r\n max-height: 220px;\r\n overflow-y: auto;\r\n\r\n .campaigns-list-item {\r\n display: flex;\r\n align-items: center;\r\n gap: 8px;\r\n padding: 6px 12px;\r\n margin: 2px;\r\n border-radius: 6px;\r\n font-size: 13px;\r\n color: $cTextDark;\r\n cursor: pointer;\r\n user-select: none;\r\n transition: background 0.15s;\r\n\r\n &:hover {\r\n background: #F0F4FF;\r\n }\r\n\r\n input[type=\"checkbox\"] {\r\n width: 15px;\r\n height: 15px;\r\n cursor: pointer;\r\n flex-shrink: 0;\r\n }\r\n\r\n .campaigns-list-item-name {\r\n white-space: nowrap;\r\n }\r\n }\r\n }\r\n }\r\n\r\n .campaigns-chart-wrap {\r\n background: $cWhite;\r\n border-radius: 10px;\r\n box-shadow: 0 1px 4px rgba(0, 0, 0, 0.06);\r\n padding: 20px;\r\n margin-bottom: 20px;\r\n min-height: 350px;\r\n overflow: hidden;\r\n\r\n #container {\r\n max-width: 100%;\r\n }\r\n }\r\n\r\n .campaigns-table-wrap {\r\n .table {\r\n width: 100%;\r\n }\r\n }\r\n\r\n .delete-history-entry {\r\n display: inline-flex;\r\n align-items: center;\r\n justify-content: center;\r\n width: 30px;\r\n height: 30px;\r\n border-radius: 6px;\r\n border: none;\r\n cursor: pointer;\r\n font-size: 12px;\r\n background: #FFF5F5;\r\n color: $cDanger;\r\n transition: all 0.2s;\r\n\r\n &:hover {\r\n background: $cDanger;\r\n color: $cWhite;\r\n }\r\n }\r\n}\r\n\r\n// ===========================\r\n// PRODUCTS PAGE\r\n// ===========================\r\n.products-page {\r\n .products-header {\r\n display: flex;\r\n justify-content: space-between;\r\n align-items: center;\r\n margin-bottom: 20px;\r\n\r\n h2 {\r\n margin: 0;\r\n font-size: 20px;\r\n font-weight: 600;\r\n color: $cTextDark;\r\n\r\n i {\r\n color: $cPrimary;\r\n margin-right: 8px;\r\n }\r\n }\r\n }\r\n\r\n .products-filters {\r\n display: flex;\r\n flex-wrap: wrap;\r\n align-items: flex-end;\r\n gap: 20px;\r\n margin-bottom: 16px;\r\n\r\n .filter-group {\r\n flex: 1 1 220px;\r\n min-width: 0;\r\n\r\n label {\r\n display: block;\r\n font-size: 12px;\r\n font-weight: 700;\r\n text-transform: uppercase;\r\n letter-spacing: 0.5px;\r\n color: #8899A6;\r\n margin-bottom: 6px;\r\n\r\n i {\r\n margin-right: 4px;\r\n }\r\n }\r\n\r\n .form-control {\r\n width: 100%;\r\n padding: 10px 14px;\r\n border: 1px solid $cBorder;\r\n border-radius: 8px;\r\n font-size: 14px;\r\n color: $cTextDark;\r\n background: $cWhite;\r\n transition: border-color 0.2s;\r\n\r\n &:focus {\r\n outline: none;\r\n border-color: $cPrimary;\r\n box-shadow: 0 0 0 3px rgba($cPrimary, 0.1);\r\n }\r\n }\r\n\r\n select.form-control {\r\n appearance: none;\r\n -webkit-appearance: none;\r\n background-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%238899A6' d='M6 8L1 3h10z'/%3E%3C/svg%3E\");\r\n background-repeat: no-repeat;\r\n background-position: right 12px center;\r\n padding-right: 32px;\r\n }\r\n\r\n &.filter-group-client,\r\n &.filter-group-campaign,\r\n &.filter-group-ad-group {\r\n flex: 1 1 260px;\r\n }\r\n\r\n &.filter-group-ad-group {\r\n .ad-group-filter-actions {\r\n display: flex;\r\n gap: 8px;\r\n align-items: center;\r\n\r\n .form-control {\r\n flex: 1 1 auto;\r\n min-width: 0;\r\n }\r\n }\r\n\r\n #delete-products-ad-group {\r\n min-width: 38px;\r\n height: 38px;\r\n border-radius: 6px;\r\n margin: 0;\r\n background: #dc3545;\r\n border: 1px solid #dc3545;\r\n color: #fff;\r\n cursor: pointer;\r\n\r\n &:hover:not(:disabled) {\r\n background: #bb2d3b;\r\n border-color: #bb2d3b;\r\n color: #fff;\r\n }\r\n\r\n &:disabled {\r\n opacity: 0.45;\r\n cursor: default;\r\n background: #dc3545;\r\n border-color: #dc3545;\r\n color: #fff;\r\n }\r\n }\r\n }\r\n\r\n &.filter-group-roas {\r\n flex: 0 0 200px;\r\n }\r\n\r\n &.filter-group-columns {\r\n flex: 0 0 240px;\r\n }\r\n }\r\n }\r\n\r\n .products-scope-alerts {\r\n margin-bottom: 12px;\r\n border: 1px solid #FECACA;\r\n background: #FEF2F2;\r\n border-radius: 8px;\r\n overflow: hidden;\r\n\r\n summary {\r\n cursor: pointer;\r\n list-style: none;\r\n padding: 10px 12px;\r\n font-size: 13px;\r\n font-weight: 600;\r\n color: #991B1B;\r\n display: flex;\r\n align-items: center;\r\n gap: 8px;\r\n\r\n &::-webkit-details-marker {\r\n display: none;\r\n }\r\n }\r\n\r\n .products-scope-alerts-list {\r\n border-top: 1px solid #FECACA;\r\n background: #FFF;\r\n max-height: 260px;\r\n overflow: auto;\r\n }\r\n\r\n .products-scope-alert-item {\r\n padding: 10px 12px;\r\n border-bottom: 1px solid #F1F5F9;\r\n\r\n &:last-child {\r\n border-bottom: none;\r\n }\r\n }\r\n\r\n .products-scope-alert-meta {\r\n display: flex;\r\n align-items: center;\r\n gap: 8px;\r\n margin-bottom: 4px;\r\n font-size: 11px;\r\n color: #64748B;\r\n }\r\n\r\n .products-scope-alert-type {\r\n display: inline-flex;\r\n align-items: center;\r\n padding: 2px 6px;\r\n border-radius: 999px;\r\n background: #EEF2FF;\r\n color: #4338CA;\r\n font-weight: 600;\r\n text-transform: uppercase;\r\n letter-spacing: 0.3px;\r\n }\r\n\r\n .products-scope-alert-message {\r\n font-size: 13px;\r\n color: $cTextDark;\r\n line-height: 1.45;\r\n }\r\n }\r\n\r\n .products-actions {\r\n margin-bottom: 12px;\r\n\r\n .btn-danger {\r\n padding: 7px 14px;\r\n font-size: 13px;\r\n border-radius: 6px;\r\n border: none;\r\n cursor: pointer;\r\n transition: all 0.2s;\r\n\r\n &:disabled {\r\n opacity: 0.4;\r\n cursor: default;\r\n }\r\n }\r\n }\r\n\r\n .products-table-wrap {\r\n .table {\r\n width: 100%;\r\n\r\n // Kompaktowe inputy w tabeli\r\n input.min_roas,\r\n input.form-control-sm,\r\n select.custom_label_4,\r\n select.form-control-sm {\r\n padding: 3px 6px;\r\n font-size: 12px;\r\n border: 1px solid $cBorder;\r\n border-radius: 4px;\r\n background: $cWhite;\r\n }\r\n }\r\n }\r\n\r\n // Przycisk usuwania w wierszu\r\n .delete-product {\r\n display: inline-flex;\r\n align-items: center;\r\n justify-content: center;\r\n width: 28px;\r\n height: 28px;\r\n border-radius: 6px;\r\n border: none;\r\n cursor: pointer;\r\n font-size: 12px;\r\n background: #FFF5F5;\r\n color: $cDanger;\r\n transition: all 0.2s;\r\n\r\n &:hover {\r\n background: $cDanger;\r\n color: $cWhite;\r\n }\r\n }\r\n\r\n // Przycisk edycji w wierszu\r\n .edit-product-title {\r\n display: inline-flex;\r\n align-items: center;\r\n justify-content: center;\r\n width: 28px;\r\n height: 28px;\r\n border-radius: 6px;\r\n border: none;\r\n cursor: pointer;\r\n font-size: 12px;\r\n background: #EEF2FF;\r\n color: $cPrimary;\r\n transition: all 0.2s;\r\n\r\n &:hover {\r\n background: $cPrimary;\r\n color: $cWhite;\r\n }\r\n }\r\n}\r\n\r\n// --- Popup edycji produktu: AI suggest ---\r\n.desc-header {\r\n display: flex;\r\n justify-content: space-between;\r\n align-items: center;\r\n margin-bottom: 4px;\r\n\r\n label {\r\n margin: 0;\r\n }\r\n}\r\n\r\n.desc-tabs {\r\n display: flex;\r\n gap: 2px;\r\n background: #eee;\r\n border-radius: 6px;\r\n padding: 2px;\r\n}\r\n\r\n.desc-tab {\r\n border: none;\r\n background: transparent;\r\n padding: 4px 12px;\r\n font-size: 12px;\r\n border-radius: 4px;\r\n cursor: pointer;\r\n color: #666;\r\n transition: all .15s ease;\r\n\r\n i {\r\n margin-right: 4px;\r\n }\r\n\r\n &.active {\r\n background: #fff;\r\n color: #333;\r\n box-shadow: 0 1px 3px rgba(0, 0, 0, .12);\r\n font-weight: 500;\r\n }\r\n\r\n &:hover:not(.active) {\r\n color: #333;\r\n }\r\n}\r\n\r\n.desc-wrap {\r\n flex: 1;\r\n min-width: 0;\r\n}\r\n\r\n.desc-preview {\r\n\r\n ul,\r\n ol {\r\n margin: 6px 0;\r\n padding-left: 20px;\r\n }\r\n\r\n li {\r\n margin-bottom: 3px;\r\n }\r\n\r\n b,\r\n strong {\r\n font-weight: 600;\r\n }\r\n}\r\n\r\n.input-with-ai {\r\n display: flex;\r\n gap: 8px;\r\n align-items: flex-start;\r\n\r\n .form-control {\r\n flex: 1;\r\n }\r\n}\r\n\r\n.btn-ai-suggest {\r\n display: inline-flex;\r\n align-items: center;\r\n gap: 4px;\r\n padding: 6px 12px;\r\n border-radius: 8px;\r\n border: 1px solid #C084FC;\r\n background: linear-gradient(135deg, #F3E8FF, #EDE9FE);\r\n color: #7C3AED;\r\n font-size: 12px;\r\n font-weight: 600;\r\n cursor: pointer;\r\n transition: all 0.2s;\r\n white-space: nowrap;\r\n min-height: 38px;\r\n\r\n i {\r\n font-size: 13px;\r\n }\r\n\r\n &:hover {\r\n background: linear-gradient(135deg, #7C3AED, #6D28D9);\r\n color: #FFF;\r\n border-color: #6D28D9;\r\n }\r\n\r\n &:disabled {\r\n opacity: 0.7;\r\n cursor: wait;\r\n }\r\n\r\n &.btn-ai-claude {\r\n border-color: #D97706;\r\n background: linear-gradient(135deg, #FEF3C7, #FDE68A);\r\n color: #92400E;\r\n\r\n &:hover {\r\n background: linear-gradient(135deg, #D97706, #B45309);\r\n color: #FFF;\r\n border-color: #B45309;\r\n }\r\n }\r\n\r\n &.btn-ai-gemini {\r\n border-color: #4285F4;\r\n background: linear-gradient(135deg, #E8F0FE, #D2E3FC);\r\n color: #1A73E8;\r\n\r\n &:hover {\r\n background: linear-gradient(135deg, #4285F4, #1A73E8);\r\n color: #FFF;\r\n border-color: #1A73E8;\r\n }\r\n }\r\n}\r\n\r\n// --- Form container ---\r\n.form_container {\r\n background: $cWhite;\r\n padding: 25px;\r\n max-width: 1300px;\r\n border-radius: 8px;\r\n box-shadow: 0 1px 3px rgba(0, 0, 0, 0.06);\r\n\r\n &.full {\r\n max-width: 100%;\r\n }\r\n\r\n .form_group {\r\n margin-bottom: 12px;\r\n display: flex;\r\n\r\n >.label {\r\n width: 300px;\r\n display: inline-flex;\r\n align-items: flex-start;\r\n justify-content: right;\r\n padding-right: 12px;\r\n }\r\n\r\n .input {\r\n width: calc(100% - 300px);\r\n }\r\n }\r\n}\r\n\r\n// --- Default popup ---\r\n.default_popup {\r\n position: fixed;\r\n top: 0;\r\n left: 0;\r\n width: 100%;\r\n height: 100%;\r\n background: rgba(0, 0, 0, 0.45);\r\n display: none;\r\n z-index: 2000;\r\n\r\n .popup_content {\r\n position: absolute;\r\n top: 50%;\r\n left: 50%;\r\n transform: translate(-50%, -50%);\r\n background: $cWhite;\r\n padding: 25px;\r\n border-radius: 10px;\r\n max-width: 1140px;\r\n width: 95%;\r\n box-shadow: 0 20px 60px rgba(0, 0, 0, 0.15);\r\n\r\n .popup_header {\r\n display: flex;\r\n justify-content: space-between;\r\n align-items: center;\r\n margin-bottom: 15px;\r\n\r\n .title {\r\n font-size: 18px;\r\n font-weight: 600;\r\n }\r\n }\r\n\r\n .close {\r\n cursor: pointer;\r\n color: #A0AEC0;\r\n font-size: 18px;\r\n padding: 4px;\r\n\r\n &:hover {\r\n color: $cDanger;\r\n }\r\n }\r\n }\r\n}\r\n\r\n// --- DataTables override ---\r\n.dt-layout-table {\r\n margin-bottom: 20px;\r\n}\r\n\r\n.pagination {\r\n button {\r\n border: 1px solid $cBorder;\r\n background: $cWhite;\r\n display: inline-flex;\r\n height: 32px;\r\n width: 32px;\r\n align-items: center;\r\n justify-content: center;\r\n margin: 0 2px;\r\n border-radius: 4px;\r\n transition: all 0.2s;\r\n cursor: pointer;\r\n\r\n &:hover {\r\n background: $cContentBg;\r\n border-color: $cPrimary;\r\n }\r\n }\r\n}\r\n\r\n// ===========================\r\n// PRODUCTS specific\r\n// ===========================\r\ntable#products {\r\n a {\r\n color: inherit;\r\n text-decoration: none;\r\n }\r\n\r\n .table-product-title {\r\n display: flex;\r\n justify-content: space-between;\r\n }\r\n\r\n .edit-product-title {\r\n display: flex;\r\n height: 25px;\r\n align-items: center;\r\n justify-content: center;\r\n width: 25px;\r\n cursor: pointer;\r\n background: $cWhite;\r\n border: 1px solid #CBD5E0;\r\n color: #CBD5E0;\r\n border-radius: 4px;\r\n\r\n &:hover {\r\n background: #CBD5E0;\r\n color: $cWhite;\r\n }\r\n }\r\n\r\n a.custom_name {\r\n color: $cGreenLight !important;\r\n }\r\n}\r\n\r\n// --- Product history ---\r\n.product-history-page {\r\n .product-history-meta {\r\n display: flex;\r\n flex-wrap: wrap;\r\n gap: 8px;\r\n margin-bottom: 14px;\r\n\r\n span {\r\n display: inline-flex;\r\n align-items: center;\r\n padding: 5px 10px;\r\n border-radius: 999px;\r\n font-size: 12px;\r\n font-weight: 600;\r\n color: $cText;\r\n background: #EEF2FF;\r\n border: 1px solid #D9E2FF;\r\n }\r\n }\r\n\r\n .product-history-chart-wrap {\r\n background: $cWhite;\r\n border-radius: 10px;\r\n box-shadow: 0 1px 4px rgba(0, 0, 0, 0.06);\r\n padding: 20px;\r\n margin-bottom: 16px;\r\n }\r\n\r\n .chart-with-form {\r\n display: flex;\r\n gap: 20px;\r\n align-items: flex-start;\r\n }\r\n\r\n .chart-area {\r\n flex: 1 1 auto;\r\n min-width: 0;\r\n }\r\n\r\n .product-history-chart {\r\n min-height: 360px;\r\n }\r\n\r\n .comment-form {\r\n width: 340px;\r\n flex: 0 0 340px;\r\n background: #F8FAFC;\r\n border: 1px solid $cBorder;\r\n border-radius: 10px;\r\n padding: 14px;\r\n\r\n .form-group {\r\n margin-bottom: 12px;\r\n }\r\n\r\n label {\r\n display: block;\r\n font-weight: 600;\r\n margin-bottom: 6px;\r\n font-size: 13px;\r\n color: #52606D;\r\n }\r\n\r\n input[type=\"date\"],\r\n textarea {\r\n width: 100%;\r\n border: 1px solid $cBorder;\r\n border-radius: 6px;\r\n padding: 8px 12px;\r\n font-size: 14px;\r\n font-family: \"Roboto\", sans-serif;\r\n background: $cWhite;\r\n\r\n &:focus {\r\n outline: none;\r\n border-color: $cPrimary;\r\n box-shadow: 0 0 0 3px rgba($cPrimary, 0.1);\r\n }\r\n }\r\n\r\n textarea {\r\n min-height: 110px;\r\n resize: vertical;\r\n }\r\n\r\n .btn {\r\n width: 100%;\r\n justify-content: center;\r\n padding: 10px 16px;\r\n }\r\n\r\n .btn[disabled] {\r\n opacity: 0.6;\r\n cursor: not-allowed;\r\n }\r\n }\r\n\r\n .products-table-wrap {\r\n overflow-x: auto;\r\n\r\n .table {\r\n min-width: 980px;\r\n }\r\n\r\n .comment-cell {\r\n display: flex;\r\n align-items: center;\r\n justify-content: space-between;\r\n gap: 10px;\r\n }\r\n\r\n .comment-text {\r\n word-break: break-word;\r\n }\r\n\r\n .delete-comment {\r\n color: $cDanger;\r\n text-decoration: none;\r\n font-weight: 600;\r\n white-space: nowrap;\r\n\r\n &:hover {\r\n text-decoration: underline;\r\n }\r\n }\r\n\r\n .dt-paging .pagination .page-item {\r\n list-style: none;\r\n }\r\n }\r\n}\r\n\r\n.cron-status-overview {\r\n display: flex;\r\n flex-wrap: wrap;\r\n gap: 10px 20px;\r\n margin-bottom: 20px;\r\n color: $cText;\r\n font-size: 13px;\r\n}\r\n\r\n.cron-progress-list {\r\n margin-bottom: 20px;\r\n}\r\n\r\n.cron-schedule-list {\r\n margin-bottom: 20px;\r\n}\r\n\r\n.cron-schedule-item {\r\n border: 1px solid #DFE7F0;\r\n background: #F4F8FD;\r\n border-radius: 8px;\r\n padding: 9px 12px;\r\n margin-bottom: 8px;\r\n\r\n &:last-child {\r\n margin-bottom: 0;\r\n }\r\n\r\n strong {\r\n display: block;\r\n color: $cTextDark;\r\n font-size: 13px;\r\n font-weight: 700;\r\n margin-bottom: 2px;\r\n }\r\n\r\n small {\r\n display: block;\r\n color: #667788;\r\n font-size: 12px;\r\n line-height: 1.35;\r\n }\r\n}\r\n\r\n.cron-progress-item {\r\n margin-bottom: 14px;\r\n\r\n &:last-child {\r\n margin-bottom: 0;\r\n }\r\n\r\n .cron-progress-head {\r\n display: flex;\r\n justify-content: space-between;\r\n align-items: center;\r\n gap: 12px;\r\n margin-bottom: 6px;\r\n font-size: 13px;\r\n\r\n strong {\r\n color: $cTextDark;\r\n font-weight: 600;\r\n }\r\n\r\n span {\r\n color: #6B7A89;\r\n font-size: 12px;\r\n font-weight: 600;\r\n white-space: nowrap;\r\n }\r\n }\r\n\r\n small {\r\n display: block;\r\n margin-top: 5px;\r\n color: #778899;\r\n font-size: 12px;\r\n }\r\n}\r\n\r\n.cron-progress-bar {\r\n width: 100%;\r\n height: 10px;\r\n border-radius: 999px;\r\n background: #E9EEF5;\r\n overflow: hidden;\r\n\r\n >span {\r\n display: block;\r\n height: 100%;\r\n background: linear-gradient(90deg, #5A9BFF 0%, #2E6BDF 100%);\r\n }\r\n}\r\n\r\n.cron-url-list {\r\n margin-bottom: 20px;\r\n}\r\n\r\n.cron-url-item {\r\n border: 1px solid $cBorder;\r\n border-radius: 8px;\r\n background: #F8FAFC;\r\n padding: 10px 12px;\r\n margin-bottom: 10px;\r\n\r\n &:last-child {\r\n margin-bottom: 0;\r\n }\r\n\r\n .cron-url-top {\r\n display: flex;\r\n justify-content: space-between;\r\n align-items: center;\r\n gap: 8px;\r\n margin-bottom: 6px;\r\n\r\n strong {\r\n color: $cTextDark;\r\n font-size: 13px;\r\n font-weight: 600;\r\n }\r\n\r\n small {\r\n color: #7A8794;\r\n font-size: 11px;\r\n white-space: nowrap;\r\n }\r\n }\r\n\r\n code {\r\n display: block;\r\n background: #EEF2F7;\r\n border: 1px solid #DDE4ED;\r\n border-radius: 6px;\r\n padding: 6px 8px;\r\n color: #2E3B49;\r\n font-size: 12px;\r\n overflow-x: auto;\r\n }\r\n\r\n .cron-url-plan {\r\n display: block;\r\n color: #6C7B8A;\r\n font-size: 11px;\r\n margin-bottom: 6px;\r\n }\r\n}\r\n\r\n@media (max-width: 1200px) {\r\n .product-history-page {\r\n .chart-with-form {\r\n flex-direction: column;\r\n }\r\n\r\n .comment-form {\r\n width: 100%;\r\n flex: 1 1 auto;\r\n }\r\n }\r\n}\r\n\r\n// --- Select2 w modalu ---\r\n.jconfirm-box .form-group .select2-container,\r\n.adspro-dialog-box .form-group .select2-container {\r\n width: 100% !important;\r\n margin-top: 8px;\r\n}\r\n\r\n.jconfirm-box .select2-container--default .select2-selection--single,\r\n.adspro-dialog-box .select2-container--default .select2-selection--single {\r\n background-color: $cWhite;\r\n border: 1px solid $cBorder;\r\n border-radius: 6px;\r\n min-height: 42px;\r\n display: flex;\r\n align-items: center;\r\n padding: 4px 12px;\r\n box-shadow: none;\r\n transition: border-color 0.2s, box-shadow 0.2s;\r\n font-size: 14px;\r\n}\r\n\r\n.jconfirm-box .select2-container--default .select2-selection--single .select2-selection__rendered,\r\n.adspro-dialog-box .select2-container--default .select2-selection--single .select2-selection__rendered {\r\n padding-left: 0;\r\n line-height: 1.4;\r\n color: #495057;\r\n}\r\n\r\n.jconfirm-box .select2-container--default .select2-selection--single .select2-selection__placeholder,\r\n.adspro-dialog-box .select2-container--default .select2-selection--single .select2-selection__placeholder {\r\n color: #CBD5E0;\r\n}\r\n\r\n.jconfirm-box .select2-container--default .select2-selection--single .select2-selection__arrow,\r\n.adspro-dialog-box .select2-container--default .select2-selection--single .select2-selection__arrow {\r\n height: 100%;\r\n right: 8px;\r\n}\r\n\r\n.jconfirm-box .select2-container--default.select2-container--focus .select2-selection--single,\r\n.jconfirm-box .select2-container--default .select2-selection--single:hover,\r\n.adspro-dialog-box .select2-container--default.select2-container--focus .select2-selection--single,\r\n.adspro-dialog-box .select2-container--default .select2-selection--single:hover {\r\n border-color: $cPrimary;\r\n box-shadow: 0 0 0 3px rgba($cPrimary, 0.1);\r\n outline: 0;\r\n}\r\n\r\n.jconfirm-box .select2-container .select2-dropdown,\r\n.adspro-dialog-box .select2-container .select2-dropdown {\r\n border-color: $cBorder;\r\n border-radius: 0 0 6px 6px;\r\n font-size: 14px;\r\n}\r\n\r\n.jconfirm-box .select2-container .select2-search--dropdown .select2-search__field,\r\n.adspro-dialog-box .select2-container .select2-search--dropdown .select2-search__field {\r\n padding: 6px 10px;\r\n border-radius: 4px;\r\n border: 1px solid $cBorder;\r\n font-size: 14px;\r\n}\r\n\r\n.jconfirm-box .select2-container--default .select2-results__option--highlighted[aria-selected],\r\n.adspro-dialog-box .select2-container--default .select2-results__option--highlighted[aria-selected] {\r\n background-color: $cPrimary;\r\n color: $cWhite;\r\n}\r\n\r\n// ===========================\r\n// RESPONSYWNOŚĆ\r\n// ===========================\r\n@media (max-width: 992px) {\r\n .sidebar {\r\n transform: translateX(-100%);\r\n\r\n &.mobile-open {\r\n transform: translateX(0);\r\n }\r\n }\r\n\r\n .main-wrapper {\r\n margin-left: 0 !important;\r\n }\r\n}\r\n\r\n// ===========================\r\n// CAMPAIGN TERMS VIEW\r\n// ===========================\r\n.campaign-terms-wrap {\r\n display: flex;\r\n flex-direction: column;\r\n gap: 20px;\r\n margin-top: 20px;\r\n}\r\n\r\n.campaign-terms-page {\r\n max-width: 100%;\r\n overflow: hidden;\r\n\r\n .campaigns-filters {\r\n flex-wrap: wrap;\r\n\r\n .filter-group {\r\n min-width: 220px;\r\n\r\n &.terms-columns-group {\r\n min-width: 280px;\r\n }\r\n }\r\n }\r\n\r\n .terms-card-toggle {\r\n margin-left: auto;\r\n width: 28px;\r\n height: 28px;\r\n border: 1px solid #E2E8F0;\r\n border-radius: 6px;\r\n background: #FFFFFF;\r\n color: #475569;\r\n display: inline-flex;\r\n align-items: center;\r\n justify-content: center;\r\n cursor: pointer;\r\n transition: all 0.2s;\r\n\r\n &:hover {\r\n background: #F8FAFC;\r\n border-color: #CBD5E1;\r\n }\r\n }\r\n\r\n .terms-adgroups-card.is-collapsed .campaigns-extra-table-wrap {\r\n display: none;\r\n }\r\n\r\n .terms-search-toolbar {\r\n display: flex;\r\n align-items: center;\r\n gap: 10px;\r\n padding: 10px 12px;\r\n border-bottom: 1px solid #EEF2F7;\r\n background: #FFFFFF;\r\n\r\n label {\r\n font-size: 12px;\r\n font-weight: 600;\r\n color: #475569;\r\n display: inline-flex;\r\n align-items: center;\r\n gap: 6px;\r\n margin: 0;\r\n white-space: nowrap;\r\n }\r\n\r\n .terms-search-toolbar-label {\r\n min-width: 86px;\r\n }\r\n\r\n #terms_min_clicks_all,\r\n #terms_max_clicks_all {\r\n width: 160px;\r\n height: 32px;\r\n }\r\n\r\n #terms_min_conversions_all,\r\n #terms_max_conversions_all {\r\n width: 130px;\r\n max-width: 130px;\r\n }\r\n }\r\n\r\n .terms-search-selected-label {\r\n margin: 0;\r\n font-size: 12px;\r\n color: #475569;\r\n font-weight: 600;\r\n white-space: nowrap;\r\n }\r\n\r\n .terms-ai-analyze-btn {\r\n margin-left: auto;\r\n display: inline-flex;\r\n align-items: center;\r\n gap: 6px;\r\n height: 32px;\r\n padding: 0 12px;\r\n border-radius: 6px;\r\n border: 1px solid #BFDBFE;\r\n background: #EFF6FF;\r\n color: #1D4ED8;\r\n font-size: 12px;\r\n font-weight: 600;\r\n cursor: pointer;\r\n transition: all 0.2s;\r\n\r\n &:hover {\r\n background: #DBEAFE;\r\n border-color: #93C5FD;\r\n }\r\n\r\n &:disabled {\r\n opacity: 0.6;\r\n cursor: wait;\r\n }\r\n }\r\n\r\n .terms-negative-toolbar {\r\n display: flex;\r\n align-items: center;\r\n gap: 10px;\r\n padding: 10px 12px;\r\n border-bottom: 1px solid #EEF2F7;\r\n background: #FFFFFF;\r\n }\r\n\r\n .terms-negative-bulk-btn {\r\n display: inline-flex;\r\n align-items: center;\r\n gap: 6px;\r\n height: 32px;\r\n padding: 0 12px;\r\n border-radius: 6px;\r\n border: 1px solid #FECACA;\r\n background: #FEF2F2;\r\n color: #DC2626;\r\n font-size: 12px;\r\n font-weight: 600;\r\n cursor: pointer;\r\n transition: all 0.2s;\r\n\r\n &:hover {\r\n background: #FEE2E2;\r\n border-color: #FCA5A5;\r\n }\r\n\r\n &:disabled {\r\n opacity: 0.5;\r\n cursor: not-allowed;\r\n }\r\n }\r\n\r\n table.campaigns-extra-table>thead>tr>th {\r\n position: sticky;\r\n top: 0;\r\n z-index: 2;\r\n background-color: #111827 !important;\r\n color: #E5E7EB !important;\r\n border-bottom: 1px solid #0B1220 !important;\r\n font-size: 12px;\r\n font-weight: 700;\r\n text-transform: uppercase;\r\n letter-spacing: .4px;\r\n padding: 10px 12px;\r\n white-space: nowrap;\r\n }\r\n\r\n #terms_search_table thead th .dt-column-order,\r\n #terms_negative_table thead th .dt-column-order {\r\n display: none !important;\r\n }\r\n\r\n #terms_search_table thead th.dt-orderable-asc,\r\n #terms_search_table thead th.dt-orderable-desc,\r\n #terms_negative_table thead th.dt-orderable-asc,\r\n #terms_negative_table thead th.dt-orderable-desc {\r\n cursor: pointer;\r\n padding-right: 34px;\r\n overflow: hidden;\r\n }\r\n\r\n #terms_search_table thead th .dt-column-title,\r\n #terms_negative_table thead th .dt-column-title {\r\n display: block;\r\n overflow: hidden;\r\n text-overflow: ellipsis;\r\n padding-right: 2px;\r\n }\r\n\r\n #terms_search_table thead th.dt-orderable-asc::after,\r\n #terms_search_table thead th.dt-orderable-desc::after,\r\n #terms_negative_table thead th.dt-orderable-asc::after,\r\n #terms_negative_table thead th.dt-orderable-desc::after {\r\n content: '\\2195';\r\n position: absolute;\r\n right: 10px;\r\n top: 50%;\r\n transform: translateY(-50%);\r\n width: 16px;\r\n height: 16px;\r\n border-radius: 999px;\r\n font-size: 12px;\r\n font-weight: 700;\r\n line-height: 16px;\r\n text-align: center;\r\n color: #E5E7EB;\r\n background: #374151;\r\n }\r\n\r\n #terms_search_table thead th.dt-ordering-asc::after,\r\n #terms_negative_table thead th.dt-ordering-asc::after,\r\n #terms_search_table thead th[aria-sort=\"ascending\"]::after,\r\n #terms_negative_table thead th[aria-sort=\"ascending\"]::after {\r\n content: '\\25B2';\r\n color: #FFFFFF;\r\n background: #2563EB;\r\n }\r\n\r\n #terms_search_table thead th.dt-ordering-desc::after,\r\n #terms_negative_table thead th.dt-ordering-desc::after,\r\n #terms_search_table thead th[aria-sort=\"descending\"]::after,\r\n #terms_negative_table thead th[aria-sort=\"descending\"]::after {\r\n content: '\\25BC';\r\n color: #FFFFFF;\r\n background: #2563EB;\r\n }\r\n\r\n #terms_negative_select_all,\r\n .terms-negative-select-row,\r\n #terms_search_select_all,\r\n .terms-search-select-row {\r\n width: 14px;\r\n height: 14px;\r\n cursor: pointer;\r\n }\r\n\r\n .dt-layout-row:first-child {\r\n display: none;\r\n }\r\n\r\n .dt-layout-row {\r\n padding: 10px 12px;\r\n margin: 0 !important;\r\n border-top: 1px solid #F1F5F9;\r\n }\r\n\r\n .dt-info {\r\n font-size: 12px;\r\n color: #64748B;\r\n }\r\n\r\n .dt-paging .pagination {\r\n margin: 0;\r\n padding: 0;\r\n list-style: none !important;\r\n display: flex;\r\n align-items: center;\r\n gap: 6px;\r\n\r\n .page-item {\r\n list-style: none !important;\r\n\r\n .page-link {\r\n display: inline-flex;\r\n align-items: center;\r\n justify-content: center;\r\n min-width: 36px;\r\n width: fit-content;\r\n height: 32px;\r\n padding: 0 12px;\r\n border-radius: 6px;\r\n font-size: 12px;\r\n font-weight: 500;\r\n border: 1px solid #E2E8F0;\r\n background: #FFFFFF;\r\n color: #4E5E6A;\r\n text-decoration: none;\r\n line-height: 1;\r\n white-space: nowrap;\r\n\r\n &:hover {\r\n background: #EEF2FF;\r\n color: #6690F4;\r\n border-color: #6690F4;\r\n }\r\n }\r\n\r\n &.previous .page-link,\r\n &.next .page-link {\r\n min-width: 72px;\r\n }\r\n\r\n &.active .page-link {\r\n background: #6690F4;\r\n color: #FFFFFF;\r\n border-color: #6690F4;\r\n }\r\n\r\n &.disabled .page-link {\r\n opacity: 0.35;\r\n cursor: default;\r\n pointer-events: none;\r\n }\r\n }\r\n }\r\n}\r\n\r\n.terms-columns-box {\r\n display: flex;\r\n flex-direction: column;\r\n gap: 6px;\r\n}\r\n\r\n.terms-columns-control {\r\n border: 1px solid #E2E8F0;\r\n border-radius: 6px;\r\n background: #FFFFFF;\r\n overflow: hidden;\r\n\r\n summary {\r\n cursor: pointer;\r\n padding: 8px 10px;\r\n font-size: 12px;\r\n font-weight: 600;\r\n color: #334155;\r\n list-style: none;\r\n\r\n &::-webkit-details-marker {\r\n display: none;\r\n }\r\n\r\n &::after {\r\n content: '\\25BC';\r\n float: right;\r\n font-size: 10px;\r\n color: #64748B;\r\n margin-top: 2px;\r\n }\r\n }\r\n\r\n &[open] summary::after {\r\n content: '\\25B2';\r\n }\r\n}\r\n\r\n.terms-columns-list {\r\n border-top: 1px solid #EEF2F7;\r\n padding: 8px 10px;\r\n max-height: 180px;\r\n overflow-y: auto;\r\n\r\n .terms-col-item {\r\n display: flex;\r\n align-items: center;\r\n gap: 8px;\r\n font-size: 12px;\r\n color: #334155;\r\n margin-bottom: 6px;\r\n\r\n &:last-child {\r\n margin-bottom: 0;\r\n }\r\n\r\n input[type=checkbox] {\r\n margin: 0;\r\n }\r\n }\r\n}\r\n\r\n.campaigns-extra-card {\r\n background: #FFFFFF;\r\n border-radius: 10px;\r\n box-shadow: 0 1px 4px rgba(0, 0, 0, 0.06);\r\n overflow: hidden;\r\n}\r\n\r\n.campaigns-extra-card-title {\r\n padding: 14px 16px;\r\n border-bottom: 1px solid #E2E8F0;\r\n font-size: 13px;\r\n font-weight: 700;\r\n color: #334155;\r\n display: flex;\r\n align-items: center;\r\n gap: 8px;\r\n\r\n .terms-card-title-label {\r\n display: inline-flex;\r\n align-items: center;\r\n gap: 8px;\r\n }\r\n}\r\n\r\n.campaigns-extra-table-wrap {\r\n overflow: auto;\r\n}\r\n\r\n.campaigns-extra-table {\r\n margin: 0;\r\n width: 100%;\r\n table-layout: fixed;\r\n\r\n tbody td {\r\n padding: 9px 12px;\r\n border-bottom: 1px solid #F1F5F9;\r\n font-size: 13px;\r\n color: #334155;\r\n vertical-align: middle;\r\n white-space: nowrap;\r\n }\r\n\r\n td.num-cell {\r\n text-align: right;\r\n white-space: nowrap;\r\n }\r\n\r\n td.text-cell {\r\n white-space: nowrap;\r\n overflow: hidden;\r\n text-overflow: ellipsis;\r\n }\r\n\r\n th.terms-negative-select-cell,\r\n td.terms-negative-select-cell,\r\n th.terms-search-select-cell,\r\n td.terms-search-select-cell {\r\n text-align: center;\r\n }\r\n\r\n th.phrase-nowrap,\r\n td.phrase-nowrap {\r\n white-space: nowrap !important;\r\n overflow: hidden;\r\n text-overflow: ellipsis;\r\n }\r\n\r\n .terms-add-negative-btn,\r\n .terms-remove-negative-btn {\r\n display: inline-flex;\r\n align-items: center;\r\n justify-content: center;\r\n width: 28px;\r\n height: 28px;\r\n border-radius: 6px;\r\n cursor: pointer;\r\n transition: all 0.2s;\r\n }\r\n\r\n .terms-add-negative-btn {\r\n border: 1px solid #E2E8F0;\r\n background: #EEF2FF;\r\n color: #3B82F6;\r\n\r\n &:hover {\r\n background: #3B82F6;\r\n color: #FFFFFF;\r\n border-color: #3B82F6;\r\n }\r\n }\r\n\r\n .terms-remove-negative-btn {\r\n border: 1px solid #FECACA;\r\n background: #FEF2F2;\r\n color: #DC2626;\r\n\r\n &:hover {\r\n background: #DC2626;\r\n color: #FFFFFF;\r\n border-color: #DC2626;\r\n }\r\n }\r\n\r\n tbody tr:hover {\r\n background: #F8FAFC;\r\n }\r\n\r\n tbody tr.term-is-negative td {\r\n color: #DC2626;\r\n }\r\n\r\n tbody tr.term-is-negative:hover {\r\n background: #FEF2F2;\r\n }\r\n}\r\n\r\n.campaigns-empty-row {\r\n text-align: center;\r\n color: #94A3B8 !important;\r\n font-style: italic;\r\n}\r\n\r\n.terms-ai-modal-toolbar {\r\n display: flex;\r\n align-items: center;\r\n gap: 10px;\r\n margin-bottom: 10px;\r\n\r\n label {\r\n font-size: 12px;\r\n font-weight: 600;\r\n color: #334155;\r\n margin: 0;\r\n }\r\n\r\n .form-control {\r\n width: 200px;\r\n height: 32px;\r\n }\r\n}\r\n\r\n.terms-ai-summary {\r\n font-size: 12px;\r\n color: #64748B;\r\n margin-bottom: 10px;\r\n}\r\n\r\n.terms-ai-results-wrap {\r\n border: 1px solid #E2E8F0;\r\n border-radius: 8px;\r\n max-height: 420px;\r\n overflow: auto;\r\n}\r\n\r\n.terms-ai-results-table {\r\n width: 100%;\r\n border-collapse: collapse;\r\n font-size: 12px;\r\n\r\n th,\r\n td {\r\n border-bottom: 1px solid #EEF2F7;\r\n padding: 8px;\r\n vertical-align: middle;\r\n }\r\n\r\n th {\r\n position: sticky;\r\n top: 0;\r\n background: #F8FAFC;\r\n color: #334155;\r\n font-weight: 700;\r\n }\r\n\r\n td.term-col {\r\n min-width: 260px;\r\n max-width: 380px;\r\n white-space: nowrap;\r\n overflow: hidden;\r\n text-overflow: ellipsis;\r\n }\r\n\r\n td.reason-col {\r\n min-width: 320px;\r\n }\r\n}\r\n\r\n.terms-ai-action-badge {\r\n display: inline-flex;\r\n align-items: center;\r\n justify-content: center;\r\n border-radius: 999px;\r\n padding: 2px 8px;\r\n font-size: 11px;\r\n font-weight: 700;\r\n\r\n &.action-exclude {\r\n background: #FEE2E2;\r\n color: #B91C1C;\r\n }\r\n\r\n &.action-keep {\r\n background: #DCFCE7;\r\n color: #166534;\r\n }\r\n}\r\n\r\n// ===========================\r\n// PRODUCTS VIEW (INLINE MOVED)\r\n// ===========================\r\n.products-page .products-filters .filter-group.filter-group-columns {\r\n min-width: 240px;\r\n}\r\n\r\n.products-columns-control {\r\n border: 1px solid #E2E8F0;\r\n border-radius: 6px;\r\n background: #FFFFFF;\r\n overflow: hidden;\r\n\r\n summary {\r\n cursor: pointer;\r\n padding: 8px 10px;\r\n font-size: 12px;\r\n font-weight: 600;\r\n color: #334155;\r\n list-style: none;\r\n\r\n &::-webkit-details-marker {\r\n display: none;\r\n }\r\n\r\n &::after {\r\n content: '\\25BC';\r\n float: right;\r\n font-size: 10px;\r\n color: #64748B;\r\n margin-top: 2px;\r\n }\r\n }\r\n\r\n &[open] summary::after {\r\n content: '\\25B2';\r\n }\r\n}\r\n\r\n.products-columns-list {\r\n border-top: 1px solid #EEF2F7;\r\n padding: 8px 10px;\r\n max-height: 220px;\r\n overflow-y: auto;\r\n\r\n .products-col-item {\r\n display: flex;\r\n align-items: center;\r\n gap: 8px;\r\n font-size: 12px;\r\n color: #334155;\r\n margin-bottom: 6px;\r\n\r\n &:last-child {\r\n margin-bottom: 0;\r\n }\r\n\r\n input[type=checkbox] {\r\n margin: 0;\r\n }\r\n }\r\n}\r\n\r\n#products {\r\n\r\n th:last-child,\r\n td:last-child {\r\n white-space: nowrap;\r\n }\r\n\r\n .products-row-actions {\r\n display: inline-flex;\r\n align-items: center;\r\n gap: 4px;\r\n\r\n .btn {\r\n width: 38px;\r\n height: 32px;\r\n padding: 0;\r\n display: inline-flex;\r\n align-items: center;\r\n justify-content: center;\r\n border-radius: 4px !important;\r\n\r\n i {\r\n line-height: 1;\r\n }\r\n }\r\n }\r\n}\r\n\r\n// ===========================\r\n// LOGS PAGE\r\n// ===========================\r\n.logs-page {\r\n .logs-header {\r\n display: flex;\r\n justify-content: space-between;\r\n align-items: center;\r\n margin-bottom: 20px;\r\n\r\n h2 {\r\n margin: 0;\r\n font-size: 20px;\r\n font-weight: 600;\r\n color: $cTextDark;\r\n }\r\n }\r\n\r\n .logs-filters {\r\n display: flex;\r\n flex-wrap: wrap;\r\n align-items: flex-end;\r\n gap: 14px;\r\n margin-bottom: 16px;\r\n\r\n .filter-group {\r\n flex: 1 1 160px;\r\n min-width: 0;\r\n max-width: 220px;\r\n\r\n label {\r\n display: block;\r\n font-size: 12px;\r\n font-weight: 700;\r\n text-transform: uppercase;\r\n letter-spacing: 0.5px;\r\n color: #8899A6;\r\n margin-bottom: 6px;\r\n }\r\n\r\n .form-control {\r\n width: 100%;\r\n padding: 8px 12px;\r\n border: 1px solid $cBorder;\r\n border-radius: 8px;\r\n font-size: 14px;\r\n color: $cTextDark;\r\n background: $cWhite;\r\n transition: border-color 0.2s;\r\n\r\n &:focus {\r\n outline: none;\r\n border-color: $cPrimary;\r\n box-shadow: 0 0 0 3px rgba($cPrimary, 0.1);\r\n }\r\n }\r\n\r\n select.form-control {\r\n appearance: none;\r\n -webkit-appearance: none;\r\n background-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%238899A6' d='M6 8L1 3h10z'/%3E%3C/svg%3E\");\r\n background-repeat: no-repeat;\r\n background-position: right 12px center;\r\n padding-right: 32px;\r\n }\r\n\r\n &.filter-group-buttons {\r\n flex: 0 0 auto;\r\n display: flex;\r\n gap: 6px;\r\n max-width: none;\r\n }\r\n }\r\n }\r\n\r\n .logs-table-wrap {\r\n .table {\r\n width: 100%;\r\n }\r\n }\r\n\r\n .badge {\r\n display: inline-block;\r\n padding: 3px 8px;\r\n border-radius: 4px;\r\n font-size: 11px;\r\n font-weight: 700;\r\n text-transform: uppercase;\r\n letter-spacing: 0.3px;\r\n }\r\n\r\n .badge-success {\r\n background: #D1FAE5;\r\n color: #065F46;\r\n }\r\n\r\n .badge-danger {\r\n background: #FEE2E2;\r\n color: #991B1B;\r\n }\r\n\r\n .badge-warning {\r\n background: #FEF3C7;\r\n color: #92400E;\r\n }\r\n}\r\n\r\n.js-title-alt-apply {\r\n color: #000;\r\n justify-content: flex-start;\r\n}"]} \ No newline at end of file +{"version":3,"sources":["style.css","style.scss"],"names":[],"mappings":"AAAA,EC4BA,qBACE,CAAA,KAGF,+BACE,CAAA,QACA,CAAA,SACA,CAAA,cACA,CAAA,aAxBM,CAAA,kBAFK,CAAA,eA6BX,CAAA,iBACA,CAAA,MAGF,YACE,CAAA,MAIF,eACE,CAAA,YAGF,gBACE,CAAA,WAGF,0BACE,CAAA,QAGF,kBACE,CAAA,cAMF,kBAzDa,CAAA,QA2DX,CAAA,SACA,CAAA,iBAGF,YACE,CAAA,gBACA,CAAA,aAGF,YACE,CAAA,yEACA,CAAA,YACA,CAAA,kBACA,CAAA,sBACA,CAAA,YACA,CAAA,iBACA,CAAA,eACA,CAAA,qBAEA,UACE,CAAA,iBACA,CAAA,QACA,CAAA,UACA,CAAA,UACA,CAAA,WACA,CAAA,iFACA,CAAA,iBACA,CAAA,4BAGF,iBACE,CAAA,SACA,CAAA,UA1FK,CAAA,eA4FL,CAAA,yBAGF,cACE,CAAA,eACA,CAAA,kBACA,CAAA,mBACA,CAAA,gCAEA,eACE,CAAA,4BAIJ,cACE,CAAA,WACA,CAAA,eACA,CAAA,kBACA,CAAA,sCAIA,YACE,CAAA,kBACA,CAAA,QACA,CAAA,kBACA,CAAA,UACA,CAAA,wCAEA,cACE,CAAA,UACA,CAAA,WACA,CAAA,YACA,CAAA,kBACA,CAAA,sBACA,CAAA,6BACA,CAAA,kBACA,CAAA,2CAGF,cACE,CAAA,oBAMR,MACE,CAAA,YACA,CAAA,kBACA,CAAA,sBACA,CAAA,YACA,CAAA,eAhJO,CAAA,WAoJT,UACE,CAAA,eACA,CAAA,yBAEA,kBACE,CAAA,4BAEA,cACE,CAAA,eACA,CAAA,aA3JM,CAAA,cA6JN,CAAA,2BAGF,aACE,CAAA,cACA,CAAA,QACA,CAAA,uBAIJ,kBACE,CAAA,6BAEA,aACE,CAAA,cACA,CAAA,eACA,CAAA,aA7KM,CAAA,iBA+KN,CAAA,4BAIJ,iBACE,CAAA,8BAEA,iBACE,CAAA,SACA,CAAA,OACA,CAAA,0BACA,CAAA,aACA,CAAA,cACA,CAAA,0CAGF,iBACE,CAAA,yBAIJ,UACE,CAAA,WACA,CAAA,wBACA,CAAA,iBACA,CAAA,cACA,CAAA,cACA,CAAA,+BACA,CAAA,aA3MQ,CAAA,0CA6MR,CAAA,2CAEA,aACE,CAHF,sCAEA,aACE,CAAA,+BAGF,oBA5NO,CAAA,0CA8NL,CAAA,YACA,CAAA,uBAIJ,UAtNQ,CAAA,cAwNN,CAAA,cACA,CAAA,2CAIA,YACE,CAAA,kBACA,CAAA,OACA,CAAA,cACA,CAAA,cACA,CAAA,aACA,CAAA,eACA,CAAA,gEAEA,UACE,CAAA,WACA,CAAA,oBArPG,CAAA,sBA2PT,UACE,CAAA,WACA,CAAA,cACA,CAAA,eACA,CAAA,iBACA,CAAA,YACA,CAAA,kBACA,CAAA,sBACA,CAAA,OACA,CAAA,+BAEA,UACE,CAAA,mBACA,CAAA,kBAIJ,YACE,CAAA,iBACA,CAAA,iBACA,CAAA,cACA,CAAA,kBACA,CAAA,+BAEA,kBACE,CAAA,UAvQI,CAAA,wBAyQJ,CAAA,gCAGF,kBACE,CAAA,aACA,CAAA,wBACA,CAAA,yBAMN,aACE,YACE,CAAA,oBAGF,iBACE,CAAA,CAAA,YAOJ,YACE,CAAA,gBACA,CAAA,kBA3SW,CAAA,SAgTb,WApSe,CAAA,gBAsSb,CAAA,kBAtTW,CAAA,cAwTX,CAAA,KACA,CAAA,MACA,CAAA,YACA,CAAA,YACA,CAAA,qBACA,CAAA,yBACA,CAAA,eACA,CAAA,mBAEA,UAhTiB,CAAA,mCAmTf,cACE,CAAA,sBACA,CAAA,iDAEA,YACE,CAAA,qDAGF,wBACE,CAAA,wCAIJ,cACE,CAAA,sBACA,CAAA,6CAEA,YACE,CAAA,0CAGF,cACE,CAAA,cACA,CAAA,iEAIJ,cACE,CAAA,sBACA,CAAA,sEAEA,YACE,CAAA,mEAGF,cACE,CAAA,cACA,CAAA,iDAKF,sBACE,CAAA,4DAEA,YACE,CAAA,mDAIJ,sBACE,CAAA,wDAEA,YACE,CAAA,gCAKN,eACE,CAAA,gBAKN,YACE,CAAA,kBACA,CAAA,6BACA,CAAA,sBACA,CAAA,2CACA,CAAA,gCAEA,UAvYO,CAAA,oBAyYL,CAAA,cACA,CAAA,eACA,CAAA,qBACA,CAAA,uCAEA,eACE,CAAA,gCAIJ,eACE,CAAA,WACA,CAAA,aAzZW,CAAA,cA2ZX,CAAA,WACA,CAAA,iBACA,CAAA,kBACA,CAAA,sCAEA,8BACE,CAAA,UA7ZG,CAAA,kCAiaL,wBACE,CAAA,aAKN,MACE,CAAA,cACA,CAAA,eACA,CAAA,gBAEA,eACE,CAAA,QACA,CAAA,SACA,CAAA,6BAGE,iBACE,CAAA,8CAEA,YACE,CAAA,kBACA,CAAA,iBACA,CAAA,aACA,CAAA,cACA,CAAA,eACA,CAAA,wBACA,CAAA,mBACA,CAAA,mCACA,CAAA,gDAEA,UACE,CAAA,iBACA,CAAA,iBACA,CAAA,cACA,CAAA,aACA,CAAA,0CAIJ,QACE,CAAA,SACA,CAAA,eACA,CAAA,+CAEA,iBACE,CAAA,qDAIJ,UAndC,CAAA,gCAqdC,CAAA,yBA5dC,CAAA,uDA+dD,aA/dC,CAAA,+BAqeL,UACE,CAAA,8BACA,CAAA,eACA,CAAA,qBAGF,YACE,CAAA,kBACA,CAAA,iBACA,CAAA,aA3eO,CAAA,oBA6eP,CAAA,cACA,CAAA,kBACA,CAAA,mCACA,CAAA,uBAEA,UACE,CAAA,iBACA,CAAA,iBACA,CAAA,cACA,CAAA,2BAGF,kBAxfQ,CAAA,UAGP,CAAA,4BA2fH,gCACE,CAAA,UA5fC,CAAA,yBAPE,CAAA,8BAugBH,aAvgBG,CAAA,oBA+gBX,mBACE,CAAA,kBACA,CAAA,sBACA,CAAA,cACA,CAAA,WACA,CAAA,aACA,CAAA,eACA,CAAA,iBACA,CAAA,cACA,CAAA,eACA,CAAA,aACA,CAAA,eAnhBO,CAAA,aAPE,CAAA,gBA+hBX,iBACE,CAAA,wCACA,CAAA,8BAEA,YACE,CAAA,kBACA,CAAA,QACA,CAAA,kBACA,CAAA,2CAEA,UACE,CAAA,WACA,CAAA,iBACA,CAAA,+BACA,CAAA,YACA,CAAA,kBACA,CAAA,sBACA,CAAA,aAhjBK,CAAA,cAkjBL,CAAA,aACA,CAAA,yCAGF,eACE,CAAA,qDAEA,aAtjBS,CAAA,cAwjBP,CAAA,aACA,CAAA,kBACA,CAAA,eACA,CAAA,sBACA,CAAA,gCAKN,YACE,CAAA,kBACA,CAAA,OACA,CAAA,aACA,CAAA,oBACA,CAAA,cACA,CAAA,gBACA,CAAA,iBACA,CAAA,kBACA,CAAA,kCAEA,cACE,CAAA,sCAGF,6BACE,CAAA,cAMN,iBAxkBe,CAAA,MA0kBb,CAAA,gBACA,CAAA,+BACA,CAAA,YACA,CAAA,qBACA,CAAA,uBAEA,gBA/kBiB,CAAA,QAqlBnB,WAplBe,CAAA,eAbN,CAAA,+BAomBP,CAAA,YACA,CAAA,kBACA,CAAA,cACA,CAAA,eACA,CAAA,KACA,CAAA,WACA,CAAA,uBAEA,eACE,CAAA,WACA,CAAA,aA7mBI,CAAA,cA+mBJ,CAAA,gBACA,CAAA,iBACA,CAAA,cACA,CAAA,iBACA,CAAA,kBACA,CAAA,6BAEA,kBAxnBS,CAAA,2BA6nBX,cACE,CAAA,eACA,CAAA,aA5nBQ,CAAA,SAkoBZ,MACE,CAAA,YACA,CAAA,WAGF,kBACE,CAAA,wBACA,CAAA,aACA,CAAA,iBACA,CAAA,iBACA,CAAA,kBACA,CAAA,cACA,CAAA,KAQF,iBACE,CAAA,uBACA,CAAA,UA1pBO,CAAA,QA4pBP,CAAA,iBACA,CAAA,cACA,CAAA,mBACA,CAAA,oBACA,CAAA,OACA,CAAA,sBACA,CAAA,kBACA,CAAA,cACA,CAAA,+BACA,CAAA,eACA,CAAA,uCAEA,gBAGE,CAAA,cACA,CAAA,6CAEA,cACE,CAAA,iBAIJ,kBA/qBS,CAAA,uBAkrBP,kBAjrBW,CAAA,iBAsrBb,kBAlsBS,CAAA,uBAqsBP,kBApsBW,CAAA,gBAysBb,eA7rBQ,CAAA,sBAgsBN,kBA/rBU,CAAA,cAosBZ,UACE,CAAA,mBACA,CAAA,cAKJ,wBACE,CAAA,iBACA,CAAA,WACA,CAAA,UACA,CAAA,gBACA,CAAA,+BACA,CAAA,cACA,CAAA,aAvtBU,CAAA,0CAytBV,CAAA,qBAEA,WACE,CAAA,oBAGF,oBAxuBS,CAAA,yCA0uBP,CAAA,YACA,CAAA,qBAIJ,wBACE,CAAA,MAIF,wBACE,CAAA,cACA,CAAA,OAGF,UACE,CAAA,oBAEA,wBAEE,CAAA,gBACA,CAAA,UAGF,kBACE,CAAA,eACA,CAAA,cACA,CAAA,wBACA,CAAA,oBACA,CAAA,aACA,CAAA,iBAGF,iBACE,CAAA,eAGF,eACE,CAAA,mBAGF,sBACE,CAAA,0BAGF,cACE,CAAA,WACA,CAAA,gFAKJ,eAvxBS,CAAA,kBA4xBP,CAAA,oCACA,CAAA,eACA,CAAA,cACA,CAAA,uBACA,CAAA,oBACA,CAAA,4JAEA,YACE,CAAA,4GAGF,QACE,CAAA,qBACA,CAAA,gJAEA,kBACE,CAAA,+BACA,CAAA,cACA,CAAA,eACA,CAAA,wBACA,CAAA,mBACA,CAAA,aACA,CAAA,iBACA,CAAA,kBACA,CAAA,gJAGF,iBACE,CAAA,cACA,CAAA,aAvzBM,CAAA,qBAyzBN,CAAA,+BACA,CAAA,oLAGF,kBACE,CAAA,4IAIJ,iBACE,CAAA,mBACA,CAAA,4BACA,CAAA,4LAEA,YACE,CAAA,oHAIJ,cACE,CAAA,aACA,CAAA,4KAIA,QACE,CAAA,SACA,CAAA,eACA,CAAA,YACA,CAAA,kBACA,CAAA,OACA,CAAA,oQAGE,mBACE,CAAA,kBACA,CAAA,sBACA,CAAA,cACA,CAAA,sBACA,CADA,iBACA,CAAA,WACA,CAAA,cACA,CAAA,iBACA,CAAA,cACA,CAAA,eACA,CAAA,wBACA,CAAA,eAx2BD,CAAA,aACD,CAAA,cA02BE,CAAA,kBACA,CAAA,oBACA,CAAA,aACA,CAAA,kBACA,CAAA,4RAEA,kBACE,CAAA,aAz3BD,CAAA,oBAAA,CAAA,gSA+3BH,kBA/3BG,CAAA,UAOF,CAAA,oBAPE,CAAA,eAm4BD,CAAA,wSAGF,WACE,CAAA,cACA,CAAA,mBACA,CAAA,4IAMR,6BACE,CAAA,aAx4BI,CAAA,cA04BJ,CAAA,MAKJ,eAh5BS,CAAA,YAk5BP,CAAA,iBACA,CAAA,aAj5BU,CAAA,cAm5BV,CAAA,oCACA,CAAA,WAEA,kBACE,CAAA,mBAGF,eACE,CAAA,cACA,CAAA,iBAGF,gBACE,CAAA,oDAIE,cAEE,CAAA,8DAEA,eACE,CAAA,0EAGF,gBACE,CAAA,4EAGF,iBACE,CAAA,aAQV,YACE,CAAA,kBACA,CAAA,QACA,CAAA,kBAEA,gBACE,CAAA,0BAEA,kBA/7BO,CAAA,gCAk8BL,kBAj8BS,CAAA,6BAs8BX,eAr8BM,CAAA,mCAw8BJ,kBAv8BQ,CAAA,eA+8Bd,YACE,CAAA,OACA,CAAA,kBACA,CAAA,6BAEA,mBACE,CAAA,kBACA,CAAA,OACA,CAAA,gBACA,CAAA,iBACA,CAAA,oBACA,CAAA,aACA,CAAA,kBACA,CAAA,wBACA,CAAA,cACA,CAAA,eACA,CAAA,kBACA,CAAA,mCAEA,aAv+BQ,CAAA,kBAy+BN,CAAA,oCAGF,UA9+BK,CAAA,kBAPE,CAAA,oBAAA,CAAA,eA6/BX,eAt/BS,CAAA,kBAw/BP,CAAA,YACA,CAAA,oCACA,CAAA,qCAEA,YACE,CAAA,kBACA,CAAA,QACA,CAAA,kBACA,CAAA,mBACA,CAAA,+BACA,CAAA,yDAEA,UACE,CAAA,WACA,CAAA,kBACA,CAAA,0DACA,CAAA,aA/gCK,CAAA,YAihCL,CAAA,kBACA,CAAA,sBACA,CAAA,cACA,CAAA,aACA,CAAA,wCAGF,QACE,CAAA,cACA,CAAA,eACA,CAAA,aAlhCM,CAAA,2CAshCR,aACE,CAAA,cACA,CAAA,+BAIJ,kBACE,CAAA,qCAEA,aACE,CAAA,cACA,CAAA,eACA,CAAA,aAliCM,CAAA,iBAoiCN,CAAA,oCAIJ,iBACE,CAAA,yDAEA,iBACE,CAAA,SACA,CAAA,OACA,CAAA,0BACA,CAAA,aACA,CAAA,cACA,CAAA,mBACA,CAAA,kDAGF,iBACE,CAAA,wDAGF,iBACE,CAAA,SACA,CAAA,OACA,CAAA,0BACA,CAAA,eACA,CAAA,WACA,CAAA,aACA,CAAA,cACA,CAAA,gBACA,CAAA,cACA,CAAA,oBACA,CAAA,8DAEA,aA/kCK,CAAA,sDAqlCT,mBACE,CAAA,kBACA,CAAA,QACA,CAAA,cACA,CAAA,cACA,CAAA,eACA,CAAA,wBACA,CADA,qBACA,CADA,gBACA,CAAA,eACA,CAAA,UACA,CAAA,4EAEA,aACE,CAAA,WACA,CAAA,gBACA,CAAA,yCAIJ,YACE,CAAA,iEAEA,oBACE,CAAA,iBACA,CAAA,UACA,CAAA,WACA,CAAA,eACA,CAAA,kBACA,CAAA,yBACA,CAAA,aACA,CAAA,wEAEA,UACE,CAAA,iBACA,CAAA,OACA,CAAA,QACA,CAAA,UACA,CAAA,WACA,CAAA,eACA,CAAA,iBACA,CAAA,wBACA,CAAA,yEAIJ,kBACE,CAAA,gFAEA,0BACE,CAAA,qCAKN,YACE,CAAA,6BACA,CAAA,UACA,CAAA,yBAEA,qCALF,yBAMI,CAAA,CAAA,qCAIJ,YACE,CAAA,kBACA,CAAA,QACA,CAAA,kBACA,CAAA,UA3oCM,CAAA,wBA6oCN,CAAA,iBACA,CAAA,iBACA,CAAA,kBACA,CAAA,cACA,CAAA,uCAEA,cACE,CAAA,aACA,CAAA,8BAOJ,YACE,CAAA,6BACA,CAAA,kBACA,CAAA,kBACA,CAAA,iCAEA,QACE,CAAA,cACA,CAAA,eACA,CAAA,aAzqCM,CAAA,mCA4qCN,aArrCK,CAAA,gBAurCH,CAAA,oDAOF,aACE,CAAA,cACA,CAAA,eACA,CAAA,sDAGF,eACE,CAAA,aA5rCI,CAAA,wBAksCV,oBACE,CAAA,kBACA,CAAA,aA7sCO,CAAA,cA+sCP,CAAA,eACA,CAAA,gBACA,CAAA,iBACA,CAAA,qBACA,CAAA,4BAGF,iBACE,CAAA,kBACA,CAAA,wBAGF,mBACE,CAAA,kBACA,CAAA,sBACA,CAAA,UACA,CAAA,WACA,CAAA,iBACA,CAAA,WACA,CAAA,cACA,CAAA,cACA,CAAA,kBACA,CAAA,YACA,CAAA,sCAEA,kBACE,CAAA,aAzuCK,CAAA,4CA4uCL,kBA5uCK,CAAA,UAOF,CAAA,wCA2uCL,kBACE,CAAA,UAtuCI,CAAA,8CAyuCJ,eAzuCI,CAAA,UAND,CAAA,sCAqvCL,kBACE,CAAA,aACA,CAAA,4CAEA,kBACE,CAAA,UA1vCC,CAAA,+CA8vCH,UACE,CAAA,WACA,CAAA,gDAGF,kBACE,CAAA,aACA,CAAA,gCAKN,YACE,CAAA,qBACA,CAAA,OACA,CAAA,+BAGF,YACE,CAAA,kBACA,CAAA,OACA,CAAA,iCAGF,cACE,CAAA,eACA,CAAA,aACA,CAAA,UACA,CAAA,aACA,CAAA,iCAGF,MACE,CAAA,UACA,CAAA,mBACA,CAAA,kBACA,CAAA,eACA,CAAA,gCAGF,WACE,CAAA,mBACA,CAAA,kBACA,CAAA,yBACA,CAAA,0CAEA,2DACE,CAAA,wCAGF,kBA5yCO,CAAA,+BAizCT,cACE,CAAA,eACA,CAAA,aACA,CAAA,UACA,CAAA,gBACA,CAAA,aACA,CAAA,2BAGF,iBACE,CAAA,4BACA,CAAA,aACA,CAAA,6BAEA,cACE,CAAA,kBACA,CAAA,aACA,CAAA,6BAGF,QACE,CAAA,cACA,CAAA,eAKN,kBACE,CAAA,aA/0CU,CAAA,WAi1CV,CAAA,gBACA,CAAA,iBACA,CAAA,cACA,CAAA,cACA,CAAA,yBACA,CAAA,qBAEA,kBACE,CAAA,gBAOJ,cACE,CAAA,iBACA,CAAA,UACA,CAAA,kCAEA,YACE,CAAA,6BACA,CAAA,kBACA,CAAA,kBACA,CAAA,qCAEA,QACE,CAAA,cACA,CAAA,eACA,CAAA,aA92CM,CAAA,uCAi3CN,aA13CK,CAAA,gBA43CH,CAAA,mCAKN,YACE,CAAA,cACA,CAAA,QACA,CAAA,kBACA,CAAA,iDAEA,MACE,CAAA,WACA,CAAA,uDAEA,aACE,CAAA,cACA,CAAA,eACA,CAAA,wBACA,CAAA,mBACA,CAAA,aACA,CAAA,iBACA,CAAA,yDAEA,gBACE,CAAA,+DAIJ,UACE,CAAA,iBACA,CAAA,wBACA,CAAA,iBACA,CAAA,cACA,CAAA,aAr5CI,CAAA,eAFH,CAAA,2BA05CD,CAAA,oBACA,CADA,eACA,CAAA,uBACA,CAAA,yLACA,CAAA,2BACA,CAAA,qCACA,CAAA,kBACA,CAAA,qEAEA,YACE,CAAA,oBA16CC,CAAA,yCA46CD,CAAA,qEAIJ,YACE,CAAA,kBACA,CAAA,OACA,CAAA,mFAEA,MACE,CAAA,+EAGF,aACE,CAAA,UACA,CAAA,WACA,CAAA,mBACA,CAAA,kBACA,CAAA,sBACA,CAAA,iBACA,CAAA,WACA,CAAA,cACA,CAAA,cACA,CAAA,kBACA,CAAA,+FAEA,kBACE,CAAA,UA17CF,CAAA,qGA67CE,eA77CF,CAAA,UAND,CAAA,gEA48CL,iBACE,CAAA,sDAGF,MACE,CAAA,WACA,CAAA,iBACA,CAAA,8DAGF,UACE,CAAA,iBACA,CAAA,kBACA,CAAA,wBACA,CAAA,iBACA,CAAA,cACA,CAAA,aA19CM,CAAA,eAFH,CAAA,cA+9CH,CAAA,YACA,CAAA,kBACA,CAAA,2BACA,CAAA,iBACA,CAAA,eACA,CAAA,qBACA,CAAA,sFAEA,MACE,CAAA,WACA,CAAA,eACA,CAAA,sBACA,CAAA,kBACA,CAAA,qGAEA,aACE,CAAA,uFAIJ,iBACE,CAAA,UACA,CAAA,cACA,CAAA,aACA,CAAA,wBACA,CAAA,yFAKF,oBApgDK,CAAA,yCAsgDH,CAAA,uFAGF,wBACE,CAAA,sFAGF,aACE,CAAA,2DAIJ,YACE,CAAA,iBACA,CAAA,oBACA,CAAA,MACA,CAAA,OACA,CAAA,WACA,CAAA,gBACA,CAAA,eACA,CAAA,eAnhDG,CAAA,wBAqhDH,CAAA,iBACA,CAAA,oCACA,CAAA,aACA,CAAA,2DAGF,YACE,CAAA,kBACA,CAAA,OACA,CAAA,gBACA,CAAA,cACA,CAAA,cACA,CAAA,aA/hDM,CAAA,QAiiDN,CAAA,0BACA,CAAA,iEAEA,kBACE,CAAA,sEAGF,kBACE,CAAA,gFAGF,UACE,CAAA,WACA,CAAA,cACA,CAAA,aACA,CAAA,oBAzjDG,CAAA,gEA6jDL,MACE,CAAA,WACA,CAAA,eACA,CAAA,sBACA,CAAA,kBACA,CAAA,sCAKN,eAhkDO,CAAA,kBAkkDL,CAAA,oCACA,CAAA,kBACA,CAAA,eACA,CAAA,8DAEA,YACE,CAAA,kBACA,CAAA,6BACA,CAAA,iBACA,CAAA,+BACA,CAAA,QACA,CAAA,mEAEA,YACE,CAAA,kBACA,CAAA,OACA,CAAA,cACA,CAAA,aAllDA,CAAA,wFAqlDA,UACE,CAAA,WACA,CAAA,cACA,CAAA,yEAGF,cACE,CAAA,wBACA,CADA,qBACA,CADA,gBACA,CAAA,QACA,CAAA,6FAGF,gBACE,CAAA,aACA,CAAA,+FAKF,mBACE,CAAA,kBACA,CAAA,OACA,CAAA,gBACA,CAAA,WACA,CAAA,iBACA,CAAA,cACA,CAAA,eACA,CAAA,cACA,CAAA,kBACA,CAAA,UA7mDA,CAAA,kBA+mDA,CAAA,oHAEA,eAjnDA,CAAA,UAND,CAAA,wGA4nDC,UACE,CAAA,kBACA,CAAA,4DAMR,YACE,CAAA,cACA,CAAA,KACA,CAAA,eACA,CAAA,gBACA,CAAA,eACA,CAAA,iFAEA,YACE,CAAA,kBACA,CAAA,OACA,CAAA,gBACA,CAAA,UACA,CAAA,iBACA,CAAA,cACA,CAAA,aAjpDI,CAAA,cAmpDJ,CAAA,wBACA,CADA,qBACA,CADA,gBACA,CAAA,0BACA,CAAA,uFAEA,kBACE,CAAA,sGAGF,UACE,CAAA,WACA,CAAA,cACA,CAAA,aACA,CAAA,2GAGF,kBACE,CAAA,sCAMR,eA3qDO,CAAA,kBA6qDL,CAAA,oCACA,CAAA,YACA,CAAA,kBACA,CAAA,gBACA,CAAA,eACA,CAAA,iDAEA,cACE,CAAA,6CAKF,UACE,CAAA,sCAIJ,mBACE,CAAA,kBACA,CAAA,sBACA,CAAA,UACA,CAAA,WACA,CAAA,iBACA,CAAA,WACA,CAAA,cACA,CAAA,cACA,CAAA,kBACA,CAAA,UAnsDM,CAAA,kBAqsDN,CAAA,4CAEA,eAvsDM,CAAA,UAND,CAAA,gCAwtDP,YACE,CAAA,6BACA,CAAA,kBACA,CAAA,kBACA,CAAA,mCAEA,QACE,CAAA,cACA,CAAA,eACA,CAAA,aA/tDM,CAAA,qCAkuDN,aA3uDK,CAAA,gBA6uDH,CAAA,iCAKN,YACE,CAAA,cACA,CAAA,oBACA,CAAA,QACA,CAAA,kBACA,CAAA,+CAEA,cACE,CAAA,WACA,CAAA,qDAEA,aACE,CAAA,cACA,CAAA,eACA,CAAA,wBACA,CAAA,mBACA,CAAA,aACA,CAAA,iBACA,CAAA,uDAEA,gBACE,CAAA,6DAIJ,UACE,CAAA,iBACA,CAAA,wBACA,CAAA,iBACA,CAAA,cACA,CAAA,aAvwDI,CAAA,eAFH,CAAA,2BA4wDD,CAAA,mEAEA,YACE,CAAA,oBAtxDC,CAAA,yCAwxDD,CAAA,mEAIJ,oBACE,CADF,eACE,CAAA,uBACA,CAAA,yLACA,CAAA,2BACA,CAAA,qCACA,CAAA,kBACA,CAAA,6MAGF,cAGE,CAAA,8FAIA,YACE,CAAA,OACA,CAAA,kBACA,CAAA,4GAEA,aACE,CAAA,WACA,CAAA,+FAIJ,cACE,CAAA,WACA,CAAA,iBACA,CAAA,QACA,CAAA,kBACA,CAAA,wBACA,CAAA,UACA,CAAA,cACA,CAAA,oHAEA,kBACE,CAAA,oBACA,CAAA,UACA,CAAA,wGAGF,WACE,CAAA,cACA,CAAA,kBACA,CAAA,oBACA,CAAA,UACA,CAAA,iEAKN,cACE,CAAA,mEAGF,cACE,CAAA,gEAGF,cACE,CAAA,oEAGF,cACE,CAAA,sCAKN,kBACE,CAAA,wBACA,CAAA,kBACA,CAAA,iBACA,CAAA,eACA,CAAA,8CAEA,cACE,CAAA,eACA,CAAA,iBACA,CAAA,cACA,CAAA,eACA,CAAA,aACA,CAAA,YACA,CAAA,kBACA,CAAA,OACA,CAAA,sEAEA,YACE,CAAA,kEAIJ,4BACE,CAAA,eACA,CAAA,gBACA,CAAA,aACA,CAAA,iEAGF,iBACE,CAAA,+BACA,CAAA,4EAEA,kBACE,CAAA,iEAIJ,YACE,CAAA,kBACA,CAAA,OACA,CAAA,iBACA,CAAA,cACA,CAAA,aACA,CAAA,iEAGF,mBACE,CAAA,kBACA,CAAA,eACA,CAAA,mBACA,CAAA,kBACA,CAAA,aACA,CAAA,eACA,CAAA,wBACA,CAAA,mBACA,CAAA,oEAGF,cACE,CAAA,aAv5DM,CAAA,gBAy5DN,CAAA,iCAIJ,kBACE,CAAA,6CAEA,gBACE,CAAA,cACA,CAAA,iBACA,CAAA,WACA,CAAA,cACA,CAAA,kBACA,CAAA,sDAEA,UACE,CAAA,cACA,CAAA,2CAMJ,UACE,CAAA,8PAGA,eAIE,CAAA,cACA,CAAA,wBACA,CAAA,iBACA,CAAA,eA77DC,CAAA,+BAo8DP,mBACE,CAAA,kBACA,CAAA,sBACA,CAAA,UACA,CAAA,WACA,CAAA,iBACA,CAAA,WACA,CAAA,cACA,CAAA,cACA,CAAA,kBACA,CAAA,UAx8DM,CAAA,kBA08DN,CAAA,qCAEA,eA58DM,CAAA,UAND,CAAA,mCAy9DP,mBACE,CAAA,kBACA,CAAA,sBACA,CAAA,UACA,CAAA,WACA,CAAA,iBACA,CAAA,WACA,CAAA,cACA,CAAA,cACA,CAAA,kBACA,CAAA,aA1+DO,CAAA,kBA4+DP,CAAA,yCAEA,kBA9+DO,CAAA,UAOF,CAAA,aA++DT,YACE,CAAA,6BACA,CAAA,kBACA,CAAA,iBACA,CAAA,mBAEA,QACE,CAAA,WAIJ,YACE,CAAA,OACA,CAAA,eACA,CAAA,iBACA,CAAA,WACA,CAAA,UAGF,WACE,CAAA,wBACA,CAAA,gBACA,CAAA,cACA,CAAA,iBACA,CAAA,cACA,CAAA,UACA,CAAA,wBACA,CAAA,YAEA,gBACE,CAAA,iBAGF,eACE,CAAA,UACA,CAAA,oCACA,CAAA,eACA,CAAA,6BAGF,UACE,CAAA,WAIJ,MACE,CAAA,WACA,CAAA,kCAKA,YAEE,CAAA,iBACA,CAAA,iBAGF,iBACE,CAAA,qCAGF,eAEE,CAAA,eAIJ,YACE,CAAA,OACA,CAAA,sBACA,CAAA,6BAEA,MACE,CAAA,gBAIJ,mBACE,CAAA,kBACA,CAAA,OACA,CAAA,gBACA,CAAA,iBACA,CAAA,wBACA,CAAA,oDACA,CAAA,aACA,CAAA,cACA,CAAA,eACA,CAAA,cACA,CAAA,kBACA,CAAA,kBACA,CAAA,eACA,CAAA,kBAEA,cACE,CAAA,sBAGF,oDACE,CAAA,UACA,CAAA,oBACA,CAAA,yBAGF,UACE,CAAA,WACA,CAAA,8BAGF,oBACE,CAAA,oDACA,CAAA,aACA,CAAA,oCAEA,oDACE,CAAA,UACA,CAAA,oBACA,CAAA,8BAIJ,oBACE,CAAA,oDACA,CAAA,aACA,CAAA,oCAEA,oDACE,CAAA,UACA,CAAA,oBACA,CAAA,gBAMN,eAtnES,CAAA,YAwnEP,CAAA,gBACA,CAAA,iBACA,CAAA,oCACA,CAAA,qBAEA,cACE,CAAA,4BAGF,kBACE,CAAA,YACA,CAAA,mCAEA,WACE,CAAA,mBACA,CAAA,sBACA,CAAA,qBACA,CAAA,kBACA,CAAA,mCAGF,wBACE,CAAA,eAMN,cACE,CAAA,KACA,CAAA,MACA,CAAA,UACA,CAAA,WACA,CAAA,0BACA,CAAA,YACA,CAAA,YACA,CAAA,8BAEA,iBACE,CAAA,OACA,CAAA,QACA,CAAA,+BACA,CAAA,eAlqEK,CAAA,YAoqEL,CAAA,kBACA,CAAA,gBACA,CAAA,SACA,CAAA,sCACA,CAAA,4CAEA,YACE,CAAA,6BACA,CAAA,kBACA,CAAA,kBACA,CAAA,mDAEA,cACE,CAAA,eACA,CAAA,qCAIJ,cACE,CAAA,aACA,CAAA,cACA,CAAA,WACA,CAAA,2CAEA,UAtrEI,CAAA,iBA8rEV,kBACE,CAAA,mBAIA,wBACE,CAAA,eA1sEK,CAAA,mBA4sEL,CAAA,WACA,CAAA,UACA,CAAA,kBACA,CAAA,sBACA,CAAA,YACA,CAAA,iBACA,CAAA,kBACA,CAAA,cACA,CAAA,yBAEA,kBAvtES,CAAA,oBANF,CAAA,iBAwuET,aACE,CAAA,oBACA,CAAA,oCAGF,YACE,CAAA,6BACA,CAAA,mCAGF,YACE,CAAA,WACA,CAAA,kBACA,CAAA,sBACA,CAAA,UACA,CAAA,cACA,CAAA,eAjvEK,CAAA,wBAmvEL,CAAA,aACA,CAAA,iBACA,CAAA,yCAEA,kBACE,CAAA,UAxvEG,CAAA,6BA6vEP,wBACE,CAAA,4CAMF,YACE,CAAA,cACA,CAAA,OACA,CAAA,kBACA,CAAA,iDAEA,mBACE,CAAA,kBACA,CAAA,gBACA,CAAA,mBACA,CAAA,cACA,CAAA,eACA,CAAA,aA/wEE,CAAA,kBAixEF,CAAA,wBACA,CAAA,kDAIJ,eAvxEO,CAAA,kBAyxEL,CAAA,oCACA,CAAA,YACA,CAAA,kBACA,CAAA,uCAGF,YACE,CAAA,QACA,CAAA,sBACA,CAAA,kCAGF,aACE,CAAA,WACA,CAAA,6CAGF,gBACE,CAAA,oCAGF,WACE,CAAA,cACA,CAAA,kBACA,CAAA,wBACA,CAAA,kBACA,CAAA,YACA,CAAA,gDAEA,kBACE,CAAA,0CAGF,aACE,CAAA,eACA,CAAA,iBACA,CAAA,cACA,CAAA,aACA,CAAA,kGAGF,UAEE,CAAA,wBACA,CAAA,iBACA,CAAA,gBACA,CAAA,cACA,CAAA,+BACA,CAAA,eAz0EG,CAAA,8GA40EH,YACE,CAAA,oBAp1EG,CAAA,yCAs1EH,CAAA,6CAIJ,gBACE,CAAA,eACA,CAAA,yCAGF,UACE,CAAA,sBACA,CAAA,iBACA,CAAA,mDAGF,UACE,CAAA,kBACA,CAAA,2CAIJ,eACE,CAAA,kDAEA,eACE,CAAA,yDAGF,YACE,CAAA,kBACA,CAAA,6BACA,CAAA,QACA,CAAA,yDAGF,qBACE,CAAA,2DAGF,UAh3EM,CAAA,oBAk3EJ,CAAA,eACA,CAAA,kBACA,CAAA,iEAEA,yBACE,CAAA,6EAIJ,eACE,CAAA,sBAKN,YACE,CAAA,cACA,CAAA,aACA,CAAA,kBACA,CAAA,aA14EM,CAAA,cA44EN,CAAA,oBAGF,kBACE,CAAA,oBAGF,kBACE,CAAA,oBAGF,wBACE,CAAA,kBACA,CAAA,iBACA,CAAA,gBACA,CAAA,iBACA,CAAA,+BAEA,eACE,CAAA,2BAGF,aACE,CAAA,aAl6EQ,CAAA,cAo6ER,CAAA,eACA,CAAA,iBACA,CAAA,0BAGF,aACE,CAAA,UACA,CAAA,cACA,CAAA,gBACA,CAAA,oBAIJ,kBACE,CAAA,+BAEA,eACE,CAAA,wCAGF,YACE,CAAA,6BACA,CAAA,kBACA,CAAA,QACA,CAAA,iBACA,CAAA,cACA,CAAA,+CAEA,aAh8EQ,CAAA,eAk8EN,CAAA,6CAGF,aACE,CAAA,cACA,CAAA,eACA,CAAA,kBACA,CAAA,0BAIJ,aACE,CAAA,cACA,CAAA,UACA,CAAA,cACA,CAAA,mBAIJ,UACE,CAAA,WACA,CAAA,mBACA,CAAA,kBACA,CAAA,eACA,CAAA,wBAEA,aACE,CAAA,WACA,CAAA,2DACA,CAAA,eAIJ,kBACE,CAAA,eAGF,wBACE,CAAA,iBACA,CAAA,kBACA,CAAA,iBACA,CAAA,kBACA,CAAA,0BAEA,eACE,CAAA,6BAGF,YACE,CAAA,6BACA,CAAA,kBACA,CAAA,OACA,CAAA,iBACA,CAAA,oCAEA,aAz/EQ,CAAA,cA2/EN,CAAA,eACA,CAAA,mCAGF,aACE,CAAA,cACA,CAAA,kBACA,CAAA,oBAIJ,aACE,CAAA,kBACA,CAAA,wBACA,CAAA,iBACA,CAAA,eACA,CAAA,aACA,CAAA,cACA,CAAA,eACA,CAAA,8BAGF,aACE,CAAA,aACA,CAAA,cACA,CAAA,iBACA,CAAA,0BAIJ,uCAEI,qBACE,CAAA,oCAGF,UACE,CAAA,aACA,CAAA,CAAA,+FAMN,qBAEE,CAAA,cACA,CAAA,+IAGF,qBA/iFS,CAAA,wBAkjFP,CAAA,iBACA,CAAA,eACA,CAAA,YACA,CAAA,kBACA,CAAA,gBACA,CAAA,eACA,CAAA,0CACA,CAAA,cACA,CAAA,yMAGF,cAEE,CAAA,eACA,CAAA,aACA,CAAA,+MAGF,aAEE,CAAA,mMAGF,WAEE,CAAA,SACA,CAAA,4VAGF,oBAtlFW,CAAA,yCA2lFT,CAAA,SACA,CAAA,2GAGF,oBArlFU,CAAA,yBAwlFR,CAAA,cACA,CAAA,yKAGF,gBAEE,CAAA,iBACA,CAAA,wBACA,CAAA,cACA,CAAA,mMAGF,wBA9mFW,CAAA,UAOF,CAAA,yBAgnFT,SACE,2BACE,CAAA,qBAEA,uBACE,CAAA,cAIJ,wBACE,CAAA,CAAA,qBAOJ,YACE,CAAA,qBACA,CAAA,QACA,CAAA,eACA,CAAA,qBAGF,cACE,CAAA,eACA,CAAA,wCAEA,cACE,CAAA,sDAEA,eACE,CAAA,0EAEA,eACE,CAAA,wCAKN,gBACE,CAAA,UACA,CAAA,WACA,CAAA,wBACA,CAAA,iBACA,CAAA,eACA,CAAA,aACA,CAAA,mBACA,CAAA,kBACA,CAAA,sBACA,CAAA,cACA,CAAA,kBACA,CAAA,8CAEA,kBACE,CAAA,oBACA,CAAA,mFAIJ,YACE,CAAA,2CAGF,YACE,CAAA,kBACA,CAAA,QACA,CAAA,iBACA,CAAA,+BACA,CAAA,eACA,CAAA,iDAEA,cACE,CAAA,eACA,CAAA,aACA,CAAA,mBACA,CAAA,kBACA,CAAA,OACA,CAAA,QACA,CAAA,kBACA,CAAA,uEAGF,cACE,CAAA,kIAGF,WAEE,CAAA,WACA,CAAA,4IAGF,WAEE,CAAA,eACA,CAAA,kDAIJ,QACE,CAAA,cACA,CAAA,aACA,CAAA,eACA,CAAA,kBACA,CAAA,2CAGF,gBACE,CAAA,mBACA,CAAA,kBACA,CAAA,OACA,CAAA,WACA,CAAA,cACA,CAAA,iBACA,CAAA,wBACA,CAAA,kBACA,CAAA,aACA,CAAA,cACA,CAAA,eACA,CAAA,cACA,CAAA,kBACA,CAAA,iDAEA,kBACE,CAAA,oBACA,CAAA,oDAGF,UACE,CAAA,WACA,CAAA,6CAIJ,YACE,CAAA,kBACA,CAAA,QACA,CAAA,iBACA,CAAA,+BACA,CAAA,eACA,CAAA,8CAGF,mBACE,CAAA,kBACA,CAAA,OACA,CAAA,WACA,CAAA,cACA,CAAA,iBACA,CAAA,wBACA,CAAA,kBACA,CAAA,aACA,CAAA,cACA,CAAA,eACA,CAAA,cACA,CAAA,kBACA,CAAA,oDAEA,kBACE,CAAA,oBACA,CAAA,uDAGF,UACE,CAAA,kBACA,CAAA,6DAIJ,eACE,CAAA,KACA,CAAA,SACA,CAAA,mCACA,CAAA,wBACA,CAAA,0CACA,CAAA,cACA,CAAA,eACA,CAAA,wBACA,CAAA,mBACA,CAAA,iBACA,CAAA,kBACA,CAAA,wIAGF,uBAEE,CAAA,kRAGF,cAIE,CAAA,kBACA,CAAA,eACA,CAAA,wIAGF,aAEE,CAAA,eACA,CAAA,sBACA,CAAA,iBACA,CAAA,8SAGF,WAIE,CAAA,iBACA,CAAA,UACA,CAAA,OACA,CAAA,0BACA,CAAA,UACA,CAAA,WACA,CAAA,mBACA,CAAA,cACA,CAAA,eACA,CAAA,gBACA,CAAA,iBACA,CAAA,aACA,CAAA,kBACA,CAAA,kTAGF,WAIE,CAAA,UACA,CAAA,kBACA,CAAA,sTAGF,WAIE,CAAA,UACA,CAAA,kBACA,CAAA,4LAGF,UAIE,CAAA,WACA,CAAA,cACA,CAAA,gDAGF,YACE,CAAA,oCAGF,iBACE,CAAA,mBACA,CAAA,4BACA,CAAA,8BAGF,cACE,CAAA,aACA,CAAA,4CAGF,QACE,CAAA,SACA,CAAA,0BACA,CAAA,YACA,CAAA,kBACA,CAAA,OACA,CAAA,uDAEA,0BACE,CAAA,kEAEA,mBACE,CAAA,kBACA,CAAA,sBACA,CAAA,cACA,CAAA,sBACA,CADA,iBACA,CAAA,WACA,CAAA,cACA,CAAA,iBACA,CAAA,cACA,CAAA,eACA,CAAA,wBACA,CAAA,eACA,CAAA,aACA,CAAA,oBACA,CAAA,aACA,CAAA,kBACA,CAAA,wEAEA,kBACE,CAAA,aACA,CAAA,oBACA,CAAA,kJAIJ,cAEE,CAAA,yEAGF,kBACE,CAAA,UACA,CAAA,oBACA,CAAA,2EAGF,WACE,CAAA,cACA,CAAA,mBACA,CAAA,mBAMR,YACE,CAAA,qBACA,CAAA,OACA,CAAA,uBAGF,wBACE,CAAA,iBACA,CAAA,eACA,CAAA,eACA,CAAA,+BAEA,cACE,CAAA,gBACA,CAAA,cACA,CAAA,eACA,CAAA,aACA,CAAA,eACA,CAAA,uDAEA,YACE,CAAA,sCAGF,WACE,CAAA,WACA,CAAA,cACA,CAAA,aACA,CAAA,cACA,CAAA,4CAIJ,WACE,CAAA,oBAIJ,4BACE,CAAA,gBACA,CAAA,gBACA,CAAA,eACA,CAAA,oCAEA,YACE,CAAA,kBACA,CAAA,OACA,CAAA,cACA,CAAA,aACA,CAAA,iBACA,CAAA,+CAEA,eACE,CAAA,yDAGF,QACE,CAAA,sBAKN,eACE,CAAA,kBACA,CAAA,oCACA,CAAA,eACA,CAAA,4BAGF,iBACE,CAAA,+BACA,CAAA,cACA,CAAA,eACA,CAAA,aACA,CAAA,YACA,CAAA,kBACA,CAAA,OACA,CAAA,oDAEA,mBACE,CAAA,kBACA,CAAA,OACA,CAAA,4BAIJ,aACE,CAAA,uBAGF,QACE,CAAA,UACA,CAAA,kBACA,CAAA,gCAEA,gBACE,CAAA,+BACA,CAAA,cACA,CAAA,aACA,CAAA,qBACA,CAAA,kBACA,CAAA,mCAGF,gBACE,CAAA,kBACA,CAAA,oCAGF,kBACE,CAAA,eACA,CAAA,sBACA,CAAA,gNAGF,iBAIE,CAAA,gFAGF,6BAEE,CAAA,eACA,CAAA,sBACA,CAAA,iGAGF,mBAEE,CAAA,kBACA,CAAA,sBACA,CAAA,UACA,CAAA,WACA,CAAA,iBACA,CAAA,cACA,CAAA,kBACA,CAAA,+CAGF,wBACE,CAAA,kBACA,CAAA,aACA,CAAA,qDAEA,kBACE,CAAA,UACA,CAAA,oBACA,CAAA,kDAIJ,wBACE,CAAA,kBACA,CAAA,aACA,CAAA,wDAEA,kBACE,CAAA,UACA,CAAA,oBACA,CAAA,sCAIJ,kBACE,CAAA,oDAGF,aACE,CAAA,uDAGF,kBACE,CAAA,qBAIJ,iBACE,CAAA,wBACA,CAAA,iBACA,CAAA,wBAGF,YACE,CAAA,kBACA,CAAA,QACA,CAAA,kBACA,CAAA,8BAEA,cACE,CAAA,eACA,CAAA,aACA,CAAA,QACA,CAAA,sCAGF,WACE,CAAA,WACA,CAAA,kBAIJ,cACE,CAAA,aACA,CAAA,kBACA,CAAA,uBAGF,wBACE,CAAA,iBACA,CAAA,gBACA,CAAA,aACA,CAAA,wBAGF,UACE,CAAA,wBACA,CAAA,cACA,CAAA,sDAEA,+BAEE,CAAA,WACA,CAAA,qBACA,CAAA,2BAGF,eACE,CAAA,KACA,CAAA,kBACA,CAAA,aACA,CAAA,eACA,CAAA,oCAGF,eACE,CAAA,eACA,CAAA,kBACA,CAAA,eACA,CAAA,sBACA,CAAA,sCAGF,eACE,CAAA,uBAIJ,mBACE,CAAA,kBACA,CAAA,sBACA,CAAA,mBACA,CAAA,eACA,CAAA,cACA,CAAA,eACA,CAAA,sCAEA,kBACE,CAAA,aACA,CAAA,mCAGF,kBACE,CAAA,aACA,CAAA,oEAOJ,eACE,CAAA,0BAGF,wBACE,CAAA,iBACA,CAAA,eACA,CAAA,eACA,CAAA,kCAEA,cACE,CAAA,gBACA,CAAA,cACA,CAAA,eACA,CAAA,aACA,CAAA,eACA,CAAA,0DAEA,YACE,CAAA,yCAGF,WACE,CAAA,WACA,CAAA,cACA,CAAA,aACA,CAAA,cACA,CAAA,+CAIJ,WACE,CAAA,uBAIJ,4BACE,CAAA,gBACA,CAAA,gBACA,CAAA,eACA,CAAA,0CAEA,YACE,CAAA,kBACA,CAAA,OACA,CAAA,cACA,CAAA,aACA,CAAA,iBACA,CAAA,qDAEA,eACE,CAAA,+DAGF,QACE,CAAA,gDAOJ,kBAEE,CAAA,qCAGF,WACE,CAAA,wCAEA,mCACE,CAAA,gCAIJ,mBACE,CAAA,kBACA,CAAA,OACA,CAAA,qCAEA,UACE,CAAA,WACA,CAAA,SACA,CAAA,mBACA,CAAA,kBACA,CAAA,sBACA,CAAA,4BACA,CAAA,uCAEA,aACE,CAAA,wBAUN,YACE,CAAA,6BACA,CAAA,kBACA,CAAA,kBACA,CAAA,2BAEA,QACE,CAAA,cACA,CAAA,eACA,CAAA,aAhzGM,CAAA,yBAqzGV,YACE,CAAA,cACA,CAAA,oBACA,CAAA,QACA,CAAA,kBACA,CAAA,uCAEA,cACE,CAAA,WACA,CAAA,eACA,CAAA,6CAEA,aACE,CAAA,cACA,CAAA,eACA,CAAA,wBACA,CAAA,mBACA,CAAA,aACA,CAAA,iBACA,CAAA,qDAGF,UACE,CAAA,gBACA,CAAA,wBACA,CAAA,iBACA,CAAA,cACA,CAAA,aAh1GI,CAAA,eAFH,CAAA,2BAq1GD,CAAA,2DAEA,YACE,CAAA,oBA/1GC,CAAA,yCAi2GD,CAAA,2DAIJ,oBACE,CADF,eACE,CAAA,uBACA,CAAA,yLACA,CAAA,2BACA,CAAA,qCACA,CAAA,kBACA,CAAA,4DAGF,aACE,CAAA,YACA,CAAA,OACA,CAAA,cACA,CAAA,mCAMJ,UACE,CAAA,kBAIJ,oBACE,CAAA,eACA,CAAA,iBACA,CAAA,cACA,CAAA,eACA,CAAA,wBACA,CAAA,mBACA,CAAA,0BAGF,kBACE,CAAA,aACA,CAAA,yBAGF,kBACE,CAAA,aACA,CAAA,0BAGF,kBACE,CAAA,aACA,CAAA,oBAIJ,UACE,CAAA,0BACA","file":"style.css","sourcesContent":["*{box-sizing:border-box}body{font-family:\"Roboto\",sans-serif;margin:0;padding:0;font-size:14px;color:#4e5e6a;background:#f4f6f9;max-width:100vw;overflow-x:hidden}.hide{display:none}small{font-size:.75em}.text-right{text-align:right}.text-bold{font-weight:700 !important}.nowrap{white-space:nowrap}body.unlogged{background:#f4f6f9;margin:0;padding:0}.login-container{display:flex;min-height:100vh}.login-brand{flex:0 0 45%;background:linear-gradient(135deg, #1E2A3A 0%, #2C3E57 50%, #6690F4 100%);display:flex;align-items:center;justify-content:center;padding:60px;position:relative;overflow:hidden}.login-brand::before{content:\"\";position:absolute;top:-50%;right:-50%;width:100%;height:100%;background:radial-gradient(circle, rgba(102, 144, 244, 0.15) 0%, transparent 70%);border-radius:50%}.login-brand .brand-content{position:relative;z-index:1;color:#fff;max-width:400px}.login-brand .brand-logo{font-size:48px;font-weight:300;margin-bottom:20px;letter-spacing:-1px}.login-brand .brand-logo strong{font-weight:700}.login-brand .brand-tagline{font-size:18px;opacity:.85;line-height:1.6;margin-bottom:50px}.login-brand .brand-features .feature{display:flex;align-items:center;gap:15px;margin-bottom:20px;opacity:.8}.login-brand .brand-features .feature i{font-size:20px;width:40px;height:40px;display:flex;align-items:center;justify-content:center;background:hsla(0,0%,100%,.1);border-radius:10px}.login-brand .brand-features .feature span{font-size:15px}.login-form-wrapper{flex:1;display:flex;align-items:center;justify-content:center;padding:60px;background:#fff}.login-box{width:100%;max-width:420px}.login-box .login-header{margin-bottom:35px}.login-box .login-header h1{font-size:28px;font-weight:700;color:#2d3748;margin:0 0 8px}.login-box .login-header p{color:#718096;font-size:15px;margin:0}.login-box .form-group{margin-bottom:20px}.login-box .form-group label{display:block;font-size:13px;font-weight:600;color:#2d3748;margin-bottom:6px}.login-box .input-with-icon{position:relative}.login-box .input-with-icon i{position:absolute;left:14px;top:50%;transform:translateY(-50%);color:#a0aec0;font-size:14px}.login-box .input-with-icon .form-control{padding-left:42px}.login-box .form-control{width:100%;height:46px;border:2px solid #e2e8f0;border-radius:8px;padding:0 14px;font-size:14px;font-family:\"Roboto\",sans-serif;color:#2d3748;transition:border-color .3s,box-shadow .3s}.login-box .form-control::placeholder{color:#cbd5e0}.login-box .form-control:focus{border-color:#6690f4;box-shadow:0 0 0 3px rgba(102,144,244,.15);outline:none}.login-box .form-error{color:#c00;font-size:12px;margin-top:4px}.login-box .checkbox-group .checkbox-label{display:flex;align-items:center;gap:8px;cursor:pointer;font-size:13px;color:#718096;font-weight:400}.login-box .checkbox-group .checkbox-label input[type=checkbox]{width:16px;height:16px;accent-color:#6690f4}.login-box .btn-login{width:100%;height:48px;font-size:15px;font-weight:600;border-radius:8px;display:flex;align-items:center;justify-content:center;gap:8px}.login-box .btn-login.disabled{opacity:.7;pointer-events:none}.login-box .alert{display:none;padding:12px 16px;border-radius:8px;font-size:13px;margin-bottom:20px}.login-box .alert.alert-danger{background:#fff5f5;color:#c00;border:1px solid #fed7d7}.login-box .alert.alert-success{background:#f0fff4;color:#276749;border:1px solid #c6f6d5}@media(max-width: 768px){.login-brand{display:none}.login-form-wrapper{padding:30px 20px}}body.logged{display:flex;min-height:100vh;background:#f4f6f9}.sidebar{width:260px;min-height:100vh;background:#1e2a3a;position:fixed;top:0;left:0;z-index:1000;display:flex;flex-direction:column;transition:width .3s ease;overflow:hidden}.sidebar.collapsed{width:70px}.sidebar.collapsed .sidebar-header{padding:16px 0;justify-content:center}.sidebar.collapsed .sidebar-header .sidebar-logo{display:none}.sidebar.collapsed .sidebar-header .sidebar-toggle i{transform:rotate(180deg)}.sidebar.collapsed .sidebar-nav ul li a{padding:12px 0;justify-content:center}.sidebar.collapsed .sidebar-nav ul li a span{display:none}.sidebar.collapsed .sidebar-nav ul li a i{margin-right:0;font-size:18px}.sidebar.collapsed .sidebar-nav ul li.nav-group .nav-group-label{padding:12px 0;justify-content:center}.sidebar.collapsed .sidebar-nav ul li.nav-group .nav-group-label span{display:none}.sidebar.collapsed .sidebar-nav ul li.nav-group .nav-group-label i{margin-right:0;font-size:18px}.sidebar.collapsed .sidebar-footer .sidebar-user{justify-content:center}.sidebar.collapsed .sidebar-footer .sidebar-user .user-info{display:none}.sidebar.collapsed .sidebar-footer .sidebar-logout{justify-content:center}.sidebar.collapsed .sidebar-footer .sidebar-logout span{display:none}.sidebar.collapsed .nav-divider{margin:8px 15px}.sidebar-header{display:flex;align-items:center;justify-content:space-between;padding:20px 20px 16px;border-bottom:1px solid hsla(0,0%,100%,.08)}.sidebar-header .sidebar-logo a{color:#fff;text-decoration:none;font-size:24px;font-weight:300;letter-spacing:-0.5px}.sidebar-header .sidebar-logo a strong{font-weight:700}.sidebar-header .sidebar-toggle{background:none;border:none;color:#a8b7c7;cursor:pointer;padding:6px;border-radius:6px;transition:all .3s}.sidebar-header .sidebar-toggle:hover{background:hsla(0,0%,100%,.08);color:#fff}.sidebar-header .sidebar-toggle i{transition:transform .3s}.sidebar-nav{flex:1;padding:12px 0;overflow-y:auto}.sidebar-nav ul{list-style:none;margin:0;padding:0}.sidebar-nav ul li.nav-group{margin-bottom:4px}.sidebar-nav ul li.nav-group .nav-group-label{display:flex;align-items:center;padding:11px 20px;color:#d5deea;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.6px;border-left:3px solid rgba(0,0,0,0)}.sidebar-nav ul li.nav-group .nav-group-label i{width:20px;text-align:center;margin-right:12px;font-size:14px;color:#b6c4d3}.sidebar-nav ul li.nav-group .nav-submenu{margin:0;padding:0;list-style:none}.sidebar-nav ul li.nav-group .nav-submenu li a{padding-left:44px}.sidebar-nav ul li.nav-group.active>.nav-group-label{color:#fff;background:rgba(102,144,244,.12);border-left-color:#6690f4}.sidebar-nav ul li.nav-group.active>.nav-group-label i{color:#6690f4}.sidebar-nav ul li.nav-divider{height:1px;background:hsla(0,0%,100%,.08);margin:8px 20px}.sidebar-nav ul li a{display:flex;align-items:center;padding:11px 20px;color:#a8b7c7;text-decoration:none;font-size:14px;transition:all .2s;border-left:3px solid rgba(0,0,0,0)}.sidebar-nav ul li a i{width:20px;text-align:center;margin-right:12px;font-size:15px}.sidebar-nav ul li a:hover{background:#263548;color:#fff}.sidebar-nav ul li.active>a{background:rgba(102,144,244,.15);color:#fff;border-left-color:#6690f4}.sidebar-nav ul li.active>a i{color:#6690f4}.badge-alerts-count{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 6px;margin-left:8px;border-radius:50%;font-size:11px;font-weight:600;line-height:1;background:#fff;color:#6690f4}.sidebar-footer{padding:16px 20px;border-top:1px solid hsla(0,0%,100%,.08)}.sidebar-footer .sidebar-user{display:flex;align-items:center;gap:10px;margin-bottom:12px}.sidebar-footer .sidebar-user .user-avatar{width:34px;height:34px;border-radius:50%;background:rgba(102,144,244,.2);display:flex;align-items:center;justify-content:center;color:#6690f4;font-size:14px;flex-shrink:0}.sidebar-footer .sidebar-user .user-info{overflow:hidden}.sidebar-footer .sidebar-user .user-info .user-email{color:#a8b7c7;font-size:12px;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar-footer .sidebar-logout{display:flex;align-items:center;gap:8px;color:#e53e3e;text-decoration:none;font-size:13px;padding:8px 10px;border-radius:6px;transition:all .2s}.sidebar-footer .sidebar-logout i{font-size:14px}.sidebar-footer .sidebar-logout:hover{background:rgba(229,62,62,.1)}.main-wrapper{margin-left:260px;flex:1;min-height:100vh;transition:margin-left .3s ease;display:flex;flex-direction:column}.main-wrapper.expanded{margin-left:70px}.topbar{height:56px;background:#fff;border-bottom:1px solid #e2e8f0;display:flex;align-items:center;padding:0 25px;position:sticky;top:0;z-index:500}.topbar .topbar-toggle{background:none;border:none;color:#4e5e6a;cursor:pointer;padding:8px 10px;border-radius:6px;font-size:16px;margin-right:15px;transition:all .2s}.topbar .topbar-toggle:hover{background:#f4f6f9}.topbar .topbar-breadcrumb{font-size:16px;font-weight:600;color:#2d3748}.content{flex:1;padding:25px}.app-alert{background:#ebf8ff;border:1px solid #bee3f8;color:#2b6cb0;padding:12px 16px;border-radius:8px;margin-bottom:20px;font-size:14px}.btn{padding:10px 20px;transition:all .2s ease;color:#fff;border:0;border-radius:6px;cursor:pointer;display:inline-flex;text-decoration:none;gap:6px;justify-content:center;align-items:center;font-size:14px;font-family:\"Roboto\",sans-serif;font-weight:500}.btn.btn_small,.btn.btn-xs,.btn.btn-sm{padding:5px 10px;font-size:12px}.btn.btn_small i,.btn.btn-xs i,.btn.btn-sm i{font-size:11px}.btn.btn-success{background:#57b951}.btn.btn-success:hover{background:#4a9c3b}.btn.btn-primary{background:#6690f4}.btn.btn-primary:hover{background:#3164db}.btn.btn-danger{background:#c00}.btn.btn-danger:hover{background:#b30000}.btn.disabled{opacity:.6;pointer-events:none}.form-control{border:1px solid #e2e8f0;border-radius:6px;height:38px;width:100%;padding:6px 12px;font-family:\"Roboto\",sans-serif;font-size:14px;color:#2d3748;transition:border-color .2s,box-shadow .2s}.form-control option{padding:5px}.form-control:focus{border-color:#6690f4;box-shadow:0 0 0 3px rgba(102,144,244,.1);outline:none}input[type=checkbox]{border:1px solid #e2e8f0}table{border-collapse:collapse;font-size:13px}.table{width:100%}.table th,.table td{border:1px solid #e2e8f0;padding:8px 10px}.table th{background:#f7fafc;font-weight:600;font-size:12px;text-transform:uppercase;letter-spacing:.03em;color:#718096}.table td.center{text-align:center}.table td.left{text-align:left}.table.table-sm td{padding:5px !important}.table input.form-control{font-size:13px;height:32px}.clients-table-wrap,.campaigns-table-wrap,.products-table-wrap,.logs-table-wrap{background:#fff;border-radius:10px;box-shadow:0 1px 4px rgba(0,0,0,.06);overflow-x:auto;max-width:100%;-ms-overflow-style:none;scrollbar-width:none}.clients-table-wrap::-webkit-scrollbar,.campaigns-table-wrap::-webkit-scrollbar,.products-table-wrap::-webkit-scrollbar,.logs-table-wrap::-webkit-scrollbar{display:none}.clients-table-wrap .table,.campaigns-table-wrap .table,.products-table-wrap .table,.logs-table-wrap .table{margin:0;width:100% !important}.clients-table-wrap .table thead th,.campaigns-table-wrap .table thead th,.products-table-wrap .table thead th,.logs-table-wrap .table thead th{background:#f8fafc;border-bottom:2px solid #e2e8f0;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:#8899a6;padding:12px 16px;white-space:nowrap}.clients-table-wrap .table tbody td,.campaigns-table-wrap .table tbody td,.products-table-wrap .table tbody td,.logs-table-wrap .table tbody td{padding:10px 16px;font-size:13px;color:#2d3748;vertical-align:middle;border-bottom:1px solid #f1f5f9}.clients-table-wrap .table tbody tr:hover td,.campaigns-table-wrap .table tbody tr:hover td,.products-table-wrap .table tbody tr:hover td,.logs-table-wrap .table tbody tr:hover td{background:#f8fafc}.clients-table-wrap .dt-layout-row,.campaigns-table-wrap .dt-layout-row,.products-table-wrap .dt-layout-row,.logs-table-wrap .dt-layout-row{padding:14px 20px;margin:0 !important;border-top:1px solid #f1f5f9}.clients-table-wrap .dt-layout-row:first-child,.campaigns-table-wrap .dt-layout-row:first-child,.products-table-wrap .dt-layout-row:first-child,.logs-table-wrap .dt-layout-row:first-child{display:none}.clients-table-wrap .dt-info,.campaigns-table-wrap .dt-info,.products-table-wrap .dt-info,.logs-table-wrap .dt-info{font-size:13px;color:#8899a6}.clients-table-wrap .dt-paging .pagination,.campaigns-table-wrap .dt-paging .pagination,.products-table-wrap .dt-paging .pagination,.logs-table-wrap .dt-paging .pagination{margin:0;padding:0;list-style:none;display:flex;align-items:center;gap:6px}.clients-table-wrap .dt-paging .pagination .page-item .page-link,.campaigns-table-wrap .dt-paging .pagination .page-item .page-link,.products-table-wrap .dt-paging .pagination .page-item .page-link,.logs-table-wrap .dt-paging .pagination .page-item .page-link{display:inline-flex;align-items:center;justify-content:center;min-width:36px;width:fit-content;height:36px;padding:0 14px;border-radius:8px;font-size:13px;font-weight:500;border:1px solid #e2e8f0;background:#fff;color:#4e5e6a;cursor:pointer;transition:all .2s;text-decoration:none;line-height:1;white-space:nowrap}.clients-table-wrap .dt-paging .pagination .page-item .page-link:hover,.campaigns-table-wrap .dt-paging .pagination .page-item .page-link:hover,.products-table-wrap .dt-paging .pagination .page-item .page-link:hover,.logs-table-wrap .dt-paging .pagination .page-item .page-link:hover{background:#eef2ff;color:#6690f4;border-color:#6690f4}.clients-table-wrap .dt-paging .pagination .page-item.active .page-link,.campaigns-table-wrap .dt-paging .pagination .page-item.active .page-link,.products-table-wrap .dt-paging .pagination .page-item.active .page-link,.logs-table-wrap .dt-paging .pagination .page-item.active .page-link{background:#6690f4;color:#fff;border-color:#6690f4;font-weight:600}.clients-table-wrap .dt-paging .pagination .page-item.disabled .page-link,.campaigns-table-wrap .dt-paging .pagination .page-item.disabled .page-link,.products-table-wrap .dt-paging .pagination .page-item.disabled .page-link,.logs-table-wrap .dt-paging .pagination .page-item.disabled .page-link{opacity:.35;cursor:default;pointer-events:none}.clients-table-wrap .dt-processing,.campaigns-table-wrap .dt-processing,.products-table-wrap .dt-processing,.logs-table-wrap .dt-processing{background:hsla(0,0%,100%,.9);color:#4e5e6a;font-size:14px}.card{background:#fff;padding:20px;border-radius:8px;color:#2d3748;font-size:14px;box-shadow:0 1px 3px rgba(0,0,0,.06)}.card.mb25{margin-bottom:20px}.card .card-header{font-weight:600;font-size:15px}.card .card-body{padding-top:12px}.card .card-body table th,.card .card-body table td{font-size:13px}.card .card-body table th.bold,.card .card-body table td.bold{font-weight:600}.card .card-body table th.text-right,.card .card-body table td.text-right{text-align:right}.card .card-body table th.text-center,.card .card-body table td.text-center{text-align:center}.action_menu{display:flex;margin-bottom:20px;gap:12px}.action_menu .btn{padding:8px 16px}.action_menu .btn.btn_add{background:#57b951}.action_menu .btn.btn_add:hover{background:#4a9c3b}.action_menu .btn.btn_cancel{background:#c00}.action_menu .btn.btn_cancel:hover{background:#b30000}.settings-tabs{display:flex;gap:8px;margin-bottom:18px}.settings-tabs .settings-tab{display:inline-flex;align-items:center;gap:6px;padding:8px 14px;border-radius:8px;text-decoration:none;color:#6b7a89;background:#e9eef5;border:1px solid #d8e0ea;font-size:13px;font-weight:600;transition:all .2s}.settings-tabs .settings-tab:hover{color:#2d3748;background:#dde6f2}.settings-tabs .settings-tab.active{color:#fff;background:#6690f4;border-color:#6690f4}.settings-card{background:#fff;border-radius:10px;padding:28px;box-shadow:0 1px 4px rgba(0,0,0,.06)}.settings-card .settings-card-header{display:flex;align-items:center;gap:14px;margin-bottom:24px;padding-bottom:16px;border-bottom:1px solid #e2e8f0}.settings-card .settings-card-header .settings-card-icon{width:44px;height:44px;border-radius:10px;background:rgb(225.706097561,233.7475609756,252.893902439);color:#6690f4;display:flex;align-items:center;justify-content:center;font-size:18px;flex-shrink:0}.settings-card .settings-card-header h3{margin:0;font-size:17px;font-weight:600;color:#2d3748}.settings-card .settings-card-header small{color:#8899a6;font-size:13px}.settings-card .settings-field{margin-bottom:18px}.settings-card .settings-field label{display:block;font-size:13px;font-weight:600;color:#2d3748;margin-bottom:6px}.settings-card .settings-input-wrap{position:relative}.settings-card .settings-input-wrap .settings-input-icon{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:#a0aec0;font-size:14px;pointer-events:none}.settings-card .settings-input-wrap .form-control{padding-left:38px}.settings-card .settings-input-wrap .settings-toggle-pw{position:absolute;right:4px;top:50%;transform:translateY(-50%);background:none;border:none;color:#a0aec0;cursor:pointer;padding:6px 10px;font-size:14px;transition:color .2s}.settings-card .settings-input-wrap .settings-toggle-pw:hover{color:#6690f4}.settings-card .settings-field .settings-toggle-label{display:inline-flex;align-items:center;gap:10px;cursor:pointer;font-size:14px;font-weight:500;user-select:none;margin-bottom:0;width:100%}.settings-card .settings-field .settings-toggle-label .settings-toggle-text{flex:1 1 auto;min-width:0;line-height:1.35}.settings-card .settings-toggle-checkbox{display:none}.settings-card .settings-toggle-checkbox+.settings-toggle-switch{display:inline-block;position:relative;width:44px;height:24px;background:#ccc;border-radius:12px;transition:background .2s;flex-shrink:0}.settings-card .settings-toggle-checkbox+.settings-toggle-switch::after{content:\"\";position:absolute;top:3px;left:3px;width:18px;height:18px;background:#fff;border-radius:50%;transition:transform .2s}.settings-card .settings-toggle-checkbox:checked+.settings-toggle-switch{background:#22c55e}.settings-card .settings-toggle-checkbox:checked+.settings-toggle-switch::after{transform:translateX(20px)}.settings-card .settings-fields-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 24px}@media(max-width: 768px){.settings-card .settings-fields-grid{grid-template-columns:1fr}}.settings-card .settings-alert-error{display:flex;align-items:center;gap:10px;background:#fff5f5;color:#c00;border:1px solid #fed7d7;border-radius:8px;padding:12px 16px;margin-bottom:20px;font-size:13px}.settings-card .settings-alert-error i{font-size:16px;flex-shrink:0}.clients-page .clients-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.clients-page .clients-header h2{margin:0;font-size:20px;font-weight:600;color:#2d3748}.clients-page .clients-header h2 i{color:#6690f4;margin-right:8px}.clients-page .clients-table-wrap .table .client-id{color:#8899a6;font-size:13px;font-weight:600}.clients-page .clients-table-wrap .table .client-name{font-weight:600;color:#2d3748}.clients-page .badge-id{display:inline-block;background:#eef2ff;color:#6690f4;font-size:13px;font-weight:600;padding:4px 10px;border-radius:6px;font-family:monospace}.clients-page .actions-cell{text-align:center;white-space:nowrap}.clients-page .btn-icon{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:8px;border:none;cursor:pointer;font-size:14px;transition:all .2s;margin:0 2px}.clients-page .btn-icon.btn-icon-edit{background:#eef2ff;color:#6690f4}.clients-page .btn-icon.btn-icon-edit:hover{background:#6690f4;color:#fff}.clients-page .btn-icon.btn-icon-delete{background:#fff5f5;color:#c00}.clients-page .btn-icon.btn-icon-delete:hover{background:#c00;color:#fff}.clients-page .btn-icon.btn-icon-sync{background:#f0fdf4;color:#16a34a}.clients-page .btn-icon.btn-icon-sync:hover{background:#16a34a;color:#fff}.clients-page .btn-icon.btn-icon-sync:disabled{opacity:.7;cursor:wait}.clients-page .btn-icon.btn-icon-sync.is-queued{background:#fef3c7;color:#d97706}.clients-page .client-sync-bars{display:flex;flex-direction:column;gap:4px}.clients-page .client-sync-row{display:flex;align-items:center;gap:4px}.clients-page .client-sync-label{font-size:11px;font-weight:600;color:#8899a6;width:18px;flex-shrink:0}.clients-page .client-sync-track{flex:1;height:6px;border-radius:999px;background:#e9eef5;overflow:hidden}.clients-page .client-sync-fill{height:100%;border-radius:999px;background:#cbd5e0;transition:width .4s ease}.clients-page .client-sync-fill.is-active{background:linear-gradient(90deg, #5A9BFF 0%, #2E6BDF 100%)}.clients-page .client-sync-fill.is-done{background:#57b951}.clients-page .client-sync-pct{font-size:11px;font-weight:600;color:#8899a6;width:32px;text-align:right;flex-shrink:0}.clients-page .empty-state{text-align:center;padding:50px 20px !important;color:#a0aec0}.clients-page .empty-state i{font-size:40px;margin-bottom:12px;display:block}.clients-page .empty-state p{margin:0;font-size:15px}.btn-secondary{background:#e2e8f0;color:#2d3748;border:none;padding:8px 18px;border-radius:6px;font-size:14px;cursor:pointer;transition:background .2s}.btn-secondary:hover{background:#cbd5e0}.campaigns-page{max-width:100%;overflow-x:hidden;width:100%}.campaigns-page .campaigns-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.campaigns-page .campaigns-header h2{margin:0;font-size:20px;font-weight:600;color:#2d3748}.campaigns-page .campaigns-header h2 i{color:#6690f4;margin-right:8px}.campaigns-page .campaigns-filters{display:flex;flex-wrap:wrap;gap:20px;margin-bottom:20px}.campaigns-page .campaigns-filters .filter-group{flex:1;min-width:0}.campaigns-page .campaigns-filters .filter-group label{display:block;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:#8899a6;margin-bottom:6px}.campaigns-page .campaigns-filters .filter-group label i{margin-right:4px}.campaigns-page .campaigns-filters .filter-group .form-control{width:100%;padding:10px 14px;border:1px solid #e2e8f0;border-radius:8px;font-size:14px;color:#2d3748;background:#fff;transition:border-color .2s;appearance:none;-webkit-appearance:none;background-image:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%238899A6' d='M6 8L1 3h10z'/%3E%3C/svg%3E\");background-repeat:no-repeat;background-position:right 12px center;padding-right:32px}.campaigns-page .campaigns-filters .filter-group .form-control:focus{outline:none;border-color:#6690f4;box-shadow:0 0 0 3px rgba(102,144,244,.1)}.campaigns-page .campaigns-filters .filter-group .filter-with-action{display:flex;align-items:center;gap:8px}.campaigns-page .campaigns-filters .filter-group .filter-with-action .form-control{flex:1}.campaigns-page .campaigns-filters .filter-group .filter-with-action .btn-icon{flex-shrink:0;width:42px;height:42px;display:inline-flex;align-items:center;justify-content:center;border-radius:8px;border:none;cursor:pointer;font-size:14px;transition:all .2s}.campaigns-page .campaigns-filters .filter-group .filter-with-action .btn-icon.btn-icon-delete{background:#fff5f5;color:#c00}.campaigns-page .campaigns-filters .filter-group .filter-with-action .btn-icon.btn-icon-delete:hover{background:#c00;color:#fff}.campaigns-page .campaigns-filters .filter-group-campaign-multi{flex:2 !important}.campaigns-page .campaigns-filters .campaign-dropdown{flex:1;min-width:0;position:relative}.campaigns-page .campaigns-filters .campaign-dropdown-trigger{width:100%;padding:10px 14px;padding-right:32px;border:1px solid #e2e8f0;border-radius:8px;font-size:14px;color:#2d3748;background:#fff;cursor:pointer;display:flex;align-items:center;transition:border-color .2s;position:relative;min-height:42px;box-sizing:border-box}.campaigns-page .campaigns-filters .campaign-dropdown-trigger .campaign-dropdown-text{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.campaigns-page .campaigns-filters .campaign-dropdown-trigger .campaign-dropdown-text.is-placeholder{color:#8899a6}.campaigns-page .campaigns-filters .campaign-dropdown-trigger .campaign-dropdown-arrow{position:absolute;right:12px;font-size:10px;color:#8899a6;transition:transform .2s}.campaigns-page .campaigns-filters .campaign-dropdown.is-open .campaign-dropdown-trigger{border-color:#6690f4;box-shadow:0 0 0 3px rgba(102,144,244,.1)}.campaigns-page .campaigns-filters .campaign-dropdown.is-open .campaign-dropdown-arrow{transform:rotate(180deg)}.campaigns-page .campaigns-filters .campaign-dropdown.is-open .campaign-dropdown-menu{display:block}.campaigns-page .campaigns-filters .campaign-dropdown-menu{display:none;position:absolute;top:calc(100% + 4px);left:0;right:0;z-index:100;max-height:280px;overflow-y:auto;background:#fff;border:1px solid #e2e8f0;border-radius:8px;box-shadow:0 4px 12px rgba(0,0,0,.1);padding:4px 0}.campaigns-page .campaigns-filters .campaign-dropdown-item{display:flex;align-items:center;gap:8px;padding:8px 12px;cursor:pointer;font-size:14px;color:#2d3748;margin:0;transition:background .15s}.campaigns-page .campaigns-filters .campaign-dropdown-item:hover{background:#f8fafc}.campaigns-page .campaigns-filters .campaign-dropdown-item.is-checked{background:#eef2ff}.campaigns-page .campaigns-filters .campaign-dropdown-item input[type=checkbox]{width:16px;height:16px;cursor:pointer;flex-shrink:0;accent-color:#6690f4}.campaigns-page .campaigns-filters .campaign-dropdown-item span{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.campaigns-page .campaigns-list-panel{background:#fff;border-radius:10px;box-shadow:0 1px 4px rgba(0,0,0,.06);margin-bottom:20px;overflow:hidden}.campaigns-page .campaigns-list-panel .campaigns-list-toolbar{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid #e2e8f0;gap:12px}.campaigns-page .campaigns-list-panel .campaigns-list-toolbar-left{display:flex;align-items:center;gap:8px;font-size:13px;color:#4e5e6a}.campaigns-page .campaigns-list-panel .campaigns-list-toolbar-left input[type=checkbox]{width:16px;height:16px;cursor:pointer}.campaigns-page .campaigns-list-panel .campaigns-list-toolbar-left label{cursor:pointer;user-select:none;margin:0}.campaigns-page .campaigns-list-panel .campaigns-list-toolbar-left .campaigns-selected-count{margin-left:12px;color:#8899a6}.campaigns-page .campaigns-list-panel .campaigns-list-toolbar-right .campaigns-bulk-delete-btn{display:inline-flex;align-items:center;gap:6px;padding:8px 16px;border:none;border-radius:8px;font-size:13px;font-weight:600;cursor:pointer;background:#fff5f5;color:#c00;transition:all .2s}.campaigns-page .campaigns-list-panel .campaigns-list-toolbar-right .campaigns-bulk-delete-btn:hover:not(:disabled){background:#c00;color:#fff}.campaigns-page .campaigns-list-panel .campaigns-list-toolbar-right .campaigns-bulk-delete-btn:disabled{opacity:.4;cursor:not-allowed}.campaigns-page .campaigns-list-panel .campaigns-list-items{display:flex;flex-wrap:wrap;gap:0;padding:8px 8px;max-height:220px;overflow-y:auto}.campaigns-page .campaigns-list-panel .campaigns-list-items .campaigns-list-item{display:flex;align-items:center;gap:8px;padding:6px 12px;margin:2px;border-radius:6px;font-size:13px;color:#2d3748;cursor:pointer;user-select:none;transition:background .15s}.campaigns-page .campaigns-list-panel .campaigns-list-items .campaigns-list-item:hover{background:#f0f4ff}.campaigns-page .campaigns-list-panel .campaigns-list-items .campaigns-list-item input[type=checkbox]{width:15px;height:15px;cursor:pointer;flex-shrink:0}.campaigns-page .campaigns-list-panel .campaigns-list-items .campaigns-list-item .campaigns-list-item-name{white-space:nowrap}.campaigns-page .campaigns-chart-wrap{background:#fff;border-radius:10px;box-shadow:0 1px 4px rgba(0,0,0,.06);padding:20px;margin-bottom:20px;min-height:350px;overflow:hidden}.campaigns-page .campaigns-chart-wrap #container{max-width:100%}.campaigns-page .campaigns-table-wrap .table{width:100%}.campaigns-page .delete-history-entry{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:6px;border:none;cursor:pointer;font-size:12px;background:#fff5f5;color:#c00;transition:all .2s}.campaigns-page .delete-history-entry:hover{background:#c00;color:#fff}.products-page .products-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.products-page .products-header h2{margin:0;font-size:20px;font-weight:600;color:#2d3748}.products-page .products-header h2 i{color:#6690f4;margin-right:8px}.products-page .products-filters{display:flex;flex-wrap:wrap;align-items:flex-end;gap:20px;margin-bottom:16px}.products-page .products-filters .filter-group{flex:1 1 220px;min-width:0}.products-page .products-filters .filter-group label{display:block;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:#8899a6;margin-bottom:6px}.products-page .products-filters .filter-group label i{margin-right:4px}.products-page .products-filters .filter-group .form-control{width:100%;padding:10px 14px;border:1px solid #e2e8f0;border-radius:8px;font-size:14px;color:#2d3748;background:#fff;transition:border-color .2s}.products-page .products-filters .filter-group .form-control:focus{outline:none;border-color:#6690f4;box-shadow:0 0 0 3px rgba(102,144,244,.1)}.products-page .products-filters .filter-group select.form-control{appearance:none;-webkit-appearance:none;background-image:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%238899A6' d='M6 8L1 3h10z'/%3E%3C/svg%3E\");background-repeat:no-repeat;background-position:right 12px center;padding-right:32px}.products-page .products-filters .filter-group.filter-group-client,.products-page .products-filters .filter-group.filter-group-campaign,.products-page .products-filters .filter-group.filter-group-ad-group{flex:1 1 260px}.products-page .products-filters .filter-group.filter-group-ad-group .ad-group-filter-actions{display:flex;gap:8px;align-items:center}.products-page .products-filters .filter-group.filter-group-ad-group .ad-group-filter-actions .form-control{flex:1 1 auto;min-width:0}.products-page .products-filters .filter-group.filter-group-ad-group #delete-products-ad-group{min-width:38px;height:38px;border-radius:6px;margin:0;background:#dc3545;border:1px solid #dc3545;color:#fff;cursor:pointer}.products-page .products-filters .filter-group.filter-group-ad-group #delete-products-ad-group:hover:not(:disabled){background:#bb2d3b;border-color:#bb2d3b;color:#fff}.products-page .products-filters .filter-group.filter-group-ad-group #delete-products-ad-group:disabled{opacity:.45;cursor:default;background:#dc3545;border-color:#dc3545;color:#fff}.products-page .products-filters .filter-group.filter-group-roas{flex:0 0 200px}.products-page .products-filters .filter-group.filter-group-search{flex:1 1 200px}.products-page .products-filters .filter-group.filter-group-cl4{flex:0 0 160px}.products-page .products-filters .filter-group.filter-group-columns{flex:0 0 240px}.products-page .products-scope-alerts{margin-bottom:12px;border:1px solid #fecaca;background:#fef2f2;border-radius:8px;overflow:hidden}.products-page .products-scope-alerts summary{cursor:pointer;list-style:none;padding:10px 12px;font-size:13px;font-weight:600;color:#991b1b;display:flex;align-items:center;gap:8px}.products-page .products-scope-alerts summary::-webkit-details-marker{display:none}.products-page .products-scope-alerts .products-scope-alerts-list{border-top:1px solid #fecaca;background:#fff;max-height:260px;overflow:auto}.products-page .products-scope-alerts .products-scope-alert-item{padding:10px 12px;border-bottom:1px solid #f1f5f9}.products-page .products-scope-alerts .products-scope-alert-item:last-child{border-bottom:none}.products-page .products-scope-alerts .products-scope-alert-meta{display:flex;align-items:center;gap:8px;margin-bottom:4px;font-size:11px;color:#64748b}.products-page .products-scope-alerts .products-scope-alert-type{display:inline-flex;align-items:center;padding:2px 6px;border-radius:999px;background:#eef2ff;color:#4338ca;font-weight:600;text-transform:uppercase;letter-spacing:.3px}.products-page .products-scope-alerts .products-scope-alert-message{font-size:13px;color:#2d3748;line-height:1.45}.products-page .products-actions{margin-bottom:12px}.products-page .products-actions .btn-danger{padding:7px 14px;font-size:13px;border-radius:6px;border:none;cursor:pointer;transition:all .2s}.products-page .products-actions .btn-danger:disabled{opacity:.4;cursor:default}.products-page .products-table-wrap .table{width:100%}.products-page .products-table-wrap .table input.min_roas,.products-page .products-table-wrap .table input.form-control-sm,.products-page .products-table-wrap .table select.custom_label_4,.products-page .products-table-wrap .table select.form-control-sm{padding:3px 6px;font-size:12px;border:1px solid #e2e8f0;border-radius:4px;background:#fff}.products-page .delete-product{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:6px;border:none;cursor:pointer;font-size:12px;background:#fff5f5;color:#c00;transition:all .2s}.products-page .delete-product:hover{background:#c00;color:#fff}.products-page .edit-product-title{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:6px;border:none;cursor:pointer;font-size:12px;background:#eef2ff;color:#6690f4;transition:all .2s}.products-page .edit-product-title:hover{background:#6690f4;color:#fff}.desc-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:4px}.desc-header label{margin:0}.desc-tabs{display:flex;gap:2px;background:#eee;border-radius:6px;padding:2px}.desc-tab{border:none;background:rgba(0,0,0,0);padding:4px 12px;font-size:12px;border-radius:4px;cursor:pointer;color:#666;transition:all .15s ease}.desc-tab i{margin-right:4px}.desc-tab.active{background:#fff;color:#333;box-shadow:0 1px 3px rgba(0,0,0,.12);font-weight:500}.desc-tab:hover:not(.active){color:#333}.desc-wrap{flex:1;min-width:0}.desc-preview ul,.desc-preview ol{margin:6px 0;padding-left:20px}.desc-preview li{margin-bottom:3px}.desc-preview b,.desc-preview strong{font-weight:600}.input-with-ai{display:flex;gap:8px;align-items:flex-start}.input-with-ai .form-control{flex:1}.btn-ai-suggest{display:inline-flex;align-items:center;gap:4px;padding:6px 12px;border-radius:8px;border:1px solid #c084fc;background:linear-gradient(135deg, #F3E8FF, #EDE9FE);color:#7c3aed;font-size:12px;font-weight:600;cursor:pointer;transition:all .2s;white-space:nowrap;min-height:38px}.btn-ai-suggest i{font-size:13px}.btn-ai-suggest:hover{background:linear-gradient(135deg, #7C3AED, #6D28D9);color:#fff;border-color:#6d28d9}.btn-ai-suggest:disabled{opacity:.7;cursor:wait}.btn-ai-suggest.btn-ai-claude{border-color:#d97706;background:linear-gradient(135deg, #FEF3C7, #FDE68A);color:#92400e}.btn-ai-suggest.btn-ai-claude:hover{background:linear-gradient(135deg, #D97706, #B45309);color:#fff;border-color:#b45309}.btn-ai-suggest.btn-ai-gemini{border-color:#4285f4;background:linear-gradient(135deg, #E8F0FE, #D2E3FC);color:#1a73e8}.btn-ai-suggest.btn-ai-gemini:hover{background:linear-gradient(135deg, #4285F4, #1A73E8);color:#fff;border-color:#1a73e8}.form_container{background:#fff;padding:25px;max-width:1300px;border-radius:8px;box-shadow:0 1px 3px rgba(0,0,0,.06)}.form_container.full{max-width:100%}.form_container .form_group{margin-bottom:12px;display:flex}.form_container .form_group>.label{width:300px;display:inline-flex;align-items:flex-start;justify-content:right;padding-right:12px}.form_container .form_group .input{width:calc(100% - 300px)}.default_popup{position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,.45);display:none;z-index:2000}.default_popup .popup_content{position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);background:#fff;padding:25px;border-radius:10px;max-width:1140px;width:95%;box-shadow:0 20px 60px rgba(0,0,0,.15)}.default_popup .popup_content .popup_header{display:flex;justify-content:space-between;align-items:center;margin-bottom:15px}.default_popup .popup_content .popup_header .title{font-size:18px;font-weight:600}.default_popup .popup_content .close{cursor:pointer;color:#a0aec0;font-size:18px;padding:4px}.default_popup .popup_content .close:hover{color:#c00}.dt-layout-table{margin-bottom:20px}.pagination button{border:1px solid #e2e8f0;background:#fff;display:inline-flex;height:32px;width:32px;align-items:center;justify-content:center;margin:0 2px;border-radius:4px;transition:all .2s;cursor:pointer}.pagination button:hover{background:#f4f6f9;border-color:#6690f4}table#products a{color:inherit;text-decoration:none}table#products .table-product-title{display:flex;justify-content:space-between}table#products .edit-product-title{display:flex;height:25px;align-items:center;justify-content:center;width:25px;cursor:pointer;background:#fff;border:1px solid #cbd5e0;color:#cbd5e0;border-radius:4px}table#products .edit-product-title:hover{background:#cbd5e0;color:#fff}table#products a.custom_name{color:#57b951 !important}.product-history-page .product-history-meta{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:14px}.product-history-page .product-history-meta span{display:inline-flex;align-items:center;padding:5px 10px;border-radius:999px;font-size:12px;font-weight:600;color:#4e5e6a;background:#eef2ff;border:1px solid #d9e2ff}.product-history-page .product-history-chart-wrap{background:#fff;border-radius:10px;box-shadow:0 1px 4px rgba(0,0,0,.06);padding:20px;margin-bottom:16px}.product-history-page .chart-with-form{display:flex;gap:20px;align-items:flex-start}.product-history-page .chart-area{flex:1 1 auto;min-width:0}.product-history-page .product-history-chart{min-height:360px}.product-history-page .comment-form{width:340px;flex:0 0 340px;background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;padding:14px}.product-history-page .comment-form .form-group{margin-bottom:12px}.product-history-page .comment-form label{display:block;font-weight:600;margin-bottom:6px;font-size:13px;color:#52606d}.product-history-page .comment-form input[type=date],.product-history-page .comment-form textarea{width:100%;border:1px solid #e2e8f0;border-radius:6px;padding:8px 12px;font-size:14px;font-family:\"Roboto\",sans-serif;background:#fff}.product-history-page .comment-form input[type=date]:focus,.product-history-page .comment-form textarea:focus{outline:none;border-color:#6690f4;box-shadow:0 0 0 3px rgba(102,144,244,.1)}.product-history-page .comment-form textarea{min-height:110px;resize:vertical}.product-history-page .comment-form .btn{width:100%;justify-content:center;padding:10px 16px}.product-history-page .comment-form .btn[disabled]{opacity:.6;cursor:not-allowed}.product-history-page .products-table-wrap{overflow-x:auto}.product-history-page .products-table-wrap .table{min-width:980px}.product-history-page .products-table-wrap .comment-cell{display:flex;align-items:center;justify-content:space-between;gap:10px}.product-history-page .products-table-wrap .comment-text{word-break:break-word}.product-history-page .products-table-wrap .delete-comment{color:#c00;text-decoration:none;font-weight:600;white-space:nowrap}.product-history-page .products-table-wrap .delete-comment:hover{text-decoration:underline}.product-history-page .products-table-wrap .dt-paging .pagination .page-item{list-style:none}.cron-status-overview{display:flex;flex-wrap:wrap;gap:10px 20px;margin-bottom:20px;color:#4e5e6a;font-size:13px}.cron-progress-list{margin-bottom:20px}.cron-schedule-list{margin-bottom:20px}.cron-schedule-item{border:1px solid #dfe7f0;background:#f4f8fd;border-radius:8px;padding:9px 12px;margin-bottom:8px}.cron-schedule-item:last-child{margin-bottom:0}.cron-schedule-item strong{display:block;color:#2d3748;font-size:13px;font-weight:700;margin-bottom:2px}.cron-schedule-item small{display:block;color:#678;font-size:12px;line-height:1.35}.cron-progress-item{margin-bottom:14px}.cron-progress-item:last-child{margin-bottom:0}.cron-progress-item .cron-progress-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:6px;font-size:13px}.cron-progress-item .cron-progress-head strong{color:#2d3748;font-weight:600}.cron-progress-item .cron-progress-head span{color:#6b7a89;font-size:12px;font-weight:600;white-space:nowrap}.cron-progress-item small{display:block;margin-top:5px;color:#789;font-size:12px}.cron-progress-bar{width:100%;height:10px;border-radius:999px;background:#e9eef5;overflow:hidden}.cron-progress-bar>span{display:block;height:100%;background:linear-gradient(90deg, #5A9BFF 0%, #2E6BDF 100%)}.cron-url-list{margin-bottom:20px}.cron-url-item{border:1px solid #e2e8f0;border-radius:8px;background:#f8fafc;padding:10px 12px;margin-bottom:10px}.cron-url-item:last-child{margin-bottom:0}.cron-url-item .cron-url-top{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:6px}.cron-url-item .cron-url-top strong{color:#2d3748;font-size:13px;font-weight:600}.cron-url-item .cron-url-top small{color:#7a8794;font-size:11px;white-space:nowrap}.cron-url-item code{display:block;background:#eef2f7;border:1px solid #dde4ed;border-radius:6px;padding:6px 8px;color:#2e3b49;font-size:12px;overflow-x:auto}.cron-url-item .cron-url-plan{display:block;color:#6c7b8a;font-size:11px;margin-bottom:6px}@media(max-width: 1200px){.product-history-page .chart-with-form{flex-direction:column}.product-history-page .comment-form{width:100%;flex:1 1 auto}}.jconfirm-box .form-group .select2-container,.adspro-dialog-box .form-group .select2-container{width:100% !important;margin-top:8px}.jconfirm-box .select2-container--default .select2-selection--single,.adspro-dialog-box .select2-container--default .select2-selection--single{background-color:#fff;border:1px solid #e2e8f0;border-radius:6px;min-height:42px;display:flex;align-items:center;padding:4px 12px;box-shadow:none;transition:border-color .2s,box-shadow .2s;font-size:14px}.jconfirm-box .select2-container--default .select2-selection--single .select2-selection__rendered,.adspro-dialog-box .select2-container--default .select2-selection--single .select2-selection__rendered{padding-left:0;line-height:1.4;color:#495057}.jconfirm-box .select2-container--default .select2-selection--single .select2-selection__placeholder,.adspro-dialog-box .select2-container--default .select2-selection--single .select2-selection__placeholder{color:#cbd5e0}.jconfirm-box .select2-container--default .select2-selection--single .select2-selection__arrow,.adspro-dialog-box .select2-container--default .select2-selection--single .select2-selection__arrow{height:100%;right:8px}.jconfirm-box .select2-container--default.select2-container--focus .select2-selection--single,.jconfirm-box .select2-container--default .select2-selection--single:hover,.adspro-dialog-box .select2-container--default.select2-container--focus .select2-selection--single,.adspro-dialog-box .select2-container--default .select2-selection--single:hover{border-color:#6690f4;box-shadow:0 0 0 3px rgba(102,144,244,.1);outline:0}.jconfirm-box .select2-container .select2-dropdown,.adspro-dialog-box .select2-container .select2-dropdown{border-color:#e2e8f0;border-radius:0 0 6px 6px;font-size:14px}.jconfirm-box .select2-container .select2-search--dropdown .select2-search__field,.adspro-dialog-box .select2-container .select2-search--dropdown .select2-search__field{padding:6px 10px;border-radius:4px;border:1px solid #e2e8f0;font-size:14px}.jconfirm-box .select2-container--default .select2-results__option--highlighted[aria-selected],.adspro-dialog-box .select2-container--default .select2-results__option--highlighted[aria-selected]{background-color:#6690f4;color:#fff}@media(max-width: 992px){.sidebar{transform:translateX(-100%)}.sidebar.mobile-open{transform:translateX(0)}.main-wrapper{margin-left:0 !important}}.campaign-terms-wrap{display:flex;flex-direction:column;gap:20px;margin-top:20px}.campaign-terms-page{max-width:100%;overflow:hidden}.campaign-terms-page .campaigns-filters{flex-wrap:wrap}.campaign-terms-page .campaigns-filters .filter-group{min-width:220px}.campaign-terms-page .campaigns-filters .filter-group.terms-columns-group{min-width:280px}.campaign-terms-page .terms-card-toggle{margin-left:auto;width:28px;height:28px;border:1px solid #e2e8f0;border-radius:6px;background:#fff;color:#475569;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s}.campaign-terms-page .terms-card-toggle:hover{background:#f8fafc;border-color:#cbd5e1}.campaign-terms-page .terms-adgroups-card.is-collapsed .campaigns-extra-table-wrap{display:none}.campaign-terms-page .terms-search-toolbar{display:flex;align-items:center;gap:10px;padding:10px 12px;border-bottom:1px solid #eef2f7;background:#fff}.campaign-terms-page .terms-search-toolbar label{font-size:12px;font-weight:600;color:#475569;display:inline-flex;align-items:center;gap:6px;margin:0;white-space:nowrap}.campaign-terms-page .terms-search-toolbar .terms-search-toolbar-label{min-width:86px}.campaign-terms-page .terms-search-toolbar #terms_min_clicks_all,.campaign-terms-page .terms-search-toolbar #terms_max_clicks_all{width:160px;height:32px}.campaign-terms-page .terms-search-toolbar #terms_min_conversions_all,.campaign-terms-page .terms-search-toolbar #terms_max_conversions_all{width:130px;max-width:130px}.campaign-terms-page .terms-search-selected-label{margin:0;font-size:12px;color:#475569;font-weight:600;white-space:nowrap}.campaign-terms-page .terms-ai-analyze-btn{margin-left:auto;display:inline-flex;align-items:center;gap:6px;height:32px;padding:0 12px;border-radius:6px;border:1px solid #bfdbfe;background:#eff6ff;color:#1d4ed8;font-size:12px;font-weight:600;cursor:pointer;transition:all .2s}.campaign-terms-page .terms-ai-analyze-btn:hover{background:#dbeafe;border-color:#93c5fd}.campaign-terms-page .terms-ai-analyze-btn:disabled{opacity:.6;cursor:wait}.campaign-terms-page .terms-negative-toolbar{display:flex;align-items:center;gap:10px;padding:10px 12px;border-bottom:1px solid #eef2f7;background:#fff}.campaign-terms-page .terms-negative-bulk-btn{display:inline-flex;align-items:center;gap:6px;height:32px;padding:0 12px;border-radius:6px;border:1px solid #fecaca;background:#fef2f2;color:#dc2626;font-size:12px;font-weight:600;cursor:pointer;transition:all .2s}.campaign-terms-page .terms-negative-bulk-btn:hover{background:#fee2e2;border-color:#fca5a5}.campaign-terms-page .terms-negative-bulk-btn:disabled{opacity:.5;cursor:not-allowed}.campaign-terms-page table.campaigns-extra-table>thead>tr>th{position:sticky;top:0;z-index:2;background-color:#111827 !important;color:#e5e7eb !important;border-bottom:1px solid #0b1220 !important;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.4px;padding:10px 12px;white-space:nowrap}.campaign-terms-page #terms_search_table thead th .dt-column-order,.campaign-terms-page #terms_negative_table thead th .dt-column-order{display:none !important}.campaign-terms-page #terms_search_table thead th.dt-orderable-asc,.campaign-terms-page #terms_search_table thead th.dt-orderable-desc,.campaign-terms-page #terms_negative_table thead th.dt-orderable-asc,.campaign-terms-page #terms_negative_table thead th.dt-orderable-desc{cursor:pointer;padding-right:34px;overflow:hidden}.campaign-terms-page #terms_search_table thead th .dt-column-title,.campaign-terms-page #terms_negative_table thead th .dt-column-title{display:block;overflow:hidden;text-overflow:ellipsis;padding-right:2px}.campaign-terms-page #terms_search_table thead th.dt-orderable-asc::after,.campaign-terms-page #terms_search_table thead th.dt-orderable-desc::after,.campaign-terms-page #terms_negative_table thead th.dt-orderable-asc::after,.campaign-terms-page #terms_negative_table thead th.dt-orderable-desc::after{content:\"↕\";position:absolute;right:10px;top:50%;transform:translateY(-50%);width:16px;height:16px;border-radius:999px;font-size:12px;font-weight:700;line-height:16px;text-align:center;color:#e5e7eb;background:#374151}.campaign-terms-page #terms_search_table thead th.dt-ordering-asc::after,.campaign-terms-page #terms_negative_table thead th.dt-ordering-asc::after,.campaign-terms-page #terms_search_table thead th[aria-sort=ascending]::after,.campaign-terms-page #terms_negative_table thead th[aria-sort=ascending]::after{content:\"▲\";color:#fff;background:#2563eb}.campaign-terms-page #terms_search_table thead th.dt-ordering-desc::after,.campaign-terms-page #terms_negative_table thead th.dt-ordering-desc::after,.campaign-terms-page #terms_search_table thead th[aria-sort=descending]::after,.campaign-terms-page #terms_negative_table thead th[aria-sort=descending]::after{content:\"▼\";color:#fff;background:#2563eb}.campaign-terms-page #terms_negative_select_all,.campaign-terms-page .terms-negative-select-row,.campaign-terms-page #terms_search_select_all,.campaign-terms-page .terms-search-select-row{width:14px;height:14px;cursor:pointer}.campaign-terms-page .dt-layout-row:first-child{display:none}.campaign-terms-page .dt-layout-row{padding:10px 12px;margin:0 !important;border-top:1px solid #f1f5f9}.campaign-terms-page .dt-info{font-size:12px;color:#64748b}.campaign-terms-page .dt-paging .pagination{margin:0;padding:0;list-style:none !important;display:flex;align-items:center;gap:6px}.campaign-terms-page .dt-paging .pagination .page-item{list-style:none !important}.campaign-terms-page .dt-paging .pagination .page-item .page-link{display:inline-flex;align-items:center;justify-content:center;min-width:36px;width:fit-content;height:32px;padding:0 12px;border-radius:6px;font-size:12px;font-weight:500;border:1px solid #e2e8f0;background:#fff;color:#4e5e6a;text-decoration:none;line-height:1;white-space:nowrap}.campaign-terms-page .dt-paging .pagination .page-item .page-link:hover{background:#eef2ff;color:#6690f4;border-color:#6690f4}.campaign-terms-page .dt-paging .pagination .page-item.previous .page-link,.campaign-terms-page .dt-paging .pagination .page-item.next .page-link{min-width:72px}.campaign-terms-page .dt-paging .pagination .page-item.active .page-link{background:#6690f4;color:#fff;border-color:#6690f4}.campaign-terms-page .dt-paging .pagination .page-item.disabled .page-link{opacity:.35;cursor:default;pointer-events:none}.terms-columns-box{display:flex;flex-direction:column;gap:6px}.terms-columns-control{border:1px solid #e2e8f0;border-radius:6px;background:#fff;overflow:hidden}.terms-columns-control summary{cursor:pointer;padding:8px 10px;font-size:12px;font-weight:600;color:#334155;list-style:none}.terms-columns-control summary::-webkit-details-marker{display:none}.terms-columns-control summary::after{content:\"▼\";float:right;font-size:10px;color:#64748b;margin-top:2px}.terms-columns-control[open] summary::after{content:\"▲\"}.terms-columns-list{border-top:1px solid #eef2f7;padding:8px 10px;max-height:180px;overflow-y:auto}.terms-columns-list .terms-col-item{display:flex;align-items:center;gap:8px;font-size:12px;color:#334155;margin-bottom:6px}.terms-columns-list .terms-col-item:last-child{margin-bottom:0}.terms-columns-list .terms-col-item input[type=checkbox]{margin:0}.campaigns-extra-card{background:#fff;border-radius:10px;box-shadow:0 1px 4px rgba(0,0,0,.06);overflow:hidden}.campaigns-extra-card-title{padding:14px 16px;border-bottom:1px solid #e2e8f0;font-size:13px;font-weight:700;color:#334155;display:flex;align-items:center;gap:8px}.campaigns-extra-card-title .terms-card-title-label{display:inline-flex;align-items:center;gap:8px}.campaigns-extra-table-wrap{overflow:auto}.campaigns-extra-table{margin:0;width:100%;table-layout:fixed}.campaigns-extra-table tbody td{padding:9px 12px;border-bottom:1px solid #f1f5f9;font-size:13px;color:#334155;vertical-align:middle;white-space:nowrap}.campaigns-extra-table td.num-cell{text-align:right;white-space:nowrap}.campaigns-extra-table td.text-cell{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.campaigns-extra-table th.terms-negative-select-cell,.campaigns-extra-table td.terms-negative-select-cell,.campaigns-extra-table th.terms-search-select-cell,.campaigns-extra-table td.terms-search-select-cell{text-align:center}.campaigns-extra-table th.phrase-nowrap,.campaigns-extra-table td.phrase-nowrap{white-space:nowrap !important;overflow:hidden;text-overflow:ellipsis}.campaigns-extra-table .terms-add-negative-btn,.campaigns-extra-table .terms-remove-negative-btn{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:6px;cursor:pointer;transition:all .2s}.campaigns-extra-table .terms-add-negative-btn{border:1px solid #e2e8f0;background:#eef2ff;color:#3b82f6}.campaigns-extra-table .terms-add-negative-btn:hover{background:#3b82f6;color:#fff;border-color:#3b82f6}.campaigns-extra-table .terms-remove-negative-btn{border:1px solid #fecaca;background:#fef2f2;color:#dc2626}.campaigns-extra-table .terms-remove-negative-btn:hover{background:#dc2626;color:#fff;border-color:#dc2626}.campaigns-extra-table tbody tr:hover{background:#f8fafc}.campaigns-extra-table tbody tr.term-is-negative td{color:#dc2626}.campaigns-extra-table tbody tr.term-is-negative:hover{background:#fef2f2}.campaigns-empty-row{text-align:center;color:#94a3b8 !important;font-style:italic}.terms-ai-modal-toolbar{display:flex;align-items:center;gap:10px;margin-bottom:10px}.terms-ai-modal-toolbar label{font-size:12px;font-weight:600;color:#334155;margin:0}.terms-ai-modal-toolbar .form-control{width:200px;height:32px}.terms-ai-summary{font-size:12px;color:#64748b;margin-bottom:10px}.terms-ai-results-wrap{border:1px solid #e2e8f0;border-radius:8px;max-height:420px;overflow:auto}.terms-ai-results-table{width:100%;border-collapse:collapse;font-size:12px}.terms-ai-results-table th,.terms-ai-results-table td{border-bottom:1px solid #eef2f7;padding:8px;vertical-align:middle}.terms-ai-results-table th{position:sticky;top:0;background:#f8fafc;color:#334155;font-weight:700}.terms-ai-results-table td.term-col{min-width:260px;max-width:380px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.terms-ai-results-table td.reason-col{min-width:320px}.terms-ai-action-badge{display:inline-flex;align-items:center;justify-content:center;border-radius:999px;padding:2px 8px;font-size:11px;font-weight:700}.terms-ai-action-badge.action-exclude{background:#fee2e2;color:#b91c1c}.terms-ai-action-badge.action-keep{background:#dcfce7;color:#166534}.products-page .products-filters .filter-group.filter-group-columns{min-width:240px}.products-columns-control{border:1px solid #e2e8f0;border-radius:6px;background:#fff;overflow:hidden}.products-columns-control summary{cursor:pointer;padding:8px 10px;font-size:12px;font-weight:600;color:#334155;list-style:none}.products-columns-control summary::-webkit-details-marker{display:none}.products-columns-control summary::after{content:\"▼\";float:right;font-size:10px;color:#64748b;margin-top:2px}.products-columns-control[open] summary::after{content:\"▲\"}.products-columns-list{border-top:1px solid #eef2f7;padding:8px 10px;max-height:220px;overflow-y:auto}.products-columns-list .products-col-item{display:flex;align-items:center;gap:8px;font-size:12px;color:#334155;margin-bottom:6px}.products-columns-list .products-col-item:last-child{margin-bottom:0}.products-columns-list .products-col-item input[type=checkbox]{margin:0}#products th:last-child,#products td:last-child{white-space:nowrap}#products tr.product-row-unavailable{opacity:.45}#products tr.product-row-unavailable td{background-color:#f0f0f0 !important}#products .products-row-actions{display:inline-flex;align-items:center;gap:4px}#products .products-row-actions .btn{width:38px;height:32px;padding:0;display:inline-flex;align-items:center;justify-content:center;border-radius:4px !important}#products .products-row-actions .btn i{line-height:1}.logs-page .logs-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.logs-page .logs-header h2{margin:0;font-size:20px;font-weight:600;color:#2d3748}.logs-page .logs-filters{display:flex;flex-wrap:wrap;align-items:flex-end;gap:14px;margin-bottom:16px}.logs-page .logs-filters .filter-group{flex:1 1 160px;min-width:0;max-width:220px}.logs-page .logs-filters .filter-group label{display:block;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:#8899a6;margin-bottom:6px}.logs-page .logs-filters .filter-group .form-control{width:100%;padding:8px 12px;border:1px solid #e2e8f0;border-radius:8px;font-size:14px;color:#2d3748;background:#fff;transition:border-color .2s}.logs-page .logs-filters .filter-group .form-control:focus{outline:none;border-color:#6690f4;box-shadow:0 0 0 3px rgba(102,144,244,.1)}.logs-page .logs-filters .filter-group select.form-control{appearance:none;-webkit-appearance:none;background-image:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%238899A6' d='M6 8L1 3h10z'/%3E%3C/svg%3E\");background-repeat:no-repeat;background-position:right 12px center;padding-right:32px}.logs-page .logs-filters .filter-group.filter-group-buttons{flex:0 0 auto;display:flex;gap:6px;max-width:none}.logs-page .logs-table-wrap .table{width:100%}.logs-page .badge{display:inline-block;padding:3px 8px;border-radius:4px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.3px}.logs-page .badge-success{background:#d1fae5;color:#065f46}.logs-page .badge-danger{background:#fee2e2;color:#991b1b}.logs-page .badge-warning{background:#fef3c7;color:#92400e}.js-title-alt-apply{color:#000;justify-content:flex-start}","@use \"sass:color\";\r\n// === adsPRO - Nowe style ===\r\n\r\n// --- Zmienne ---\r\n$cPrimary: #6690F4;\r\n$cPrimaryDark: #3164db;\r\n$cSidebarBg: #1E2A3A;\r\n$cSidebarText: #A8B7C7;\r\n$cSidebarHover: #263548;\r\n$cSidebarActive: $cPrimary;\r\n$cContentBg: #F4F6F9;\r\n$cWhite: #FFFFFF;\r\n$cText: #4E5E6A;\r\n$cTextDark: #2D3748;\r\n$cBorder: #E2E8F0;\r\n$cSuccess: #57B951;\r\n$cSuccessDark: #4a9c3b;\r\n$cDanger: #CC0000;\r\n$cDangerDark: #b30000;\r\n$cWarning: #FF8C00;\r\n$cGreenLight: #57b951;\r\n\r\n$sidebarWidth: 260px;\r\n$sidebarCollapsed: 70px;\r\n$topbarHeight: 56px;\r\n$transitionSpeed: 0.3s;\r\n\r\n// --- Reset i baza ---\r\n* {\r\n box-sizing: border-box;\r\n}\r\n\r\nbody {\r\n font-family: \"Roboto\", sans-serif;\r\n margin: 0;\r\n padding: 0;\r\n font-size: 14px;\r\n color: $cText;\r\n background: $cContentBg;\r\n max-width: 100vw;\r\n overflow-x: hidden;\r\n}\r\n\r\n.hide {\r\n display: none;\r\n}\r\n\r\n// --- Typografia ---\r\nsmall {\r\n font-size: .75em;\r\n}\r\n\r\n.text-right {\r\n text-align: right;\r\n}\r\n\r\n.text-bold {\r\n font-weight: 700 !important;\r\n}\r\n\r\n.nowrap {\r\n white-space: nowrap;\r\n}\r\n\r\n// ===========================\r\n// LOGIN PAGE (unlogged)\r\n// ===========================\r\nbody.unlogged {\r\n background: $cContentBg;\r\n margin: 0;\r\n padding: 0;\r\n}\r\n\r\n.login-container {\r\n display: flex;\r\n min-height: 100vh;\r\n}\r\n\r\n.login-brand {\r\n flex: 0 0 45%;\r\n background: linear-gradient(135deg, $cSidebarBg 0%, #2C3E57 50%, $cPrimary 100%);\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n padding: 60px;\r\n position: relative;\r\n overflow: hidden;\r\n\r\n &::before {\r\n content: '';\r\n position: absolute;\r\n top: -50%;\r\n right: -50%;\r\n width: 100%;\r\n height: 100%;\r\n background: radial-gradient(circle, rgba($cPrimary, 0.15) 0%, transparent 70%);\r\n border-radius: 50%;\r\n }\r\n\r\n .brand-content {\r\n position: relative;\r\n z-index: 1;\r\n color: $cWhite;\r\n max-width: 400px;\r\n }\r\n\r\n .brand-logo {\r\n font-size: 48px;\r\n font-weight: 300;\r\n margin-bottom: 20px;\r\n letter-spacing: -1px;\r\n\r\n strong {\r\n font-weight: 700;\r\n }\r\n }\r\n\r\n .brand-tagline {\r\n font-size: 18px;\r\n opacity: 0.85;\r\n line-height: 1.6;\r\n margin-bottom: 50px;\r\n }\r\n\r\n .brand-features {\r\n .feature {\r\n display: flex;\r\n align-items: center;\r\n gap: 15px;\r\n margin-bottom: 20px;\r\n opacity: 0.8;\r\n\r\n i {\r\n font-size: 20px;\r\n width: 40px;\r\n height: 40px;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n background: rgba($cWhite, 0.1);\r\n border-radius: 10px;\r\n }\r\n\r\n span {\r\n font-size: 15px;\r\n }\r\n }\r\n }\r\n}\r\n\r\n.login-form-wrapper {\r\n flex: 1;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n padding: 60px;\r\n background: $cWhite;\r\n}\r\n\r\n.login-box {\r\n width: 100%;\r\n max-width: 420px;\r\n\r\n .login-header {\r\n margin-bottom: 35px;\r\n\r\n h1 {\r\n font-size: 28px;\r\n font-weight: 700;\r\n color: $cTextDark;\r\n margin: 0 0 8px;\r\n }\r\n\r\n p {\r\n color: #718096;\r\n font-size: 15px;\r\n margin: 0;\r\n }\r\n }\r\n\r\n .form-group {\r\n margin-bottom: 20px;\r\n\r\n label {\r\n display: block;\r\n font-size: 13px;\r\n font-weight: 600;\r\n color: $cTextDark;\r\n margin-bottom: 6px;\r\n }\r\n }\r\n\r\n .input-with-icon {\r\n position: relative;\r\n\r\n i {\r\n position: absolute;\r\n left: 14px;\r\n top: 50%;\r\n transform: translateY(-50%);\r\n color: #A0AEC0;\r\n font-size: 14px;\r\n }\r\n\r\n .form-control {\r\n padding-left: 42px;\r\n }\r\n }\r\n\r\n .form-control {\r\n width: 100%;\r\n height: 46px;\r\n border: 2px solid $cBorder;\r\n border-radius: 8px;\r\n padding: 0 14px;\r\n font-size: 14px;\r\n font-family: \"Roboto\", sans-serif;\r\n color: $cTextDark;\r\n transition: border-color $transitionSpeed, box-shadow $transitionSpeed;\r\n\r\n &::placeholder {\r\n color: #CBD5E0;\r\n }\r\n\r\n &:focus {\r\n border-color: $cPrimary;\r\n box-shadow: 0 0 0 3px rgba($cPrimary, 0.15);\r\n outline: none;\r\n }\r\n }\r\n\r\n .form-error {\r\n color: $cDanger;\r\n font-size: 12px;\r\n margin-top: 4px;\r\n }\r\n\r\n .checkbox-group {\r\n .checkbox-label {\r\n display: flex;\r\n align-items: center;\r\n gap: 8px;\r\n cursor: pointer;\r\n font-size: 13px;\r\n color: #718096;\r\n font-weight: 400;\r\n\r\n input[type=\"checkbox\"] {\r\n width: 16px;\r\n height: 16px;\r\n accent-color: $cPrimary;\r\n }\r\n }\r\n }\r\n\r\n .btn-login {\r\n width: 100%;\r\n height: 48px;\r\n font-size: 15px;\r\n font-weight: 600;\r\n border-radius: 8px;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n gap: 8px;\r\n\r\n &.disabled {\r\n opacity: 0.7;\r\n pointer-events: none;\r\n }\r\n }\r\n\r\n .alert {\r\n display: none;\r\n padding: 12px 16px;\r\n border-radius: 8px;\r\n font-size: 13px;\r\n margin-bottom: 20px;\r\n\r\n &.alert-danger {\r\n background: #FFF5F5;\r\n color: $cDanger;\r\n border: 1px solid #FED7D7;\r\n }\r\n\r\n &.alert-success {\r\n background: #F0FFF4;\r\n color: #276749;\r\n border: 1px solid #C6F6D5;\r\n }\r\n }\r\n}\r\n\r\n// Responsywność logowania\r\n@media (max-width: 768px) {\r\n .login-brand {\r\n display: none;\r\n }\r\n\r\n .login-form-wrapper {\r\n padding: 30px 20px;\r\n }\r\n}\r\n\r\n// ===========================\r\n// LAYOUT (logged) - SIDEBAR\r\n// ===========================\r\nbody.logged {\r\n display: flex;\r\n min-height: 100vh;\r\n background: $cContentBg;\r\n}\r\n\r\n// --- Sidebar ---\r\n.sidebar {\r\n width: $sidebarWidth;\r\n min-height: 100vh;\r\n background: $cSidebarBg;\r\n position: fixed;\r\n top: 0;\r\n left: 0;\r\n z-index: 1000;\r\n display: flex;\r\n flex-direction: column;\r\n transition: width $transitionSpeed ease;\r\n overflow: hidden;\r\n\r\n &.collapsed {\r\n width: $sidebarCollapsed;\r\n\r\n .sidebar-header {\r\n padding: 16px 0;\r\n justify-content: center;\r\n\r\n .sidebar-logo {\r\n display: none;\r\n }\r\n\r\n .sidebar-toggle i {\r\n transform: rotate(180deg);\r\n }\r\n }\r\n\r\n .sidebar-nav ul li a {\r\n padding: 12px 0;\r\n justify-content: center;\r\n\r\n span {\r\n display: none;\r\n }\r\n\r\n i {\r\n margin-right: 0;\r\n font-size: 18px;\r\n }\r\n }\r\n\r\n .sidebar-nav ul li.nav-group .nav-group-label {\r\n padding: 12px 0;\r\n justify-content: center;\r\n\r\n span {\r\n display: none;\r\n }\r\n\r\n i {\r\n margin-right: 0;\r\n font-size: 18px;\r\n }\r\n }\r\n\r\n .sidebar-footer {\r\n .sidebar-user {\r\n justify-content: center;\r\n\r\n .user-info {\r\n display: none;\r\n }\r\n }\r\n\r\n .sidebar-logout {\r\n justify-content: center;\r\n\r\n span {\r\n display: none;\r\n }\r\n }\r\n }\r\n\r\n .nav-divider {\r\n margin: 8px 15px;\r\n }\r\n }\r\n}\r\n\r\n.sidebar-header {\r\n display: flex;\r\n align-items: center;\r\n justify-content: space-between;\r\n padding: 20px 20px 16px;\r\n border-bottom: 1px solid rgba($cWhite, 0.08);\r\n\r\n .sidebar-logo a {\r\n color: $cWhite;\r\n text-decoration: none;\r\n font-size: 24px;\r\n font-weight: 300;\r\n letter-spacing: -0.5px;\r\n\r\n strong {\r\n font-weight: 700;\r\n }\r\n }\r\n\r\n .sidebar-toggle {\r\n background: none;\r\n border: none;\r\n color: $cSidebarText;\r\n cursor: pointer;\r\n padding: 6px;\r\n border-radius: 6px;\r\n transition: all $transitionSpeed;\r\n\r\n &:hover {\r\n background: rgba($cWhite, 0.08);\r\n color: $cWhite;\r\n }\r\n\r\n i {\r\n transition: transform $transitionSpeed;\r\n }\r\n }\r\n}\r\n\r\n.sidebar-nav {\r\n flex: 1;\r\n padding: 12px 0;\r\n overflow-y: auto;\r\n\r\n ul {\r\n list-style: none;\r\n margin: 0;\r\n padding: 0;\r\n\r\n li {\r\n &.nav-group {\r\n margin-bottom: 4px;\r\n\r\n .nav-group-label {\r\n display: flex;\r\n align-items: center;\r\n padding: 11px 20px;\r\n color: #D5DEEA;\r\n font-size: 12px;\r\n font-weight: 700;\r\n text-transform: uppercase;\r\n letter-spacing: 0.6px;\r\n border-left: 3px solid transparent;\r\n\r\n i {\r\n width: 20px;\r\n text-align: center;\r\n margin-right: 12px;\r\n font-size: 14px;\r\n color: #B6C4D3;\r\n }\r\n }\r\n\r\n .nav-submenu {\r\n margin: 0;\r\n padding: 0;\r\n list-style: none;\r\n\r\n li a {\r\n padding-left: 44px;\r\n }\r\n }\r\n\r\n &.active>.nav-group-label {\r\n color: $cWhite;\r\n background: rgba($cPrimary, 0.12);\r\n border-left-color: $cPrimary;\r\n\r\n i {\r\n color: $cPrimary;\r\n }\r\n }\r\n }\r\n\r\n &.nav-divider {\r\n height: 1px;\r\n background: rgba($cWhite, 0.08);\r\n margin: 8px 20px;\r\n }\r\n\r\n a {\r\n display: flex;\r\n align-items: center;\r\n padding: 11px 20px;\r\n color: $cSidebarText;\r\n text-decoration: none;\r\n font-size: 14px;\r\n transition: all 0.2s;\r\n border-left: 3px solid transparent;\r\n\r\n i {\r\n width: 20px;\r\n text-align: center;\r\n margin-right: 12px;\r\n font-size: 15px;\r\n }\r\n\r\n &:hover {\r\n background: $cSidebarHover;\r\n color: $cWhite;\r\n }\r\n }\r\n\r\n &.active>a {\r\n background: rgba($cPrimary, 0.15);\r\n color: $cWhite;\r\n border-left-color: $cPrimary;\r\n\r\n i {\r\n color: $cPrimary;\r\n }\r\n }\r\n }\r\n }\r\n}\r\n\r\n.badge-alerts-count {\r\n display: inline-flex;\r\n align-items: center;\r\n justify-content: center;\r\n min-width: 20px;\r\n height: 20px;\r\n padding: 0 6px;\r\n margin-left: 8px;\r\n border-radius: 50%;\r\n font-size: 11px;\r\n font-weight: 600;\r\n line-height: 1;\r\n background: $cWhite;\r\n color: $cPrimary;\r\n}\r\n\r\n.sidebar-footer {\r\n padding: 16px 20px;\r\n border-top: 1px solid rgba($cWhite, 0.08);\r\n\r\n .sidebar-user {\r\n display: flex;\r\n align-items: center;\r\n gap: 10px;\r\n margin-bottom: 12px;\r\n\r\n .user-avatar {\r\n width: 34px;\r\n height: 34px;\r\n border-radius: 50%;\r\n background: rgba($cPrimary, 0.2);\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n color: $cPrimary;\r\n font-size: 14px;\r\n flex-shrink: 0;\r\n }\r\n\r\n .user-info {\r\n overflow: hidden;\r\n\r\n .user-email {\r\n color: $cSidebarText;\r\n font-size: 12px;\r\n display: block;\r\n white-space: nowrap;\r\n overflow: hidden;\r\n text-overflow: ellipsis;\r\n }\r\n }\r\n }\r\n\r\n .sidebar-logout {\r\n display: flex;\r\n align-items: center;\r\n gap: 8px;\r\n color: #E53E3E;\r\n text-decoration: none;\r\n font-size: 13px;\r\n padding: 8px 10px;\r\n border-radius: 6px;\r\n transition: all 0.2s;\r\n\r\n i {\r\n font-size: 14px;\r\n }\r\n\r\n &:hover {\r\n background: rgba(#E53E3E, 0.1);\r\n }\r\n }\r\n}\r\n\r\n// --- Main wrapper ---\r\n.main-wrapper {\r\n margin-left: $sidebarWidth;\r\n flex: 1;\r\n min-height: 100vh;\r\n transition: margin-left $transitionSpeed ease;\r\n display: flex;\r\n flex-direction: column;\r\n\r\n &.expanded {\r\n margin-left: $sidebarCollapsed;\r\n }\r\n}\r\n\r\n// --- Topbar ---\r\n.topbar {\r\n height: $topbarHeight;\r\n background: $cWhite;\r\n border-bottom: 1px solid $cBorder;\r\n display: flex;\r\n align-items: center;\r\n padding: 0 25px;\r\n position: sticky;\r\n top: 0;\r\n z-index: 500;\r\n\r\n .topbar-toggle {\r\n background: none;\r\n border: none;\r\n color: $cText;\r\n cursor: pointer;\r\n padding: 8px 10px;\r\n border-radius: 6px;\r\n font-size: 16px;\r\n margin-right: 15px;\r\n transition: all 0.2s;\r\n\r\n &:hover {\r\n background: $cContentBg;\r\n }\r\n }\r\n\r\n .topbar-breadcrumb {\r\n font-size: 16px;\r\n font-weight: 600;\r\n color: $cTextDark;\r\n }\r\n}\r\n\r\n// --- Content area ---\r\n.content {\r\n flex: 1;\r\n padding: 25px;\r\n}\r\n\r\n.app-alert {\r\n background: #EBF8FF;\r\n border: 1px solid #BEE3F8;\r\n color: #2B6CB0;\r\n padding: 12px 16px;\r\n border-radius: 8px;\r\n margin-bottom: 20px;\r\n font-size: 14px;\r\n}\r\n\r\n// ===========================\r\n// KOMPONENTY WSPÓLNE\r\n// ===========================\r\n\r\n// --- Buttons ---\r\n.btn {\r\n padding: 10px 20px;\r\n transition: all 0.2s ease;\r\n color: $cWhite;\r\n border: 0;\r\n border-radius: 6px;\r\n cursor: pointer;\r\n display: inline-flex;\r\n text-decoration: none;\r\n gap: 6px;\r\n justify-content: center;\r\n align-items: center;\r\n font-size: 14px;\r\n font-family: \"Roboto\", sans-serif;\r\n font-weight: 500;\r\n\r\n &.btn_small,\r\n &.btn-xs,\r\n &.btn-sm {\r\n padding: 5px 10px;\r\n font-size: 12px;\r\n\r\n i {\r\n font-size: 11px;\r\n }\r\n }\r\n\r\n &.btn-success {\r\n background: $cSuccess;\r\n\r\n &:hover {\r\n background: $cSuccessDark;\r\n }\r\n }\r\n\r\n &.btn-primary {\r\n background: $cPrimary;\r\n\r\n &:hover {\r\n background: $cPrimaryDark;\r\n }\r\n }\r\n\r\n &.btn-danger {\r\n background: $cDanger;\r\n\r\n &:hover {\r\n background: $cDangerDark;\r\n }\r\n }\r\n\r\n &.disabled {\r\n opacity: 0.6;\r\n pointer-events: none;\r\n }\r\n}\r\n\r\n// --- Form controls ---\r\n.form-control {\r\n border: 1px solid $cBorder;\r\n border-radius: 6px;\r\n height: 38px;\r\n width: 100%;\r\n padding: 6px 12px;\r\n font-family: \"Roboto\", sans-serif;\r\n font-size: 14px;\r\n color: $cTextDark;\r\n transition: border-color 0.2s, box-shadow 0.2s;\r\n\r\n option {\r\n padding: 5px;\r\n }\r\n\r\n &:focus {\r\n border-color: $cPrimary;\r\n box-shadow: 0 0 0 3px rgba($cPrimary, 0.1);\r\n outline: none;\r\n }\r\n}\r\n\r\ninput[type=\"checkbox\"] {\r\n border: 1px solid $cBorder;\r\n}\r\n\r\n// --- Tables ---\r\ntable {\r\n border-collapse: collapse;\r\n font-size: 13px;\r\n}\r\n\r\n.table {\r\n width: 100%;\r\n\r\n th,\r\n td {\r\n border: 1px solid $cBorder;\r\n padding: 8px 10px;\r\n }\r\n\r\n th {\r\n background: #F7FAFC;\r\n font-weight: 600;\r\n font-size: 12px;\r\n text-transform: uppercase;\r\n letter-spacing: 0.03em;\r\n color: #718096;\r\n }\r\n\r\n td.center {\r\n text-align: center;\r\n }\r\n\r\n td.left {\r\n text-align: left;\r\n }\r\n\r\n &.table-sm td {\r\n padding: 5px !important;\r\n }\r\n\r\n input.form-control {\r\n font-size: 13px;\r\n height: 32px;\r\n }\r\n}\r\n\r\n// --- Unified app tables (clients/campaigns/products/logs) ---\r\n.clients-table-wrap,\r\n.campaigns-table-wrap,\r\n.products-table-wrap,\r\n.logs-table-wrap {\r\n background: $cWhite;\r\n border-radius: 10px;\r\n box-shadow: 0 1px 4px rgba(0, 0, 0, 0.06);\r\n overflow-x: auto;\r\n max-width: 100%;\r\n -ms-overflow-style: none;\r\n scrollbar-width: none;\r\n\r\n &::-webkit-scrollbar {\r\n display: none;\r\n }\r\n\r\n .table {\r\n margin: 0;\r\n width: 100% !important;\r\n\r\n thead th {\r\n background: #F8FAFC;\r\n border-bottom: 2px solid $cBorder;\r\n font-size: 12px;\r\n font-weight: 700;\r\n text-transform: uppercase;\r\n letter-spacing: 0.5px;\r\n color: #8899A6;\r\n padding: 12px 16px;\r\n white-space: nowrap;\r\n }\r\n\r\n tbody td {\r\n padding: 10px 16px;\r\n font-size: 13px;\r\n color: $cTextDark;\r\n vertical-align: middle;\r\n border-bottom: 1px solid #F1F5F9;\r\n }\r\n\r\n tbody tr:hover td {\r\n background: #F8FAFC;\r\n }\r\n }\r\n\r\n .dt-layout-row {\r\n padding: 14px 20px;\r\n margin: 0 !important;\r\n border-top: 1px solid #F1F5F9;\r\n\r\n &:first-child {\r\n display: none;\r\n }\r\n }\r\n\r\n .dt-info {\r\n font-size: 13px;\r\n color: #8899A6;\r\n }\r\n\r\n .dt-paging {\r\n .pagination {\r\n margin: 0;\r\n padding: 0;\r\n list-style: none;\r\n display: flex;\r\n align-items: center;\r\n gap: 6px;\r\n\r\n .page-item {\r\n .page-link {\r\n display: inline-flex;\r\n align-items: center;\r\n justify-content: center;\r\n min-width: 36px;\r\n width: fit-content;\r\n height: 36px;\r\n padding: 0 14px;\r\n border-radius: 8px;\r\n font-size: 13px;\r\n font-weight: 500;\r\n border: 1px solid $cBorder;\r\n background: $cWhite;\r\n color: $cText;\r\n cursor: pointer;\r\n transition: all 0.2s;\r\n text-decoration: none;\r\n line-height: 1;\r\n white-space: nowrap;\r\n\r\n &:hover {\r\n background: #EEF2FF;\r\n color: $cPrimary;\r\n border-color: $cPrimary;\r\n }\r\n }\r\n\r\n &.active .page-link {\r\n background: $cPrimary;\r\n color: $cWhite;\r\n border-color: $cPrimary;\r\n font-weight: 600;\r\n }\r\n\r\n &.disabled .page-link {\r\n opacity: 0.35;\r\n cursor: default;\r\n pointer-events: none;\r\n }\r\n }\r\n }\r\n }\r\n\r\n .dt-processing {\r\n background: rgba($cWhite, 0.9);\r\n color: $cText;\r\n font-size: 14px;\r\n }\r\n}\r\n\r\n// --- Cards ---\r\n.card {\r\n background: $cWhite;\r\n padding: 20px;\r\n border-radius: 8px;\r\n color: $cTextDark;\r\n font-size: 14px;\r\n box-shadow: 0 1px 3px rgba(0, 0, 0, 0.06);\r\n\r\n &.mb25 {\r\n margin-bottom: 20px;\r\n }\r\n\r\n .card-header {\r\n font-weight: 600;\r\n font-size: 15px;\r\n }\r\n\r\n .card-body {\r\n padding-top: 12px;\r\n\r\n table {\r\n\r\n th,\r\n td {\r\n font-size: 13px;\r\n\r\n &.bold {\r\n font-weight: 600;\r\n }\r\n\r\n &.text-right {\r\n text-align: right;\r\n }\r\n\r\n &.text-center {\r\n text-align: center;\r\n }\r\n }\r\n }\r\n }\r\n}\r\n\r\n// --- Action menu ---\r\n.action_menu {\r\n display: flex;\r\n margin-bottom: 20px;\r\n gap: 12px;\r\n\r\n .btn {\r\n padding: 8px 16px;\r\n\r\n &.btn_add {\r\n background: $cSuccess;\r\n\r\n &:hover {\r\n background: $cSuccessDark;\r\n }\r\n }\r\n\r\n &.btn_cancel {\r\n background: $cDanger;\r\n\r\n &:hover {\r\n background: $cDangerDark;\r\n }\r\n }\r\n }\r\n}\r\n\r\n// --- Settings page ---\r\n.settings-tabs {\r\n display: flex;\r\n gap: 8px;\r\n margin-bottom: 18px;\r\n\r\n .settings-tab {\r\n display: inline-flex;\r\n align-items: center;\r\n gap: 6px;\r\n padding: 8px 14px;\r\n border-radius: 8px;\r\n text-decoration: none;\r\n color: #6B7A89;\r\n background: #E9EEF5;\r\n border: 1px solid #D8E0EA;\r\n font-size: 13px;\r\n font-weight: 600;\r\n transition: all 0.2s;\r\n\r\n &:hover {\r\n color: $cTextDark;\r\n background: #DDE6F2;\r\n }\r\n\r\n &.active {\r\n color: $cWhite;\r\n background: $cPrimary;\r\n border-color: $cPrimary;\r\n }\r\n }\r\n}\r\n\r\n.settings-card {\r\n background: $cWhite;\r\n border-radius: 10px;\r\n padding: 28px;\r\n box-shadow: 0 1px 4px rgba(0, 0, 0, 0.06);\r\n\r\n .settings-card-header {\r\n display: flex;\r\n align-items: center;\r\n gap: 14px;\r\n margin-bottom: 24px;\r\n padding-bottom: 16px;\r\n border-bottom: 1px solid $cBorder;\r\n\r\n .settings-card-icon {\r\n width: 44px;\r\n height: 44px;\r\n border-radius: 10px;\r\n background: color.adjust($cPrimary, $lightness: 26%);\r\n color: $cPrimary;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n font-size: 18px;\r\n flex-shrink: 0;\r\n }\r\n\r\n h3 {\r\n margin: 0;\r\n font-size: 17px;\r\n font-weight: 600;\r\n color: $cTextDark;\r\n }\r\n\r\n small {\r\n color: #8899A6;\r\n font-size: 13px;\r\n }\r\n }\r\n\r\n .settings-field {\r\n margin-bottom: 18px;\r\n\r\n label {\r\n display: block;\r\n font-size: 13px;\r\n font-weight: 600;\r\n color: $cTextDark;\r\n margin-bottom: 6px;\r\n }\r\n }\r\n\r\n .settings-input-wrap {\r\n position: relative;\r\n\r\n .settings-input-icon {\r\n position: absolute;\r\n left: 12px;\r\n top: 50%;\r\n transform: translateY(-50%);\r\n color: #A0AEC0;\r\n font-size: 14px;\r\n pointer-events: none;\r\n }\r\n\r\n .form-control {\r\n padding-left: 38px;\r\n }\r\n\r\n .settings-toggle-pw {\r\n position: absolute;\r\n right: 4px;\r\n top: 50%;\r\n transform: translateY(-50%);\r\n background: none;\r\n border: none;\r\n color: #A0AEC0;\r\n cursor: pointer;\r\n padding: 6px 10px;\r\n font-size: 14px;\r\n transition: color 0.2s;\r\n\r\n &:hover {\r\n color: $cPrimary;\r\n }\r\n }\r\n }\r\n\r\n .settings-field .settings-toggle-label {\r\n display: inline-flex;\r\n align-items: center;\r\n gap: 10px;\r\n cursor: pointer;\r\n font-size: 14px;\r\n font-weight: 500;\r\n user-select: none;\r\n margin-bottom: 0;\r\n width: 100%;\r\n\r\n .settings-toggle-text {\r\n flex: 1 1 auto;\r\n min-width: 0;\r\n line-height: 1.35;\r\n }\r\n }\r\n\r\n .settings-toggle-checkbox {\r\n display: none;\r\n\r\n &+.settings-toggle-switch {\r\n display: inline-block;\r\n position: relative;\r\n width: 44px;\r\n height: 24px;\r\n background: #ccc;\r\n border-radius: 12px;\r\n transition: background 0.2s;\r\n flex-shrink: 0;\r\n\r\n &::after {\r\n content: '';\r\n position: absolute;\r\n top: 3px;\r\n left: 3px;\r\n width: 18px;\r\n height: 18px;\r\n background: #fff;\r\n border-radius: 50%;\r\n transition: transform 0.2s;\r\n }\r\n }\r\n\r\n &:checked+.settings-toggle-switch {\r\n background: #22C55E;\r\n\r\n &::after {\r\n transform: translateX(20px);\r\n }\r\n }\r\n }\r\n\r\n .settings-fields-grid {\r\n display: grid;\r\n grid-template-columns: 1fr 1fr;\r\n gap: 0 24px;\r\n\r\n @media (max-width: 768px) {\r\n grid-template-columns: 1fr;\r\n }\r\n }\r\n\r\n .settings-alert-error {\r\n display: flex;\r\n align-items: center;\r\n gap: 10px;\r\n background: #FFF5F5;\r\n color: $cDanger;\r\n border: 1px solid #FED7D7;\r\n border-radius: 8px;\r\n padding: 12px 16px;\r\n margin-bottom: 20px;\r\n font-size: 13px;\r\n\r\n i {\r\n font-size: 16px;\r\n flex-shrink: 0;\r\n }\r\n }\r\n}\r\n\r\n// --- Clients page ---\r\n.clients-page {\r\n .clients-header {\r\n display: flex;\r\n justify-content: space-between;\r\n align-items: center;\r\n margin-bottom: 20px;\r\n\r\n h2 {\r\n margin: 0;\r\n font-size: 20px;\r\n font-weight: 600;\r\n color: $cTextDark;\r\n\r\n i {\r\n color: $cPrimary;\r\n margin-right: 8px;\r\n }\r\n }\r\n }\r\n\r\n .clients-table-wrap {\r\n .table {\r\n .client-id {\r\n color: #8899A6;\r\n font-size: 13px;\r\n font-weight: 600;\r\n }\r\n\r\n .client-name {\r\n font-weight: 600;\r\n color: $cTextDark;\r\n }\r\n }\r\n }\r\n\r\n .badge-id {\r\n display: inline-block;\r\n background: #EEF2FF;\r\n color: $cPrimary;\r\n font-size: 13px;\r\n font-weight: 600;\r\n padding: 4px 10px;\r\n border-radius: 6px;\r\n font-family: monospace;\r\n }\r\n\r\n .actions-cell {\r\n text-align: center;\r\n white-space: nowrap;\r\n }\r\n\r\n .btn-icon {\r\n display: inline-flex;\r\n align-items: center;\r\n justify-content: center;\r\n width: 34px;\r\n height: 34px;\r\n border-radius: 8px;\r\n border: none;\r\n cursor: pointer;\r\n font-size: 14px;\r\n transition: all 0.2s;\r\n margin: 0 2px;\r\n\r\n &.btn-icon-edit {\r\n background: #EEF2FF;\r\n color: $cPrimary;\r\n\r\n &:hover {\r\n background: $cPrimary;\r\n color: $cWhite;\r\n }\r\n }\r\n\r\n &.btn-icon-delete {\r\n background: #FFF5F5;\r\n color: $cDanger;\r\n\r\n &:hover {\r\n background: $cDanger;\r\n color: $cWhite;\r\n }\r\n }\r\n\r\n &.btn-icon-sync {\r\n background: #F0FDF4;\r\n color: #16a34a;\r\n\r\n &:hover {\r\n background: #16a34a;\r\n color: $cWhite;\r\n }\r\n\r\n &:disabled {\r\n opacity: 0.7;\r\n cursor: wait;\r\n }\r\n\r\n &.is-queued {\r\n background: #FEF3C7;\r\n color: #D97706;\r\n }\r\n }\r\n }\r\n\r\n .client-sync-bars {\r\n display: flex;\r\n flex-direction: column;\r\n gap: 4px;\r\n }\r\n\r\n .client-sync-row {\r\n display: flex;\r\n align-items: center;\r\n gap: 4px;\r\n }\r\n\r\n .client-sync-label {\r\n font-size: 11px;\r\n font-weight: 600;\r\n color: #8899A6;\r\n width: 18px;\r\n flex-shrink: 0;\r\n }\r\n\r\n .client-sync-track {\r\n flex: 1;\r\n height: 6px;\r\n border-radius: 999px;\r\n background: #E9EEF5;\r\n overflow: hidden;\r\n }\r\n\r\n .client-sync-fill {\r\n height: 100%;\r\n border-radius: 999px;\r\n background: #CBD5E0;\r\n transition: width 0.4s ease;\r\n\r\n &.is-active {\r\n background: linear-gradient(90deg, #5A9BFF 0%, #2E6BDF 100%);\r\n }\r\n\r\n &.is-done {\r\n background: $cSuccess;\r\n }\r\n }\r\n\r\n .client-sync-pct {\r\n font-size: 11px;\r\n font-weight: 600;\r\n color: #8899A6;\r\n width: 32px;\r\n text-align: right;\r\n flex-shrink: 0;\r\n }\r\n\r\n .empty-state {\r\n text-align: center;\r\n padding: 50px 20px !important;\r\n color: #A0AEC0;\r\n\r\n i {\r\n font-size: 40px;\r\n margin-bottom: 12px;\r\n display: block;\r\n }\r\n\r\n p {\r\n margin: 0;\r\n font-size: 15px;\r\n }\r\n }\r\n}\r\n\r\n.btn-secondary {\r\n background: #E2E8F0;\r\n color: $cTextDark;\r\n border: none;\r\n padding: 8px 18px;\r\n border-radius: 6px;\r\n font-size: 14px;\r\n cursor: pointer;\r\n transition: background 0.2s;\r\n\r\n &:hover {\r\n background: #CBD5E0;\r\n }\r\n}\r\n\r\n// ===========================\r\n// CAMPAIGNS PAGE\r\n// ===========================\r\n.campaigns-page {\r\n max-width: 100%;\r\n overflow-x: hidden;\r\n width: 100%;\r\n\r\n .campaigns-header {\r\n display: flex;\r\n justify-content: space-between;\r\n align-items: center;\r\n margin-bottom: 20px;\r\n\r\n h2 {\r\n margin: 0;\r\n font-size: 20px;\r\n font-weight: 600;\r\n color: $cTextDark;\r\n\r\n i {\r\n color: $cPrimary;\r\n margin-right: 8px;\r\n }\r\n }\r\n }\r\n\r\n .campaigns-filters {\r\n display: flex;\r\n flex-wrap: wrap;\r\n gap: 20px;\r\n margin-bottom: 20px;\r\n\r\n .filter-group {\r\n flex: 1;\r\n min-width: 0;\r\n\r\n label {\r\n display: block;\r\n font-size: 12px;\r\n font-weight: 700;\r\n text-transform: uppercase;\r\n letter-spacing: 0.5px;\r\n color: #8899A6;\r\n margin-bottom: 6px;\r\n\r\n i {\r\n margin-right: 4px;\r\n }\r\n }\r\n\r\n .form-control {\r\n width: 100%;\r\n padding: 10px 14px;\r\n border: 1px solid $cBorder;\r\n border-radius: 8px;\r\n font-size: 14px;\r\n color: $cTextDark;\r\n background: $cWhite;\r\n transition: border-color 0.2s;\r\n appearance: none;\r\n -webkit-appearance: none;\r\n background-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%238899A6' d='M6 8L1 3h10z'/%3E%3C/svg%3E\");\r\n background-repeat: no-repeat;\r\n background-position: right 12px center;\r\n padding-right: 32px;\r\n\r\n &:focus {\r\n outline: none;\r\n border-color: $cPrimary;\r\n box-shadow: 0 0 0 3px rgba($cPrimary, 0.1);\r\n }\r\n }\r\n\r\n .filter-with-action {\r\n display: flex;\r\n align-items: center;\r\n gap: 8px;\r\n\r\n .form-control {\r\n flex: 1;\r\n }\r\n\r\n .btn-icon {\r\n flex-shrink: 0;\r\n width: 42px;\r\n height: 42px;\r\n display: inline-flex;\r\n align-items: center;\r\n justify-content: center;\r\n border-radius: 8px;\r\n border: none;\r\n cursor: pointer;\r\n font-size: 14px;\r\n transition: all 0.2s;\r\n\r\n &.btn-icon-delete {\r\n background: #FFF5F5;\r\n color: $cDanger;\r\n\r\n &:hover {\r\n background: $cDanger;\r\n color: $cWhite;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n .filter-group-campaign-multi {\r\n flex: 2 !important;\r\n }\r\n\r\n .campaign-dropdown {\r\n flex: 1;\r\n min-width: 0;\r\n position: relative;\r\n }\r\n\r\n .campaign-dropdown-trigger {\r\n width: 100%;\r\n padding: 10px 14px;\r\n padding-right: 32px;\r\n border: 1px solid $cBorder;\r\n border-radius: 8px;\r\n font-size: 14px;\r\n color: $cTextDark;\r\n background: $cWhite;\r\n cursor: pointer;\r\n display: flex;\r\n align-items: center;\r\n transition: border-color 0.2s;\r\n position: relative;\r\n min-height: 42px;\r\n box-sizing: border-box;\r\n\r\n .campaign-dropdown-text {\r\n flex: 1;\r\n min-width: 0;\r\n overflow: hidden;\r\n text-overflow: ellipsis;\r\n white-space: nowrap;\r\n\r\n &.is-placeholder {\r\n color: #8899A6;\r\n }\r\n }\r\n\r\n .campaign-dropdown-arrow {\r\n position: absolute;\r\n right: 12px;\r\n font-size: 10px;\r\n color: #8899A6;\r\n transition: transform 0.2s;\r\n }\r\n }\r\n\r\n .campaign-dropdown.is-open {\r\n .campaign-dropdown-trigger {\r\n border-color: $cPrimary;\r\n box-shadow: 0 0 0 3px rgba($cPrimary, 0.1);\r\n }\r\n\r\n .campaign-dropdown-arrow {\r\n transform: rotate(180deg);\r\n }\r\n\r\n .campaign-dropdown-menu {\r\n display: block;\r\n }\r\n }\r\n\r\n .campaign-dropdown-menu {\r\n display: none;\r\n position: absolute;\r\n top: calc(100% + 4px);\r\n left: 0;\r\n right: 0;\r\n z-index: 100;\r\n max-height: 280px;\r\n overflow-y: auto;\r\n background: $cWhite;\r\n border: 1px solid $cBorder;\r\n border-radius: 8px;\r\n box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);\r\n padding: 4px 0;\r\n }\r\n\r\n .campaign-dropdown-item {\r\n display: flex;\r\n align-items: center;\r\n gap: 8px;\r\n padding: 8px 12px;\r\n cursor: pointer;\r\n font-size: 14px;\r\n color: $cTextDark;\r\n margin: 0;\r\n transition: background 0.15s;\r\n\r\n &:hover {\r\n background: #F8FAFC;\r\n }\r\n\r\n &.is-checked {\r\n background: #EEF2FF;\r\n }\r\n\r\n input[type=\"checkbox\"] {\r\n width: 16px;\r\n height: 16px;\r\n cursor: pointer;\r\n flex-shrink: 0;\r\n accent-color: $cPrimary;\r\n }\r\n\r\n span {\r\n flex: 1;\r\n min-width: 0;\r\n overflow: hidden;\r\n text-overflow: ellipsis;\r\n white-space: nowrap;\r\n }\r\n }\r\n }\r\n\r\n .campaigns-list-panel {\r\n background: $cWhite;\r\n border-radius: 10px;\r\n box-shadow: 0 1px 4px rgba(0, 0, 0, 0.06);\r\n margin-bottom: 20px;\r\n overflow: hidden;\r\n\r\n .campaigns-list-toolbar {\r\n display: flex;\r\n align-items: center;\r\n justify-content: space-between;\r\n padding: 12px 16px;\r\n border-bottom: 1px solid $cBorder;\r\n gap: 12px;\r\n\r\n &-left {\r\n display: flex;\r\n align-items: center;\r\n gap: 8px;\r\n font-size: 13px;\r\n color: $cText;\r\n\r\n input[type=\"checkbox\"] {\r\n width: 16px;\r\n height: 16px;\r\n cursor: pointer;\r\n }\r\n\r\n label {\r\n cursor: pointer;\r\n user-select: none;\r\n margin: 0;\r\n }\r\n\r\n .campaigns-selected-count {\r\n margin-left: 12px;\r\n color: #8899A6;\r\n }\r\n }\r\n\r\n &-right {\r\n .campaigns-bulk-delete-btn {\r\n display: inline-flex;\r\n align-items: center;\r\n gap: 6px;\r\n padding: 8px 16px;\r\n border: none;\r\n border-radius: 8px;\r\n font-size: 13px;\r\n font-weight: 600;\r\n cursor: pointer;\r\n background: #FFF5F5;\r\n color: $cDanger;\r\n transition: all 0.2s;\r\n\r\n &:hover:not(:disabled) {\r\n background: $cDanger;\r\n color: $cWhite;\r\n }\r\n\r\n &:disabled {\r\n opacity: 0.4;\r\n cursor: not-allowed;\r\n }\r\n }\r\n }\r\n }\r\n\r\n .campaigns-list-items {\r\n display: flex;\r\n flex-wrap: wrap;\r\n gap: 0;\r\n padding: 8px 8px;\r\n max-height: 220px;\r\n overflow-y: auto;\r\n\r\n .campaigns-list-item {\r\n display: flex;\r\n align-items: center;\r\n gap: 8px;\r\n padding: 6px 12px;\r\n margin: 2px;\r\n border-radius: 6px;\r\n font-size: 13px;\r\n color: $cTextDark;\r\n cursor: pointer;\r\n user-select: none;\r\n transition: background 0.15s;\r\n\r\n &:hover {\r\n background: #F0F4FF;\r\n }\r\n\r\n input[type=\"checkbox\"] {\r\n width: 15px;\r\n height: 15px;\r\n cursor: pointer;\r\n flex-shrink: 0;\r\n }\r\n\r\n .campaigns-list-item-name {\r\n white-space: nowrap;\r\n }\r\n }\r\n }\r\n }\r\n\r\n .campaigns-chart-wrap {\r\n background: $cWhite;\r\n border-radius: 10px;\r\n box-shadow: 0 1px 4px rgba(0, 0, 0, 0.06);\r\n padding: 20px;\r\n margin-bottom: 20px;\r\n min-height: 350px;\r\n overflow: hidden;\r\n\r\n #container {\r\n max-width: 100%;\r\n }\r\n }\r\n\r\n .campaigns-table-wrap {\r\n .table {\r\n width: 100%;\r\n }\r\n }\r\n\r\n .delete-history-entry {\r\n display: inline-flex;\r\n align-items: center;\r\n justify-content: center;\r\n width: 30px;\r\n height: 30px;\r\n border-radius: 6px;\r\n border: none;\r\n cursor: pointer;\r\n font-size: 12px;\r\n background: #FFF5F5;\r\n color: $cDanger;\r\n transition: all 0.2s;\r\n\r\n &:hover {\r\n background: $cDanger;\r\n color: $cWhite;\r\n }\r\n }\r\n}\r\n\r\n// ===========================\r\n// PRODUCTS PAGE\r\n// ===========================\r\n.products-page {\r\n .products-header {\r\n display: flex;\r\n justify-content: space-between;\r\n align-items: center;\r\n margin-bottom: 20px;\r\n\r\n h2 {\r\n margin: 0;\r\n font-size: 20px;\r\n font-weight: 600;\r\n color: $cTextDark;\r\n\r\n i {\r\n color: $cPrimary;\r\n margin-right: 8px;\r\n }\r\n }\r\n }\r\n\r\n .products-filters {\r\n display: flex;\r\n flex-wrap: wrap;\r\n align-items: flex-end;\r\n gap: 20px;\r\n margin-bottom: 16px;\r\n\r\n .filter-group {\r\n flex: 1 1 220px;\r\n min-width: 0;\r\n\r\n label {\r\n display: block;\r\n font-size: 12px;\r\n font-weight: 700;\r\n text-transform: uppercase;\r\n letter-spacing: 0.5px;\r\n color: #8899A6;\r\n margin-bottom: 6px;\r\n\r\n i {\r\n margin-right: 4px;\r\n }\r\n }\r\n\r\n .form-control {\r\n width: 100%;\r\n padding: 10px 14px;\r\n border: 1px solid $cBorder;\r\n border-radius: 8px;\r\n font-size: 14px;\r\n color: $cTextDark;\r\n background: $cWhite;\r\n transition: border-color 0.2s;\r\n\r\n &:focus {\r\n outline: none;\r\n border-color: $cPrimary;\r\n box-shadow: 0 0 0 3px rgba($cPrimary, 0.1);\r\n }\r\n }\r\n\r\n select.form-control {\r\n appearance: none;\r\n -webkit-appearance: none;\r\n background-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%238899A6' d='M6 8L1 3h10z'/%3E%3C/svg%3E\");\r\n background-repeat: no-repeat;\r\n background-position: right 12px center;\r\n padding-right: 32px;\r\n }\r\n\r\n &.filter-group-client,\r\n &.filter-group-campaign,\r\n &.filter-group-ad-group {\r\n flex: 1 1 260px;\r\n }\r\n\r\n &.filter-group-ad-group {\r\n .ad-group-filter-actions {\r\n display: flex;\r\n gap: 8px;\r\n align-items: center;\r\n\r\n .form-control {\r\n flex: 1 1 auto;\r\n min-width: 0;\r\n }\r\n }\r\n\r\n #delete-products-ad-group {\r\n min-width: 38px;\r\n height: 38px;\r\n border-radius: 6px;\r\n margin: 0;\r\n background: #dc3545;\r\n border: 1px solid #dc3545;\r\n color: #fff;\r\n cursor: pointer;\r\n\r\n &:hover:not(:disabled) {\r\n background: #bb2d3b;\r\n border-color: #bb2d3b;\r\n color: #fff;\r\n }\r\n\r\n &:disabled {\r\n opacity: 0.45;\r\n cursor: default;\r\n background: #dc3545;\r\n border-color: #dc3545;\r\n color: #fff;\r\n }\r\n }\r\n }\r\n\r\n &.filter-group-roas {\r\n flex: 0 0 200px;\r\n }\r\n\r\n &.filter-group-search {\r\n flex: 1 1 200px;\r\n }\r\n\r\n &.filter-group-cl4 {\r\n flex: 0 0 160px;\r\n }\r\n\r\n &.filter-group-columns {\r\n flex: 0 0 240px;\r\n }\r\n }\r\n }\r\n\r\n .products-scope-alerts {\r\n margin-bottom: 12px;\r\n border: 1px solid #FECACA;\r\n background: #FEF2F2;\r\n border-radius: 8px;\r\n overflow: hidden;\r\n\r\n summary {\r\n cursor: pointer;\r\n list-style: none;\r\n padding: 10px 12px;\r\n font-size: 13px;\r\n font-weight: 600;\r\n color: #991B1B;\r\n display: flex;\r\n align-items: center;\r\n gap: 8px;\r\n\r\n &::-webkit-details-marker {\r\n display: none;\r\n }\r\n }\r\n\r\n .products-scope-alerts-list {\r\n border-top: 1px solid #FECACA;\r\n background: #FFF;\r\n max-height: 260px;\r\n overflow: auto;\r\n }\r\n\r\n .products-scope-alert-item {\r\n padding: 10px 12px;\r\n border-bottom: 1px solid #F1F5F9;\r\n\r\n &:last-child {\r\n border-bottom: none;\r\n }\r\n }\r\n\r\n .products-scope-alert-meta {\r\n display: flex;\r\n align-items: center;\r\n gap: 8px;\r\n margin-bottom: 4px;\r\n font-size: 11px;\r\n color: #64748B;\r\n }\r\n\r\n .products-scope-alert-type {\r\n display: inline-flex;\r\n align-items: center;\r\n padding: 2px 6px;\r\n border-radius: 999px;\r\n background: #EEF2FF;\r\n color: #4338CA;\r\n font-weight: 600;\r\n text-transform: uppercase;\r\n letter-spacing: 0.3px;\r\n }\r\n\r\n .products-scope-alert-message {\r\n font-size: 13px;\r\n color: $cTextDark;\r\n line-height: 1.45;\r\n }\r\n }\r\n\r\n .products-actions {\r\n margin-bottom: 12px;\r\n\r\n .btn-danger {\r\n padding: 7px 14px;\r\n font-size: 13px;\r\n border-radius: 6px;\r\n border: none;\r\n cursor: pointer;\r\n transition: all 0.2s;\r\n\r\n &:disabled {\r\n opacity: 0.4;\r\n cursor: default;\r\n }\r\n }\r\n }\r\n\r\n .products-table-wrap {\r\n .table {\r\n width: 100%;\r\n\r\n // Kompaktowe inputy w tabeli\r\n input.min_roas,\r\n input.form-control-sm,\r\n select.custom_label_4,\r\n select.form-control-sm {\r\n padding: 3px 6px;\r\n font-size: 12px;\r\n border: 1px solid $cBorder;\r\n border-radius: 4px;\r\n background: $cWhite;\r\n }\r\n }\r\n }\r\n\r\n // Przycisk usuwania w wierszu\r\n .delete-product {\r\n display: inline-flex;\r\n align-items: center;\r\n justify-content: center;\r\n width: 28px;\r\n height: 28px;\r\n border-radius: 6px;\r\n border: none;\r\n cursor: pointer;\r\n font-size: 12px;\r\n background: #FFF5F5;\r\n color: $cDanger;\r\n transition: all 0.2s;\r\n\r\n &:hover {\r\n background: $cDanger;\r\n color: $cWhite;\r\n }\r\n }\r\n\r\n // Przycisk edycji w wierszu\r\n .edit-product-title {\r\n display: inline-flex;\r\n align-items: center;\r\n justify-content: center;\r\n width: 28px;\r\n height: 28px;\r\n border-radius: 6px;\r\n border: none;\r\n cursor: pointer;\r\n font-size: 12px;\r\n background: #EEF2FF;\r\n color: $cPrimary;\r\n transition: all 0.2s;\r\n\r\n &:hover {\r\n background: $cPrimary;\r\n color: $cWhite;\r\n }\r\n }\r\n}\r\n\r\n// --- Popup edycji produktu: AI suggest ---\r\n.desc-header {\r\n display: flex;\r\n justify-content: space-between;\r\n align-items: center;\r\n margin-bottom: 4px;\r\n\r\n label {\r\n margin: 0;\r\n }\r\n}\r\n\r\n.desc-tabs {\r\n display: flex;\r\n gap: 2px;\r\n background: #eee;\r\n border-radius: 6px;\r\n padding: 2px;\r\n}\r\n\r\n.desc-tab {\r\n border: none;\r\n background: transparent;\r\n padding: 4px 12px;\r\n font-size: 12px;\r\n border-radius: 4px;\r\n cursor: pointer;\r\n color: #666;\r\n transition: all .15s ease;\r\n\r\n i {\r\n margin-right: 4px;\r\n }\r\n\r\n &.active {\r\n background: #fff;\r\n color: #333;\r\n box-shadow: 0 1px 3px rgba(0, 0, 0, .12);\r\n font-weight: 500;\r\n }\r\n\r\n &:hover:not(.active) {\r\n color: #333;\r\n }\r\n}\r\n\r\n.desc-wrap {\r\n flex: 1;\r\n min-width: 0;\r\n}\r\n\r\n.desc-preview {\r\n\r\n ul,\r\n ol {\r\n margin: 6px 0;\r\n padding-left: 20px;\r\n }\r\n\r\n li {\r\n margin-bottom: 3px;\r\n }\r\n\r\n b,\r\n strong {\r\n font-weight: 600;\r\n }\r\n}\r\n\r\n.input-with-ai {\r\n display: flex;\r\n gap: 8px;\r\n align-items: flex-start;\r\n\r\n .form-control {\r\n flex: 1;\r\n }\r\n}\r\n\r\n.btn-ai-suggest {\r\n display: inline-flex;\r\n align-items: center;\r\n gap: 4px;\r\n padding: 6px 12px;\r\n border-radius: 8px;\r\n border: 1px solid #C084FC;\r\n background: linear-gradient(135deg, #F3E8FF, #EDE9FE);\r\n color: #7C3AED;\r\n font-size: 12px;\r\n font-weight: 600;\r\n cursor: pointer;\r\n transition: all 0.2s;\r\n white-space: nowrap;\r\n min-height: 38px;\r\n\r\n i {\r\n font-size: 13px;\r\n }\r\n\r\n &:hover {\r\n background: linear-gradient(135deg, #7C3AED, #6D28D9);\r\n color: #FFF;\r\n border-color: #6D28D9;\r\n }\r\n\r\n &:disabled {\r\n opacity: 0.7;\r\n cursor: wait;\r\n }\r\n\r\n &.btn-ai-claude {\r\n border-color: #D97706;\r\n background: linear-gradient(135deg, #FEF3C7, #FDE68A);\r\n color: #92400E;\r\n\r\n &:hover {\r\n background: linear-gradient(135deg, #D97706, #B45309);\r\n color: #FFF;\r\n border-color: #B45309;\r\n }\r\n }\r\n\r\n &.btn-ai-gemini {\r\n border-color: #4285F4;\r\n background: linear-gradient(135deg, #E8F0FE, #D2E3FC);\r\n color: #1A73E8;\r\n\r\n &:hover {\r\n background: linear-gradient(135deg, #4285F4, #1A73E8);\r\n color: #FFF;\r\n border-color: #1A73E8;\r\n }\r\n }\r\n}\r\n\r\n// --- Form container ---\r\n.form_container {\r\n background: $cWhite;\r\n padding: 25px;\r\n max-width: 1300px;\r\n border-radius: 8px;\r\n box-shadow: 0 1px 3px rgba(0, 0, 0, 0.06);\r\n\r\n &.full {\r\n max-width: 100%;\r\n }\r\n\r\n .form_group {\r\n margin-bottom: 12px;\r\n display: flex;\r\n\r\n >.label {\r\n width: 300px;\r\n display: inline-flex;\r\n align-items: flex-start;\r\n justify-content: right;\r\n padding-right: 12px;\r\n }\r\n\r\n .input {\r\n width: calc(100% - 300px);\r\n }\r\n }\r\n}\r\n\r\n// --- Default popup ---\r\n.default_popup {\r\n position: fixed;\r\n top: 0;\r\n left: 0;\r\n width: 100%;\r\n height: 100%;\r\n background: rgba(0, 0, 0, 0.45);\r\n display: none;\r\n z-index: 2000;\r\n\r\n .popup_content {\r\n position: absolute;\r\n top: 50%;\r\n left: 50%;\r\n transform: translate(-50%, -50%);\r\n background: $cWhite;\r\n padding: 25px;\r\n border-radius: 10px;\r\n max-width: 1140px;\r\n width: 95%;\r\n box-shadow: 0 20px 60px rgba(0, 0, 0, 0.15);\r\n\r\n .popup_header {\r\n display: flex;\r\n justify-content: space-between;\r\n align-items: center;\r\n margin-bottom: 15px;\r\n\r\n .title {\r\n font-size: 18px;\r\n font-weight: 600;\r\n }\r\n }\r\n\r\n .close {\r\n cursor: pointer;\r\n color: #A0AEC0;\r\n font-size: 18px;\r\n padding: 4px;\r\n\r\n &:hover {\r\n color: $cDanger;\r\n }\r\n }\r\n }\r\n}\r\n\r\n// --- DataTables override ---\r\n.dt-layout-table {\r\n margin-bottom: 20px;\r\n}\r\n\r\n.pagination {\r\n button {\r\n border: 1px solid $cBorder;\r\n background: $cWhite;\r\n display: inline-flex;\r\n height: 32px;\r\n width: 32px;\r\n align-items: center;\r\n justify-content: center;\r\n margin: 0 2px;\r\n border-radius: 4px;\r\n transition: all 0.2s;\r\n cursor: pointer;\r\n\r\n &:hover {\r\n background: $cContentBg;\r\n border-color: $cPrimary;\r\n }\r\n }\r\n}\r\n\r\n// ===========================\r\n// PRODUCTS specific\r\n// ===========================\r\ntable#products {\r\n a {\r\n color: inherit;\r\n text-decoration: none;\r\n }\r\n\r\n .table-product-title {\r\n display: flex;\r\n justify-content: space-between;\r\n }\r\n\r\n .edit-product-title {\r\n display: flex;\r\n height: 25px;\r\n align-items: center;\r\n justify-content: center;\r\n width: 25px;\r\n cursor: pointer;\r\n background: $cWhite;\r\n border: 1px solid #CBD5E0;\r\n color: #CBD5E0;\r\n border-radius: 4px;\r\n\r\n &:hover {\r\n background: #CBD5E0;\r\n color: $cWhite;\r\n }\r\n }\r\n\r\n a.custom_name {\r\n color: $cGreenLight !important;\r\n }\r\n}\r\n\r\n// --- Product history ---\r\n.product-history-page {\r\n .product-history-meta {\r\n display: flex;\r\n flex-wrap: wrap;\r\n gap: 8px;\r\n margin-bottom: 14px;\r\n\r\n span {\r\n display: inline-flex;\r\n align-items: center;\r\n padding: 5px 10px;\r\n border-radius: 999px;\r\n font-size: 12px;\r\n font-weight: 600;\r\n color: $cText;\r\n background: #EEF2FF;\r\n border: 1px solid #D9E2FF;\r\n }\r\n }\r\n\r\n .product-history-chart-wrap {\r\n background: $cWhite;\r\n border-radius: 10px;\r\n box-shadow: 0 1px 4px rgba(0, 0, 0, 0.06);\r\n padding: 20px;\r\n margin-bottom: 16px;\r\n }\r\n\r\n .chart-with-form {\r\n display: flex;\r\n gap: 20px;\r\n align-items: flex-start;\r\n }\r\n\r\n .chart-area {\r\n flex: 1 1 auto;\r\n min-width: 0;\r\n }\r\n\r\n .product-history-chart {\r\n min-height: 360px;\r\n }\r\n\r\n .comment-form {\r\n width: 340px;\r\n flex: 0 0 340px;\r\n background: #F8FAFC;\r\n border: 1px solid $cBorder;\r\n border-radius: 10px;\r\n padding: 14px;\r\n\r\n .form-group {\r\n margin-bottom: 12px;\r\n }\r\n\r\n label {\r\n display: block;\r\n font-weight: 600;\r\n margin-bottom: 6px;\r\n font-size: 13px;\r\n color: #52606D;\r\n }\r\n\r\n input[type=\"date\"],\r\n textarea {\r\n width: 100%;\r\n border: 1px solid $cBorder;\r\n border-radius: 6px;\r\n padding: 8px 12px;\r\n font-size: 14px;\r\n font-family: \"Roboto\", sans-serif;\r\n background: $cWhite;\r\n\r\n &:focus {\r\n outline: none;\r\n border-color: $cPrimary;\r\n box-shadow: 0 0 0 3px rgba($cPrimary, 0.1);\r\n }\r\n }\r\n\r\n textarea {\r\n min-height: 110px;\r\n resize: vertical;\r\n }\r\n\r\n .btn {\r\n width: 100%;\r\n justify-content: center;\r\n padding: 10px 16px;\r\n }\r\n\r\n .btn[disabled] {\r\n opacity: 0.6;\r\n cursor: not-allowed;\r\n }\r\n }\r\n\r\n .products-table-wrap {\r\n overflow-x: auto;\r\n\r\n .table {\r\n min-width: 980px;\r\n }\r\n\r\n .comment-cell {\r\n display: flex;\r\n align-items: center;\r\n justify-content: space-between;\r\n gap: 10px;\r\n }\r\n\r\n .comment-text {\r\n word-break: break-word;\r\n }\r\n\r\n .delete-comment {\r\n color: $cDanger;\r\n text-decoration: none;\r\n font-weight: 600;\r\n white-space: nowrap;\r\n\r\n &:hover {\r\n text-decoration: underline;\r\n }\r\n }\r\n\r\n .dt-paging .pagination .page-item {\r\n list-style: none;\r\n }\r\n }\r\n}\r\n\r\n.cron-status-overview {\r\n display: flex;\r\n flex-wrap: wrap;\r\n gap: 10px 20px;\r\n margin-bottom: 20px;\r\n color: $cText;\r\n font-size: 13px;\r\n}\r\n\r\n.cron-progress-list {\r\n margin-bottom: 20px;\r\n}\r\n\r\n.cron-schedule-list {\r\n margin-bottom: 20px;\r\n}\r\n\r\n.cron-schedule-item {\r\n border: 1px solid #DFE7F0;\r\n background: #F4F8FD;\r\n border-radius: 8px;\r\n padding: 9px 12px;\r\n margin-bottom: 8px;\r\n\r\n &:last-child {\r\n margin-bottom: 0;\r\n }\r\n\r\n strong {\r\n display: block;\r\n color: $cTextDark;\r\n font-size: 13px;\r\n font-weight: 700;\r\n margin-bottom: 2px;\r\n }\r\n\r\n small {\r\n display: block;\r\n color: #667788;\r\n font-size: 12px;\r\n line-height: 1.35;\r\n }\r\n}\r\n\r\n.cron-progress-item {\r\n margin-bottom: 14px;\r\n\r\n &:last-child {\r\n margin-bottom: 0;\r\n }\r\n\r\n .cron-progress-head {\r\n display: flex;\r\n justify-content: space-between;\r\n align-items: center;\r\n gap: 12px;\r\n margin-bottom: 6px;\r\n font-size: 13px;\r\n\r\n strong {\r\n color: $cTextDark;\r\n font-weight: 600;\r\n }\r\n\r\n span {\r\n color: #6B7A89;\r\n font-size: 12px;\r\n font-weight: 600;\r\n white-space: nowrap;\r\n }\r\n }\r\n\r\n small {\r\n display: block;\r\n margin-top: 5px;\r\n color: #778899;\r\n font-size: 12px;\r\n }\r\n}\r\n\r\n.cron-progress-bar {\r\n width: 100%;\r\n height: 10px;\r\n border-radius: 999px;\r\n background: #E9EEF5;\r\n overflow: hidden;\r\n\r\n >span {\r\n display: block;\r\n height: 100%;\r\n background: linear-gradient(90deg, #5A9BFF 0%, #2E6BDF 100%);\r\n }\r\n}\r\n\r\n.cron-url-list {\r\n margin-bottom: 20px;\r\n}\r\n\r\n.cron-url-item {\r\n border: 1px solid $cBorder;\r\n border-radius: 8px;\r\n background: #F8FAFC;\r\n padding: 10px 12px;\r\n margin-bottom: 10px;\r\n\r\n &:last-child {\r\n margin-bottom: 0;\r\n }\r\n\r\n .cron-url-top {\r\n display: flex;\r\n justify-content: space-between;\r\n align-items: center;\r\n gap: 8px;\r\n margin-bottom: 6px;\r\n\r\n strong {\r\n color: $cTextDark;\r\n font-size: 13px;\r\n font-weight: 600;\r\n }\r\n\r\n small {\r\n color: #7A8794;\r\n font-size: 11px;\r\n white-space: nowrap;\r\n }\r\n }\r\n\r\n code {\r\n display: block;\r\n background: #EEF2F7;\r\n border: 1px solid #DDE4ED;\r\n border-radius: 6px;\r\n padding: 6px 8px;\r\n color: #2E3B49;\r\n font-size: 12px;\r\n overflow-x: auto;\r\n }\r\n\r\n .cron-url-plan {\r\n display: block;\r\n color: #6C7B8A;\r\n font-size: 11px;\r\n margin-bottom: 6px;\r\n }\r\n}\r\n\r\n@media (max-width: 1200px) {\r\n .product-history-page {\r\n .chart-with-form {\r\n flex-direction: column;\r\n }\r\n\r\n .comment-form {\r\n width: 100%;\r\n flex: 1 1 auto;\r\n }\r\n }\r\n}\r\n\r\n// --- Select2 w modalu ---\r\n.jconfirm-box .form-group .select2-container,\r\n.adspro-dialog-box .form-group .select2-container {\r\n width: 100% !important;\r\n margin-top: 8px;\r\n}\r\n\r\n.jconfirm-box .select2-container--default .select2-selection--single,\r\n.adspro-dialog-box .select2-container--default .select2-selection--single {\r\n background-color: $cWhite;\r\n border: 1px solid $cBorder;\r\n border-radius: 6px;\r\n min-height: 42px;\r\n display: flex;\r\n align-items: center;\r\n padding: 4px 12px;\r\n box-shadow: none;\r\n transition: border-color 0.2s, box-shadow 0.2s;\r\n font-size: 14px;\r\n}\r\n\r\n.jconfirm-box .select2-container--default .select2-selection--single .select2-selection__rendered,\r\n.adspro-dialog-box .select2-container--default .select2-selection--single .select2-selection__rendered {\r\n padding-left: 0;\r\n line-height: 1.4;\r\n color: #495057;\r\n}\r\n\r\n.jconfirm-box .select2-container--default .select2-selection--single .select2-selection__placeholder,\r\n.adspro-dialog-box .select2-container--default .select2-selection--single .select2-selection__placeholder {\r\n color: #CBD5E0;\r\n}\r\n\r\n.jconfirm-box .select2-container--default .select2-selection--single .select2-selection__arrow,\r\n.adspro-dialog-box .select2-container--default .select2-selection--single .select2-selection__arrow {\r\n height: 100%;\r\n right: 8px;\r\n}\r\n\r\n.jconfirm-box .select2-container--default.select2-container--focus .select2-selection--single,\r\n.jconfirm-box .select2-container--default .select2-selection--single:hover,\r\n.adspro-dialog-box .select2-container--default.select2-container--focus .select2-selection--single,\r\n.adspro-dialog-box .select2-container--default .select2-selection--single:hover {\r\n border-color: $cPrimary;\r\n box-shadow: 0 0 0 3px rgba($cPrimary, 0.1);\r\n outline: 0;\r\n}\r\n\r\n.jconfirm-box .select2-container .select2-dropdown,\r\n.adspro-dialog-box .select2-container .select2-dropdown {\r\n border-color: $cBorder;\r\n border-radius: 0 0 6px 6px;\r\n font-size: 14px;\r\n}\r\n\r\n.jconfirm-box .select2-container .select2-search--dropdown .select2-search__field,\r\n.adspro-dialog-box .select2-container .select2-search--dropdown .select2-search__field {\r\n padding: 6px 10px;\r\n border-radius: 4px;\r\n border: 1px solid $cBorder;\r\n font-size: 14px;\r\n}\r\n\r\n.jconfirm-box .select2-container--default .select2-results__option--highlighted[aria-selected],\r\n.adspro-dialog-box .select2-container--default .select2-results__option--highlighted[aria-selected] {\r\n background-color: $cPrimary;\r\n color: $cWhite;\r\n}\r\n\r\n// ===========================\r\n// RESPONSYWNOŚĆ\r\n// ===========================\r\n@media (max-width: 992px) {\r\n .sidebar {\r\n transform: translateX(-100%);\r\n\r\n &.mobile-open {\r\n transform: translateX(0);\r\n }\r\n }\r\n\r\n .main-wrapper {\r\n margin-left: 0 !important;\r\n }\r\n}\r\n\r\n// ===========================\r\n// CAMPAIGN TERMS VIEW\r\n// ===========================\r\n.campaign-terms-wrap {\r\n display: flex;\r\n flex-direction: column;\r\n gap: 20px;\r\n margin-top: 20px;\r\n}\r\n\r\n.campaign-terms-page {\r\n max-width: 100%;\r\n overflow: hidden;\r\n\r\n .campaigns-filters {\r\n flex-wrap: wrap;\r\n\r\n .filter-group {\r\n min-width: 220px;\r\n\r\n &.terms-columns-group {\r\n min-width: 280px;\r\n }\r\n }\r\n }\r\n\r\n .terms-card-toggle {\r\n margin-left: auto;\r\n width: 28px;\r\n height: 28px;\r\n border: 1px solid #E2E8F0;\r\n border-radius: 6px;\r\n background: #FFFFFF;\r\n color: #475569;\r\n display: inline-flex;\r\n align-items: center;\r\n justify-content: center;\r\n cursor: pointer;\r\n transition: all 0.2s;\r\n\r\n &:hover {\r\n background: #F8FAFC;\r\n border-color: #CBD5E1;\r\n }\r\n }\r\n\r\n .terms-adgroups-card.is-collapsed .campaigns-extra-table-wrap {\r\n display: none;\r\n }\r\n\r\n .terms-search-toolbar {\r\n display: flex;\r\n align-items: center;\r\n gap: 10px;\r\n padding: 10px 12px;\r\n border-bottom: 1px solid #EEF2F7;\r\n background: #FFFFFF;\r\n\r\n label {\r\n font-size: 12px;\r\n font-weight: 600;\r\n color: #475569;\r\n display: inline-flex;\r\n align-items: center;\r\n gap: 6px;\r\n margin: 0;\r\n white-space: nowrap;\r\n }\r\n\r\n .terms-search-toolbar-label {\r\n min-width: 86px;\r\n }\r\n\r\n #terms_min_clicks_all,\r\n #terms_max_clicks_all {\r\n width: 160px;\r\n height: 32px;\r\n }\r\n\r\n #terms_min_conversions_all,\r\n #terms_max_conversions_all {\r\n width: 130px;\r\n max-width: 130px;\r\n }\r\n }\r\n\r\n .terms-search-selected-label {\r\n margin: 0;\r\n font-size: 12px;\r\n color: #475569;\r\n font-weight: 600;\r\n white-space: nowrap;\r\n }\r\n\r\n .terms-ai-analyze-btn {\r\n margin-left: auto;\r\n display: inline-flex;\r\n align-items: center;\r\n gap: 6px;\r\n height: 32px;\r\n padding: 0 12px;\r\n border-radius: 6px;\r\n border: 1px solid #BFDBFE;\r\n background: #EFF6FF;\r\n color: #1D4ED8;\r\n font-size: 12px;\r\n font-weight: 600;\r\n cursor: pointer;\r\n transition: all 0.2s;\r\n\r\n &:hover {\r\n background: #DBEAFE;\r\n border-color: #93C5FD;\r\n }\r\n\r\n &:disabled {\r\n opacity: 0.6;\r\n cursor: wait;\r\n }\r\n }\r\n\r\n .terms-negative-toolbar {\r\n display: flex;\r\n align-items: center;\r\n gap: 10px;\r\n padding: 10px 12px;\r\n border-bottom: 1px solid #EEF2F7;\r\n background: #FFFFFF;\r\n }\r\n\r\n .terms-negative-bulk-btn {\r\n display: inline-flex;\r\n align-items: center;\r\n gap: 6px;\r\n height: 32px;\r\n padding: 0 12px;\r\n border-radius: 6px;\r\n border: 1px solid #FECACA;\r\n background: #FEF2F2;\r\n color: #DC2626;\r\n font-size: 12px;\r\n font-weight: 600;\r\n cursor: pointer;\r\n transition: all 0.2s;\r\n\r\n &:hover {\r\n background: #FEE2E2;\r\n border-color: #FCA5A5;\r\n }\r\n\r\n &:disabled {\r\n opacity: 0.5;\r\n cursor: not-allowed;\r\n }\r\n }\r\n\r\n table.campaigns-extra-table>thead>tr>th {\r\n position: sticky;\r\n top: 0;\r\n z-index: 2;\r\n background-color: #111827 !important;\r\n color: #E5E7EB !important;\r\n border-bottom: 1px solid #0B1220 !important;\r\n font-size: 12px;\r\n font-weight: 700;\r\n text-transform: uppercase;\r\n letter-spacing: .4px;\r\n padding: 10px 12px;\r\n white-space: nowrap;\r\n }\r\n\r\n #terms_search_table thead th .dt-column-order,\r\n #terms_negative_table thead th .dt-column-order {\r\n display: none !important;\r\n }\r\n\r\n #terms_search_table thead th.dt-orderable-asc,\r\n #terms_search_table thead th.dt-orderable-desc,\r\n #terms_negative_table thead th.dt-orderable-asc,\r\n #terms_negative_table thead th.dt-orderable-desc {\r\n cursor: pointer;\r\n padding-right: 34px;\r\n overflow: hidden;\r\n }\r\n\r\n #terms_search_table thead th .dt-column-title,\r\n #terms_negative_table thead th .dt-column-title {\r\n display: block;\r\n overflow: hidden;\r\n text-overflow: ellipsis;\r\n padding-right: 2px;\r\n }\r\n\r\n #terms_search_table thead th.dt-orderable-asc::after,\r\n #terms_search_table thead th.dt-orderable-desc::after,\r\n #terms_negative_table thead th.dt-orderable-asc::after,\r\n #terms_negative_table thead th.dt-orderable-desc::after {\r\n content: '\\2195';\r\n position: absolute;\r\n right: 10px;\r\n top: 50%;\r\n transform: translateY(-50%);\r\n width: 16px;\r\n height: 16px;\r\n border-radius: 999px;\r\n font-size: 12px;\r\n font-weight: 700;\r\n line-height: 16px;\r\n text-align: center;\r\n color: #E5E7EB;\r\n background: #374151;\r\n }\r\n\r\n #terms_search_table thead th.dt-ordering-asc::after,\r\n #terms_negative_table thead th.dt-ordering-asc::after,\r\n #terms_search_table thead th[aria-sort=\"ascending\"]::after,\r\n #terms_negative_table thead th[aria-sort=\"ascending\"]::after {\r\n content: '\\25B2';\r\n color: #FFFFFF;\r\n background: #2563EB;\r\n }\r\n\r\n #terms_search_table thead th.dt-ordering-desc::after,\r\n #terms_negative_table thead th.dt-ordering-desc::after,\r\n #terms_search_table thead th[aria-sort=\"descending\"]::after,\r\n #terms_negative_table thead th[aria-sort=\"descending\"]::after {\r\n content: '\\25BC';\r\n color: #FFFFFF;\r\n background: #2563EB;\r\n }\r\n\r\n #terms_negative_select_all,\r\n .terms-negative-select-row,\r\n #terms_search_select_all,\r\n .terms-search-select-row {\r\n width: 14px;\r\n height: 14px;\r\n cursor: pointer;\r\n }\r\n\r\n .dt-layout-row:first-child {\r\n display: none;\r\n }\r\n\r\n .dt-layout-row {\r\n padding: 10px 12px;\r\n margin: 0 !important;\r\n border-top: 1px solid #F1F5F9;\r\n }\r\n\r\n .dt-info {\r\n font-size: 12px;\r\n color: #64748B;\r\n }\r\n\r\n .dt-paging .pagination {\r\n margin: 0;\r\n padding: 0;\r\n list-style: none !important;\r\n display: flex;\r\n align-items: center;\r\n gap: 6px;\r\n\r\n .page-item {\r\n list-style: none !important;\r\n\r\n .page-link {\r\n display: inline-flex;\r\n align-items: center;\r\n justify-content: center;\r\n min-width: 36px;\r\n width: fit-content;\r\n height: 32px;\r\n padding: 0 12px;\r\n border-radius: 6px;\r\n font-size: 12px;\r\n font-weight: 500;\r\n border: 1px solid #E2E8F0;\r\n background: #FFFFFF;\r\n color: #4E5E6A;\r\n text-decoration: none;\r\n line-height: 1;\r\n white-space: nowrap;\r\n\r\n &:hover {\r\n background: #EEF2FF;\r\n color: #6690F4;\r\n border-color: #6690F4;\r\n }\r\n }\r\n\r\n &.previous .page-link,\r\n &.next .page-link {\r\n min-width: 72px;\r\n }\r\n\r\n &.active .page-link {\r\n background: #6690F4;\r\n color: #FFFFFF;\r\n border-color: #6690F4;\r\n }\r\n\r\n &.disabled .page-link {\r\n opacity: 0.35;\r\n cursor: default;\r\n pointer-events: none;\r\n }\r\n }\r\n }\r\n}\r\n\r\n.terms-columns-box {\r\n display: flex;\r\n flex-direction: column;\r\n gap: 6px;\r\n}\r\n\r\n.terms-columns-control {\r\n border: 1px solid #E2E8F0;\r\n border-radius: 6px;\r\n background: #FFFFFF;\r\n overflow: hidden;\r\n\r\n summary {\r\n cursor: pointer;\r\n padding: 8px 10px;\r\n font-size: 12px;\r\n font-weight: 600;\r\n color: #334155;\r\n list-style: none;\r\n\r\n &::-webkit-details-marker {\r\n display: none;\r\n }\r\n\r\n &::after {\r\n content: '\\25BC';\r\n float: right;\r\n font-size: 10px;\r\n color: #64748B;\r\n margin-top: 2px;\r\n }\r\n }\r\n\r\n &[open] summary::after {\r\n content: '\\25B2';\r\n }\r\n}\r\n\r\n.terms-columns-list {\r\n border-top: 1px solid #EEF2F7;\r\n padding: 8px 10px;\r\n max-height: 180px;\r\n overflow-y: auto;\r\n\r\n .terms-col-item {\r\n display: flex;\r\n align-items: center;\r\n gap: 8px;\r\n font-size: 12px;\r\n color: #334155;\r\n margin-bottom: 6px;\r\n\r\n &:last-child {\r\n margin-bottom: 0;\r\n }\r\n\r\n input[type=checkbox] {\r\n margin: 0;\r\n }\r\n }\r\n}\r\n\r\n.campaigns-extra-card {\r\n background: #FFFFFF;\r\n border-radius: 10px;\r\n box-shadow: 0 1px 4px rgba(0, 0, 0, 0.06);\r\n overflow: hidden;\r\n}\r\n\r\n.campaigns-extra-card-title {\r\n padding: 14px 16px;\r\n border-bottom: 1px solid #E2E8F0;\r\n font-size: 13px;\r\n font-weight: 700;\r\n color: #334155;\r\n display: flex;\r\n align-items: center;\r\n gap: 8px;\r\n\r\n .terms-card-title-label {\r\n display: inline-flex;\r\n align-items: center;\r\n gap: 8px;\r\n }\r\n}\r\n\r\n.campaigns-extra-table-wrap {\r\n overflow: auto;\r\n}\r\n\r\n.campaigns-extra-table {\r\n margin: 0;\r\n width: 100%;\r\n table-layout: fixed;\r\n\r\n tbody td {\r\n padding: 9px 12px;\r\n border-bottom: 1px solid #F1F5F9;\r\n font-size: 13px;\r\n color: #334155;\r\n vertical-align: middle;\r\n white-space: nowrap;\r\n }\r\n\r\n td.num-cell {\r\n text-align: right;\r\n white-space: nowrap;\r\n }\r\n\r\n td.text-cell {\r\n white-space: nowrap;\r\n overflow: hidden;\r\n text-overflow: ellipsis;\r\n }\r\n\r\n th.terms-negative-select-cell,\r\n td.terms-negative-select-cell,\r\n th.terms-search-select-cell,\r\n td.terms-search-select-cell {\r\n text-align: center;\r\n }\r\n\r\n th.phrase-nowrap,\r\n td.phrase-nowrap {\r\n white-space: nowrap !important;\r\n overflow: hidden;\r\n text-overflow: ellipsis;\r\n }\r\n\r\n .terms-add-negative-btn,\r\n .terms-remove-negative-btn {\r\n display: inline-flex;\r\n align-items: center;\r\n justify-content: center;\r\n width: 28px;\r\n height: 28px;\r\n border-radius: 6px;\r\n cursor: pointer;\r\n transition: all 0.2s;\r\n }\r\n\r\n .terms-add-negative-btn {\r\n border: 1px solid #E2E8F0;\r\n background: #EEF2FF;\r\n color: #3B82F6;\r\n\r\n &:hover {\r\n background: #3B82F6;\r\n color: #FFFFFF;\r\n border-color: #3B82F6;\r\n }\r\n }\r\n\r\n .terms-remove-negative-btn {\r\n border: 1px solid #FECACA;\r\n background: #FEF2F2;\r\n color: #DC2626;\r\n\r\n &:hover {\r\n background: #DC2626;\r\n color: #FFFFFF;\r\n border-color: #DC2626;\r\n }\r\n }\r\n\r\n tbody tr:hover {\r\n background: #F8FAFC;\r\n }\r\n\r\n tbody tr.term-is-negative td {\r\n color: #DC2626;\r\n }\r\n\r\n tbody tr.term-is-negative:hover {\r\n background: #FEF2F2;\r\n }\r\n}\r\n\r\n.campaigns-empty-row {\r\n text-align: center;\r\n color: #94A3B8 !important;\r\n font-style: italic;\r\n}\r\n\r\n.terms-ai-modal-toolbar {\r\n display: flex;\r\n align-items: center;\r\n gap: 10px;\r\n margin-bottom: 10px;\r\n\r\n label {\r\n font-size: 12px;\r\n font-weight: 600;\r\n color: #334155;\r\n margin: 0;\r\n }\r\n\r\n .form-control {\r\n width: 200px;\r\n height: 32px;\r\n }\r\n}\r\n\r\n.terms-ai-summary {\r\n font-size: 12px;\r\n color: #64748B;\r\n margin-bottom: 10px;\r\n}\r\n\r\n.terms-ai-results-wrap {\r\n border: 1px solid #E2E8F0;\r\n border-radius: 8px;\r\n max-height: 420px;\r\n overflow: auto;\r\n}\r\n\r\n.terms-ai-results-table {\r\n width: 100%;\r\n border-collapse: collapse;\r\n font-size: 12px;\r\n\r\n th,\r\n td {\r\n border-bottom: 1px solid #EEF2F7;\r\n padding: 8px;\r\n vertical-align: middle;\r\n }\r\n\r\n th {\r\n position: sticky;\r\n top: 0;\r\n background: #F8FAFC;\r\n color: #334155;\r\n font-weight: 700;\r\n }\r\n\r\n td.term-col {\r\n min-width: 260px;\r\n max-width: 380px;\r\n white-space: nowrap;\r\n overflow: hidden;\r\n text-overflow: ellipsis;\r\n }\r\n\r\n td.reason-col {\r\n min-width: 320px;\r\n }\r\n}\r\n\r\n.terms-ai-action-badge {\r\n display: inline-flex;\r\n align-items: center;\r\n justify-content: center;\r\n border-radius: 999px;\r\n padding: 2px 8px;\r\n font-size: 11px;\r\n font-weight: 700;\r\n\r\n &.action-exclude {\r\n background: #FEE2E2;\r\n color: #B91C1C;\r\n }\r\n\r\n &.action-keep {\r\n background: #DCFCE7;\r\n color: #166534;\r\n }\r\n}\r\n\r\n// ===========================\r\n// PRODUCTS VIEW (INLINE MOVED)\r\n// ===========================\r\n.products-page .products-filters .filter-group.filter-group-columns {\r\n min-width: 240px;\r\n}\r\n\r\n.products-columns-control {\r\n border: 1px solid #E2E8F0;\r\n border-radius: 6px;\r\n background: #FFFFFF;\r\n overflow: hidden;\r\n\r\n summary {\r\n cursor: pointer;\r\n padding: 8px 10px;\r\n font-size: 12px;\r\n font-weight: 600;\r\n color: #334155;\r\n list-style: none;\r\n\r\n &::-webkit-details-marker {\r\n display: none;\r\n }\r\n\r\n &::after {\r\n content: '\\25BC';\r\n float: right;\r\n font-size: 10px;\r\n color: #64748B;\r\n margin-top: 2px;\r\n }\r\n }\r\n\r\n &[open] summary::after {\r\n content: '\\25B2';\r\n }\r\n}\r\n\r\n.products-columns-list {\r\n border-top: 1px solid #EEF2F7;\r\n padding: 8px 10px;\r\n max-height: 220px;\r\n overflow-y: auto;\r\n\r\n .products-col-item {\r\n display: flex;\r\n align-items: center;\r\n gap: 8px;\r\n font-size: 12px;\r\n color: #334155;\r\n margin-bottom: 6px;\r\n\r\n &:last-child {\r\n margin-bottom: 0;\r\n }\r\n\r\n input[type=checkbox] {\r\n margin: 0;\r\n }\r\n }\r\n}\r\n\r\n#products {\r\n\r\n th:last-child,\r\n td:last-child {\r\n white-space: nowrap;\r\n }\r\n\r\n tr.product-row-unavailable {\r\n opacity: 0.45;\r\n\r\n td {\r\n background-color: #f0f0f0 !important;\r\n }\r\n }\r\n\r\n .products-row-actions {\r\n display: inline-flex;\r\n align-items: center;\r\n gap: 4px;\r\n\r\n .btn {\r\n width: 38px;\r\n height: 32px;\r\n padding: 0;\r\n display: inline-flex;\r\n align-items: center;\r\n justify-content: center;\r\n border-radius: 4px !important;\r\n\r\n i {\r\n line-height: 1;\r\n }\r\n }\r\n }\r\n}\r\n\r\n// ===========================\r\n// LOGS PAGE\r\n// ===========================\r\n.logs-page {\r\n .logs-header {\r\n display: flex;\r\n justify-content: space-between;\r\n align-items: center;\r\n margin-bottom: 20px;\r\n\r\n h2 {\r\n margin: 0;\r\n font-size: 20px;\r\n font-weight: 600;\r\n color: $cTextDark;\r\n }\r\n }\r\n\r\n .logs-filters {\r\n display: flex;\r\n flex-wrap: wrap;\r\n align-items: flex-end;\r\n gap: 14px;\r\n margin-bottom: 16px;\r\n\r\n .filter-group {\r\n flex: 1 1 160px;\r\n min-width: 0;\r\n max-width: 220px;\r\n\r\n label {\r\n display: block;\r\n font-size: 12px;\r\n font-weight: 700;\r\n text-transform: uppercase;\r\n letter-spacing: 0.5px;\r\n color: #8899A6;\r\n margin-bottom: 6px;\r\n }\r\n\r\n .form-control {\r\n width: 100%;\r\n padding: 8px 12px;\r\n border: 1px solid $cBorder;\r\n border-radius: 8px;\r\n font-size: 14px;\r\n color: $cTextDark;\r\n background: $cWhite;\r\n transition: border-color 0.2s;\r\n\r\n &:focus {\r\n outline: none;\r\n border-color: $cPrimary;\r\n box-shadow: 0 0 0 3px rgba($cPrimary, 0.1);\r\n }\r\n }\r\n\r\n select.form-control {\r\n appearance: none;\r\n -webkit-appearance: none;\r\n background-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%238899A6' d='M6 8L1 3h10z'/%3E%3C/svg%3E\");\r\n background-repeat: no-repeat;\r\n background-position: right 12px center;\r\n padding-right: 32px;\r\n }\r\n\r\n &.filter-group-buttons {\r\n flex: 0 0 auto;\r\n display: flex;\r\n gap: 6px;\r\n max-width: none;\r\n }\r\n }\r\n }\r\n\r\n .logs-table-wrap {\r\n .table {\r\n width: 100%;\r\n }\r\n }\r\n\r\n .badge {\r\n display: inline-block;\r\n padding: 3px 8px;\r\n border-radius: 4px;\r\n font-size: 11px;\r\n font-weight: 700;\r\n text-transform: uppercase;\r\n letter-spacing: 0.3px;\r\n }\r\n\r\n .badge-success {\r\n background: #D1FAE5;\r\n color: #065F46;\r\n }\r\n\r\n .badge-danger {\r\n background: #FEE2E2;\r\n color: #991B1B;\r\n }\r\n\r\n .badge-warning {\r\n background: #FEF3C7;\r\n color: #92400E;\r\n }\r\n}\r\n\r\n.js-title-alt-apply {\r\n color: #000;\r\n justify-content: flex-start;\r\n}"]} \ No newline at end of file diff --git a/layout/style.scss b/layout/style.scss index aac77c3..f688186 100644 --- a/layout/style.scss +++ b/layout/style.scss @@ -1879,6 +1879,14 @@ table { flex: 0 0 200px; } + &.filter-group-search { + flex: 1 1 200px; + } + + &.filter-group-cl4 { + flex: 0 0 160px; + } + &.filter-group-columns { flex: 0 0 240px; } @@ -3337,6 +3345,14 @@ table#products { white-space: nowrap; } + tr.product-row-unavailable { + opacity: 0.45; + + td { + background-color: #f0f0f0 !important; + } + } + .products-row-actions { display: inline-flex; align-items: center; diff --git a/migrations/024_campaign_ad_groups_status.sql b/migrations/024_campaign_ad_groups_status.sql new file mode 100644 index 0000000..ffffd4e --- /dev/null +++ b/migrations/024_campaign_ad_groups_status.sql @@ -0,0 +1,2 @@ +ALTER TABLE `campaign_ad_groups` + ADD COLUMN `status` ENUM('active', 'paused') NOT NULL DEFAULT 'active' AFTER `ad_group_name`; diff --git a/templates/products/main_view.php b/templates/products/main_view.php index be5cad6..f8c9346 100644 --- a/templates/products/main_view.php +++ b/templates/products/main_view.php @@ -31,6 +31,14 @@ + +
+ + +
@@ -318,6 +326,8 @@ $( function() d.client_id = $( '#client_id' ).val() || ''; d.campaign_id = $( '#products_campaign_id' ).val() || ''; d.ad_group_id = $( '#products_ad_group_id' ).val() || ''; + d.search_text = $( '#products_search' ).val() || ''; + d.filter_cl4 = $( '#products_cl4' ).val() || ''; } }, processing: true, @@ -352,6 +362,12 @@ $( function() { width: '120px', orderable: false }, { width: '190px', orderable: false, className: 'dt-center' } ], + createdRow: function( row, data ) { + var cl4Val = $( data[19] ).val(); + if ( cl4Val && cl4Val.toLowerCase() === 'niedostępny' ) { + $( row ).addClass( 'product-row-unavailable' ); + } + }, order: [ [ 9, 'desc' ] ], language: { processing: 'Ładowanie...', @@ -375,6 +391,22 @@ $( function() products_table.ajax.reload( null, false ); } + // Filtr: szukaj po nazwie/offer_id (debounce 400ms) + var _searchTimer = null; + $( '#products_search' ).on( 'keyup', function() { + localStorage.setItem( 'products_search', $( this ).val() || '' ); + clearTimeout( _searchTimer ); + _searchTimer = setTimeout( function() { reload_products_table(); }, 400 ); + }); + + // Filtr: custom_label_4 (debounce 400ms) + var _cl4Timer = null; + $( '#products_cl4' ).on( 'keyup', function() { + localStorage.setItem( 'products_cl4', $( this ).val() || '' ); + clearTimeout( _cl4Timer ); + _cl4Timer = setTimeout( function() { reload_products_table(); }, 400 ); + }); + function submit_delete_campaign_ad_group( campaign_id, ad_group_id, delete_scope, on_success ) { function parse_json_loose( raw ) @@ -1068,6 +1100,10 @@ $( function() localStorage.setItem( 'products_client_id', client_id ); localStorage.removeItem( 'products_campaign_id' ); localStorage.removeItem( 'products_ad_group_id' ); + localStorage.removeItem( 'products_search' ); + localStorage.removeItem( 'products_cl4' ); + $( '#products_search' ).val( '' ); + $( '#products_cl4' ).val( '' ); update_delete_ad_group_button_state(); load_products_campaigns( client_id, '' ).done( function() { @@ -1178,12 +1214,19 @@ $( function() var savedClient = localStorage.getItem( 'products_client_id' ) || ''; var savedCampaign = localStorage.getItem( 'products_campaign_id' ) || ''; var savedAdGroup = localStorage.getItem( 'products_ad_group_id' ) || ''; + var savedSearch = localStorage.getItem( 'products_search' ) || ''; + var savedCl4 = localStorage.getItem( 'products_cl4' ) || ''; if ( savedClient && $( '#client_id option[value="' + savedClient + '"]' ).length ) { $( '#client_id' ).val( savedClient ); } + $( '#products_search' ).val( savedSearch ); + $( '#products_cl4' ).val( savedCl4 ); + + load_cl4_suggestions( $( '#client_id' ).val() || '' ); + load_products_campaigns( $( '#client_id' ).val() || '', savedCampaign ).done( function() { var selected_campaign_id = $( '#products_campaign_id' ).val() || ''; load_products_ad_groups( selected_campaign_id, savedAdGroup ).done( function() { @@ -1350,6 +1393,73 @@ $( function() }); }); + // CL4 autocomplete — datalist z unikalnymi wartościami + var cl4_values_cache = []; + var cl4_datalist_id = 'cl4-suggestions'; + + function load_cl4_suggestions( client_id ) + { + if ( !client_id ) + { + cl4_values_cache = []; + return; + } + + $.ajax({ + url: '/products/get_distinct_cl4/client_id=' + client_id, + type: 'GET', + dataType: 'json' + }).done( function( res ) { + cl4_values_cache = ( res && res.values ) ? res.values : []; + render_cl4_datalist(); + }); + } + + function render_cl4_datalist() + { + var $dl = $( '#' + cl4_datalist_id ); + + if ( !$dl.length ) + { + $dl = $( '' ); + $( 'body' ).append( $dl ); + } + + var html = ''; + + for ( var i = 0; i < cl4_values_cache.length; i++ ) + { + html += '