qBitrr2 5.6.1__py3-none-any.whl → 5.6.2__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
qBitrr/arss.py CHANGED
@@ -20,7 +20,7 @@ import qbittorrentapi
20
20
  import qbittorrentapi.exceptions
21
21
  import requests
22
22
  from packaging import version as version_parser
23
- from peewee import Model, SqliteDatabase
23
+ from peewee import DatabaseError, Model, OperationalError, SqliteDatabase
24
24
  from pyarr import LidarrAPI, RadarrAPI, SonarrAPI
25
25
  from pyarr.exceptions import PyarrResourceNotFound, PyarrServerError
26
26
  from pyarr.types import JsonObject
@@ -4475,6 +4475,11 @@ class Arr:
4475
4475
  if self.manager.qbit_manager.should_delay_torrent_scan:
4476
4476
  raise DelayLoopException(length=NO_INTERNET_SLEEP_TIMER, type="delay")
4477
4477
 
4478
+ # Initialize database error tracking for exponential backoff
4479
+ if not hasattr(self, "_db_error_count"):
4480
+ self._db_error_count = 0
4481
+ self._db_last_error_time = 0
4482
+
4478
4483
  # Periodic database health check (every 10th iteration)
4479
4484
  if not hasattr(self, "_health_check_counter"):
4480
4485
  self._health_check_counter = 0
@@ -4516,6 +4521,76 @@ class Arr:
4516
4521
  self.logger.error("The qBittorrent API returned an unexpected error")
4517
4522
  self.logger.debug("Unexpected APIError from qBitTorrent") # , exc_info=e)
4518
4523
  raise DelayLoopException(length=300, type="qbit")
4524
+ except (OperationalError, DatabaseError) as e:
4525
+ # Database errors after retry exhaustion - implement automatic recovery with backoff
4526
+ error_msg = str(e).lower()
4527
+ current_time = time.time()
4528
+
4529
+ # Track consecutive database errors for exponential backoff
4530
+ if (
4531
+ current_time - self._db_last_error_time > 300
4532
+ ): # Reset if >5min since last error
4533
+ self._db_error_count = 0
4534
+ self._db_error_count += 1
4535
+ self._db_last_error_time = current_time
4536
+
4537
+ # Calculate exponential backoff: 2min, 5min, 10min, 20min, 30min (max)
4538
+ delay_seconds = min(120 * (2 ** (self._db_error_count - 1)), 1800)
4539
+
4540
+ # Log detailed error information based on error type
4541
+ if "disk i/o error" in error_msg:
4542
+ self.logger.critical(
4543
+ "Persistent database I/O error detected (consecutive error #%d). "
4544
+ "This indicates disk issues, filesystem corruption, or resource exhaustion. "
4545
+ "Attempting automatic recovery and retrying in %d seconds...",
4546
+ self._db_error_count,
4547
+ delay_seconds,
4548
+ )
4549
+ elif "database is locked" in error_msg:
4550
+ self.logger.error(
4551
+ "Database locked error (consecutive error #%d). "
4552
+ "Retrying in %d seconds...",
4553
+ self._db_error_count,
4554
+ delay_seconds,
4555
+ )
4556
+ elif "disk image is malformed" in error_msg:
4557
+ self.logger.critical(
4558
+ "Database corruption detected (consecutive error #%d). "
4559
+ "Attempting automatic recovery and retrying in %d seconds...",
4560
+ self._db_error_count,
4561
+ delay_seconds,
4562
+ )
4563
+ else:
4564
+ self.logger.error(
4565
+ "Database error (consecutive error #%d): %s. " "Retrying in %d seconds...",
4566
+ self._db_error_count,
4567
+ error_msg,
4568
+ delay_seconds,
4569
+ )
4570
+
4571
+ # Attempt automatic recovery for critical errors
4572
+ if "disk i/o error" in error_msg or "disk image is malformed" in error_msg:
4573
+ try:
4574
+ self.logger.warning(
4575
+ "Attempting enhanced database recovery (WAL checkpoint, repair, and verification)..."
4576
+ )
4577
+ self._enhanced_database_recovery()
4578
+ self.logger.info(
4579
+ "Database recovery completed successfully - will retry operation after delay"
4580
+ )
4581
+ # Reduce error count on successful recovery (but don't reset completely)
4582
+ self._db_error_count = max(0, self._db_error_count - 1)
4583
+ except Exception as recovery_error:
4584
+ self.logger.critical(
4585
+ "Automatic database recovery failed: %s. "
4586
+ "MANUAL INTERVENTION REQUIRED: Check disk health (smartctl), "
4587
+ "filesystem integrity (fsck), available space (df -h), "
4588
+ "Docker volume mounts, permissions, and system logs (dmesg).",
4589
+ recovery_error,
4590
+ )
4591
+
4592
+ # Delay processing to avoid hammering failing database
4593
+ raise DelayLoopException(length=delay_seconds, type="database")
4519
4594
  except DelayLoopException:
4520
4595
  raise
4521
4596
  except KeyboardInterrupt:
@@ -4566,6 +4641,83 @@ class Arr:
4566
4641
  "Manual intervention may be required. Continuing with caution..."
4567
4642
  )
4568
4643
 
4644
+ def _enhanced_database_recovery(self):
4645
+ """
4646
+ Enhanced automatic database recovery with additional filesystem checks.
4647
+
4648
+ This method is called when disk I/O errors persist after retry logic has been exhausted.
4649
+ It implements a comprehensive recovery strategy:
4650
+ 1. Try WAL checkpoint (least invasive)
4651
+ 2. Try VACUUM to reclaim space and fix minor corruption
4652
+ 3. Try full database repair (dump/restore) if needed
4653
+ 4. Verify database integrity after recovery
4654
+ """
4655
+ from qBitrr.db_recovery import (
4656
+ DatabaseRecoveryError,
4657
+ checkpoint_wal,
4658
+ repair_database,
4659
+ vacuum_database,
4660
+ )
4661
+ from qBitrr.home_path import APPDATA_FOLDER
4662
+
4663
+ db_path = APPDATA_FOLDER / "qbitrr.db"
4664
+
4665
+ self.logger.info("Starting enhanced database recovery procedure...")
4666
+
4667
+ # Step 1: Try WAL checkpoint
4668
+ self.logger.info("Step 1/3: Attempting WAL checkpoint...")
4669
+ if checkpoint_wal(db_path, self.logger):
4670
+ self.logger.info("WAL checkpoint successful")
4671
+ # Try a quick health check
4672
+ from qBitrr.db_lock import check_database_health
4673
+
4674
+ healthy, msg = check_database_health(db_path, self.logger)
4675
+ if healthy:
4676
+ self.logger.info("Database health verified - recovery complete")
4677
+ return
4678
+ else:
4679
+ self.logger.warning(
4680
+ "WAL checkpoint completed but database still unhealthy: %s", msg
4681
+ )
4682
+
4683
+ # Step 2: Try VACUUM (only if WAL didn't fully fix it)
4684
+ self.logger.info("Step 2/3: Attempting VACUUM to reclaim space and fix minor issues...")
4685
+ if vacuum_database(db_path, self.logger):
4686
+ self.logger.info("VACUUM completed successfully")
4687
+ from qBitrr.db_lock import check_database_health
4688
+
4689
+ healthy, msg = check_database_health(db_path, self.logger)
4690
+ if healthy:
4691
+ self.logger.info("Database health verified after VACUUM - recovery complete")
4692
+ return
4693
+ else:
4694
+ self.logger.warning("VACUUM completed but database still unhealthy: %s", msg)
4695
+
4696
+ # Step 3: Try full repair (most invasive)
4697
+ self.logger.warning("Step 3/3: Attempting full database repair (dump/restore)...")
4698
+ try:
4699
+ if repair_database(db_path, backup=True, logger_override=self.logger):
4700
+ self.logger.info("Database repair successful")
4701
+ # Final health check
4702
+ from qBitrr.db_lock import check_database_health
4703
+
4704
+ healthy, msg = check_database_health(db_path, self.logger)
4705
+ if healthy:
4706
+ self.logger.info("Database health verified after repair - recovery complete")
4707
+ return
4708
+ else:
4709
+ self.logger.error("Repair completed but database still unhealthy: %s", msg)
4710
+ raise DatabaseRecoveryError(f"Database unhealthy after repair: {msg}")
4711
+ except DatabaseRecoveryError as e:
4712
+ self.logger.error("Database repair failed: %s", e)
4713
+ raise
4714
+ except Exception as e:
4715
+ self.logger.error("Unexpected error during database repair: %s", e)
4716
+ raise
4717
+
4718
+ # If we reach here, all recovery methods failed
4719
+ raise DatabaseRecoveryError("All automatic recovery methods failed")
4720
+
4569
4721
  def _process_single_torrent_failed_cat(self, torrent: qbittorrentapi.TorrentDictionary):
4570
4722
  self.logger.notice(
4571
4723
  "Deleting manually failed torrent: "
qBitrr/bundled_data.py CHANGED
@@ -1,5 +1,5 @@
1
- version = "5.6.1"
2
- git_hash = "db497bc6"
1
+ version = "5.6.2"
2
+ git_hash = "e39e0d1e"
3
3
  license_text = (
4
4
  "Licence can be found on:\n\nhttps://github.com/Feramance/qBitrr/blob/master/LICENSE"
5
5
  )
qBitrr/db_lock.py CHANGED
@@ -133,18 +133,27 @@ def with_database_retry(
133
133
  if "syntax" in error_msg or "constraint" in error_msg:
134
134
  raise
135
135
 
136
- # Detect corruption and attempt recovery (only once)
136
+ # Detect corruption or persistent I/O errors and attempt recovery (only once)
137
137
  if not corruption_recovery_attempted and (
138
138
  "disk image is malformed" in error_msg
139
139
  or "database disk image is malformed" in error_msg
140
140
  or "database corruption" in error_msg
141
+ or "disk i/o error" in error_msg
141
142
  ):
142
143
  corruption_recovery_attempted = True
143
144
  if logger:
144
- logger.error(
145
- "Database corruption detected: %s. Attempting automatic recovery...",
146
- e,
147
- )
145
+ if "disk i/o error" in error_msg:
146
+ logger.error(
147
+ "Persistent database I/O error detected: %s. "
148
+ "This may indicate disk issues, filesystem problems, or database corruption. "
149
+ "Attempting automatic recovery...",
150
+ e,
151
+ )
152
+ else:
153
+ logger.error(
154
+ "Database corruption detected: %s. Attempting automatic recovery...",
155
+ e,
156
+ )
148
157
 
149
158
  recovery_succeeded = False
150
159
  try:
@@ -184,15 +193,19 @@ def with_database_retry(
184
193
  # If we reach here, recovery failed - log and continue with normal retry
185
194
  if logger:
186
195
  logger.critical(
187
- "Automatic database recovery failed. "
188
- "Manual intervention may be required. Attempting normal retry..."
196
+ "Automatic database recovery FAILED. "
197
+ "Both WAL checkpoint and full database repair were unsuccessful. "
198
+ "This indicates serious underlying issues. "
199
+ "Attempting normal retry, but manual intervention will likely be required."
189
200
  )
190
201
 
191
202
  attempt += 1
192
203
  if attempt >= retries:
193
204
  if logger:
194
- logger.error(
195
- "Database operation failed after %s attempts: %s",
205
+ logger.critical(
206
+ "Database operation EXHAUSTED %s retry attempts. "
207
+ "Error: %s. "
208
+ "This will be re-raised to the calling code for handling.",
196
209
  retries,
197
210
  e,
198
211
  )
@@ -264,11 +277,12 @@ class ResilientSqliteDatabase:
264
277
  except (OperationalError, DatabaseError, sqlite3.OperationalError) as e:
265
278
  error_msg = str(e).lower()
266
279
 
267
- # Detect corruption and attempt recovery (only once)
280
+ # Detect corruption or persistent I/O errors and attempt recovery (only once)
268
281
  if not corruption_recovery_attempted and (
269
282
  "disk image is malformed" in error_msg
270
283
  or "database disk image is malformed" in error_msg
271
284
  or "database corruption" in error_msg
285
+ or "disk i/o error" in error_msg
272
286
  ):
273
287
  corruption_recovery_attempted = True
274
288
  if self._logger:
@@ -1 +1 @@
1
- :root,[data-theme=dark]{--bg: #101114;--surface: #1b1e22;--on-surface: #eaeef2;--muted: #9aa3ac;--primary: #7aa2f7;--primary-variant: #3b82f6;--success: #22c55e;--danger: #ef4444;--warning: #facc15;--border: #2a2f36;--elev: 8px;--layout-max-width: 1200px}[data-theme=light]{--bg: #f5f5f7;--surface: #ffffff;--on-surface: #1d1d1f;--muted: #6e6e73;--primary: #0071e3;--primary-variant: #0077ed;--success: #34c759;--danger: #ff3b30;--warning: #ff9500;--border: #d2d2d7;--elev: 4px;--layout-max-width: 1200px}*{box-sizing:border-box}html{scroll-behavior:smooth}html,body{height:100%}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol;margin:0;background:var(--bg);color:var(--on-surface);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;font-feature-settings:"kern" 1;font-kerning:normal}*::-webkit-scrollbar{width:12px;height:12px}*::-webkit-scrollbar-track{background:#0003;border-radius:6px}*::-webkit-scrollbar-thumb{background:#7aa2f74d;border-radius:6px;border:2px solid transparent;background-clip:padding-box}*::-webkit-scrollbar-thumb:hover{background:#7aa2f780;background-clip:padding-box}.appbar{position:sticky;top:0;z-index:100;display:flex;justify-content:center;padding:16px 20px;background:var(--surface);border-bottom:1px solid var(--border);box-shadow:0 2px 16px #0000000f;backdrop-filter:blur(12px) saturate(180%);-webkit-backdrop-filter:blur(12px) saturate(180%)}[data-theme=light] .appbar{background:#fffc}[data-theme=dark] .appbar{background:linear-gradient(180deg,#0b0c0ff2,#0d0e11f2);box-shadow:0 4px 16px #0006}.appbar__inner{width:100%;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:0 16px;flex-wrap:wrap}.appbar__title{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}.appbar h1{margin:0;font-size:20px;font-weight:700;letter-spacing:-.02em;background:linear-gradient(135deg,var(--on-surface) 0%,var(--primary) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}[data-theme=light] .appbar h1{background:linear-gradient(135deg,var(--on-surface) 0%,var(--primary) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.appbar__version{font-size:12px;color:var(--muted);letter-spacing:.4px}.appbar__status{font-size:12px}.appbar__actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.appbar__update{display:inline-flex;align-items:center;gap:6px}.appbar__update-indicator{width:8px;height:8px;border-radius:50%;background:var(--danger);display:inline-block;animation:pulse 1s ease-in-out infinite;box-shadow:0 0 8px #ef444499}.container{padding:20px;display:grid;grid-template-columns:1fr;gap:20px;animation:fadeInUp .3s ease}.toolbar{display:flex;gap:8px;align-items:center;flex-wrap:wrap;color:var(--muted)}.nav{display:flex;gap:8px;flex-wrap:wrap;width:100%}.nav button{color:var(--muted);background:transparent;border:1px solid var(--border);padding:10px 14px;display:inline-flex;align-items:center;gap:8px;border-radius:8px;cursor:pointer;font-weight:500;transition:all .15s ease;position:relative;overflow:hidden}.nav button:before{content:"";position:absolute;inset:0;background:linear-gradient(135deg,rgba(122,162,247,.1),transparent);opacity:0;transition:opacity .15s ease}.nav button .icon{width:1.4em;height:1.4em;transition:transform .15s ease}.nav button:hover .icon{transform:scale(1.1)}.nav button.active{color:var(--primary);border-color:var(--primary);background:#7aa2f71f;box-shadow:0 0 0 2px #7aa2f71a,0 2px 8px #7aa2f733;font-weight:600}[data-theme=light] .nav button.active{box-shadow:0 0 0 2px #0071e31a,0 2px 8px #0071e333}.nav button:hover:not(.active){color:var(--on-surface);border-color:#7aa2f766;background:#7aa2f70f;transform:translateY(-1px)}.nav button:hover:before{opacity:1}.card{background:var(--surface);border:1px solid var(--border);border-radius:14px;box-shadow:0 2px 8px #00000014,0 1px 2px #0000000f;overflow:hidden;transition:transform .15s ease,box-shadow .15s ease,border-color .15s ease;position:relative}[data-theme=dark] .card{box-shadow:0 var(--elev) 24px #00000040,0 2px 4px #0000004d}.card:before{content:"";position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,rgba(122,162,247,.1),transparent);opacity:0;transition:opacity .15s ease}.card:hover{transform:translateY(-2px);box-shadow:0 16px 40px #0000001f,0 4px 8px #00000014;border-color:#7aa2f74d}[data-theme=dark] .card:hover{box-shadow:0 12px 32px #00000059,0 4px 8px #0006}.card:hover:before{opacity:1}.card .card-header{padding:16px 20px;border-bottom:1px solid var(--border);font-weight:700;font-size:15px;letter-spacing:.01em;color:var(--on-surface);background:linear-gradient(180deg,#7aa2f70a,#7aa2f703);position:relative}[data-theme=light] .card .card-header{background:linear-gradient(180deg,rgba(0,113,227,.03) 0%,transparent 100%)}.card .card-header:after{content:"";position:absolute;bottom:0;left:20px;right:20px;height:1px;background:linear-gradient(90deg,transparent,var(--primary),transparent);opacity:.15}.card .card-body{padding:12px 14px}.btn{appearance:none;border:1px solid var(--border);background:var(--surface);color:var(--on-surface);padding:8px 14px;border-radius:8px;cursor:pointer;transition:all .15s ease;display:inline-flex;align-items:center;gap:6px;font-weight:500;position:relative;overflow:hidden}[data-theme=dark] .btn{background:#0f131a}.btn:before{content:"";position:absolute;inset:0;background:linear-gradient(135deg,#ffffff1a,#fff0);opacity:0;transition:opacity .15s ease}.btn:hover:not(:disabled):before{opacity:1}.btn.primary{border-color:var(--primary-variant);background:linear-gradient(135deg,#7aa2f72e,#7aa2f71f);color:var(--primary);font-weight:600;box-shadow:0 2px 8px #7aa2f726}[data-theme=light] .btn.primary{background:linear-gradient(135deg,#0071e31f,#0071e314);box-shadow:0 2px 8px #0071e326}.btn.danger{border-color:#ef444466;color:var(--danger);background:#ef44441f}.btn.danger:hover:not(:disabled){background:var(--danger);color:#0a0a0a;border-color:var(--danger);box-shadow:0 4px 12px #ef44444d}.btn.primary:hover:not(:disabled){background:var(--primary);color:#0a0a0a;border-color:var(--primary);box-shadow:0 4px 12px #7aa2f74d}.btn.ghost{background:transparent}.btn.ghost:hover:not(:disabled){background:#ffffff0d;border-color:#7aa2f74d}.btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 3px 10px #0006}.btn:active:not(:disabled){transform:translateY(0)}.btn:focus-visible{outline:none;box-shadow:0 0 0 3px #7aa2f74d}[data-theme=light] .btn:focus-visible{box-shadow:0 0 0 3px #0071e34d}.nav button:focus-visible{outline:none;box-shadow:0 0 0 3px #7aa2f740}[data-theme=light] .nav button:focus-visible{box-shadow:0 0 0 3px #0071e340}.btn:disabled{opacity:.5;cursor:not-allowed}.btn.small{padding:6px 10px;font-size:12px}.btn.outline{background:transparent;border-color:var(--border)}.btn.outline:hover:not(:disabled){background:#ffffff0d;border-color:var(--primary-variant)}.btn.active{background:var(--primary);color:#0a0a0a;border-color:var(--primary)}.field{display:flex;flex-direction:column;gap:6px}.field--full-width{grid-column:1 / -1}.sonarr-hierarchical-view{display:flex;flex-direction:column;gap:8px}.series-details,.season-details{border:1px solid var(--border);border-radius:6px;background:var(--card-bg)}.series-summary,.season-summary{padding:12px 16px;cursor:pointer;-webkit-user-select:none;user-select:none;font-weight:600;color:var(--text);background:var(--card-header-bg);border-radius:6px 6px 0 0;display:flex;align-items:center;justify-content:space-between;gap:8px}.series-summary:hover,.season-summary:hover{background:var(--hover-bg)}.series-title{font-size:1.1em;flex:1}.series-instance,.series-count,.series-quality,.artist-quality{font-size:.9em;color:var(--muted);font-weight:400;white-space:nowrap}.season-title{font-size:1em}.season-count{font-size:.9em;color:var(--muted);font-weight:400}.series-content,.season-content{padding:8px}.episodes-table-wrapper{overflow-x:auto}.episodes-table{width:100%;border-collapse:collapse;font-size:.9em}.episodes-table th,.episodes-table td{padding:8px 12px;text-align:left;border-bottom:1px solid var(--border)}.episodes-table th{background:var(--table-header-bg);font-weight:600;color:var(--text);position:sticky;top:0}.episodes-table tr:hover{background:var(--hover-bg)}.lidarr-hierarchical-view{display:flex;flex-direction:column;gap:8px}.artist-details{border:1px solid var(--border);border-radius:6px;background:var(--card-bg)}.artist-summary{padding:12px 16px;cursor:pointer;-webkit-user-select:none;user-select:none;font-weight:600;color:var(--text);background:var(--card-header-bg);border-radius:6px 6px 0 0;display:flex;align-items:center;justify-content:space-between;gap:8px}.artist-summary:hover{background:var(--hover-bg)}.artist-title{font-size:1.1em;flex:1}.artist-instance,.artist-count{font-size:.9em;color:var(--muted);font-weight:400}.artist-content{padding:8px}.albums-table-wrapper{overflow-x:auto}.albums-table{width:100%;border-collapse:collapse;font-size:.9em}.albums-table th,.albums-table td{padding:8px 12px;text-align:left;border-bottom:1px solid var(--border)}.albums-table th{background:var(--table-header-bg);font-weight:600;color:var(--text);position:sticky;top:0}.albums-table tr:hover{background:var(--hover-bg)}.album-details{border:1px solid var(--border);border-radius:4px;background:var(--surface);margin-bottom:8px}.album-summary{padding:10px 14px;cursor:pointer;-webkit-user-select:none;user-select:none;font-weight:500;color:var(--text);background:var(--card-header-bg);border-radius:4px 4px 0 0;display:flex;align-items:center;gap:12px}.album-summary:hover{background:var(--hover-bg)}.album-title{font-size:1em;flex:1}.album-date,.album-track-count{font-size:.85em;color:var(--muted);font-weight:400}.album-status{font-size:1.1em;font-weight:700}.album-status.has-file{color:var(--success)}.album-status.missing{color:var(--danger)}.album-content{padding:8px}.album-info{padding:8px 12px;font-size:.9em}.album-info p{margin:4px 0}.tracks-table-wrapper{overflow-x:auto}.tracks-table{width:100%;border-collapse:collapse;font-size:.85em;table-layout:fixed}.tracks-table th,.tracks-table td{padding:6px 10px;text-align:left;border-bottom:1px solid var(--border);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tracks-table th:nth-child(1),.tracks-table td:nth-child(1){width:70px}.tracks-table th:nth-child(2),.tracks-table td:nth-child(2){width:auto;white-space:normal}.tracks-table th:nth-child(3),.tracks-table td:nth-child(3){width:100px}.tracks-table th:nth-child(4),.tracks-table td:nth-child(4){width:110px;text-align:center}.tracks-table th:nth-child(5),.tracks-table td:nth-child(5){width:180px}.tracks-table th{background:var(--table-header-bg);font-weight:600;color:var(--text);font-size:.9em}.tracks-table tr.track-available{opacity:1}.tracks-table tr.track-missing{opacity:.6}.tracks-table tr:hover{background:var(--hover-bg)}.track-status{display:inline-block;font-weight:700;font-size:1.1em}.track-status.available{color:var(--success)}.track-status.missing{color:var(--danger)}.table-badge{display:inline-block;padding:3px 8px;border-radius:6px;font-size:.8em;font-weight:600;border:1px solid transparent;transition:all .15s ease}.table-badge:hover{transform:scale(1.05)}.table-badge.monitored{background:#22c55e26;border-color:#22c55e4d;color:var(--success)}.table-badge.unmonitored{background:#facc1526;border-color:#facc154d;color:var(--warning)}.table-badge.has-file{background:#22c55e26;border-color:#22c55e4d;color:var(--success)}.table-badge.missing{background:#ef444426;border-color:#ef44444d;color:var(--danger)}.table-badge-reason{background:#facc1526;border-color:#facc154d;color:var(--warning);font-family:monospace;font-size:11px;font-weight:600}[data-theme=light] .table-badge-reason{background:#ff95001a;border-color:#ff95004d}.field label{color:var(--muted);font-size:12px}.field input,.field select,.field textarea{background:var(--surface);color:var(--on-surface);border:1px solid var(--border);border-radius:8px;padding:9px 12px;transition:all .15s ease}[data-theme=dark] .field input,[data-theme=dark] .field select,[data-theme=dark] .field textarea{background:#0f131a}.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 4px #7aa2f71f,0 2px 8px #7aa2f726;background:var(--bg);transform:translateY(-1px)}[data-theme=light] .field input:focus,[data-theme=light] .field select:focus,[data-theme=light] .field textarea:focus{box-shadow:0 0 0 4px #0071e31a,0 2px 8px #0071e326}[data-theme=dark] .field input:focus,[data-theme=dark] .field select:focus,[data-theme=dark] .field textarea:focus{background:#12151a;box-shadow:0 0 0 4px #7aa2f71f,0 2px 8px #7aa2f733}.field input:hover:not(:focus),.field select:hover:not(:focus),.field textarea:hover:not(:focus){border-color:#7aa2f74d}.field input[type=checkbox]{width:auto}.field.mobile-instance-select{display:none}.field-description,.field-hint{display:block;margin:0;font-size:12px;line-height:1.35;color:var(--muted)}.field-description{margin-top:2px}.field-hint{color:var(--primary);font-weight:500;margin-top:4px}.row{display:flex;flex-wrap:wrap;gap:12px}.row .col{flex:1 1 260px}table{border-collapse:collapse;width:100%;border:1px solid var(--border);border-radius:12px;overflow:hidden;box-shadow:0 2px 8px #0000000a}[data-theme=dark] table{box-shadow:0 2px 8px #0003}th,td{border-bottom:1px solid var(--border);padding:10px 12px;font-size:13px;text-align:left}th{background:var(--surface);color:var(--muted);font-weight:600;text-transform:uppercase;font-size:11px;letter-spacing:.05em;border-bottom:2px solid var(--border)}[data-theme=dark] th{background:#12151a}tbody tr{transition:background-color .1s ease,transform .08s ease;border-left:3px solid transparent}tbody tr:hover{background:#7aa2f70d;cursor:default;border-left-color:var(--primary)}[data-theme=light] tbody tr:hover{background:#0071e30a}[data-theme=dark] tbody tr:hover{background:#7aa2f70f}th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none}.sort-arrow{font-size:10px;margin-left:4px;color:var(--muted)}details{margin:6px 0}details summary{cursor:pointer;transition:all .15s ease;padding:4px;border-radius:6px}details summary:hover{background:#7aa2f70d;color:var(--primary)}.ok{color:var(--success)}.bad{color:var(--danger)}.hint{color:var(--muted);font-size:12px}.spacer{flex:1}pre{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:14px;color:var(--on-surface);max-height:420px;overflow:auto;transition:border-color .15s ease}[data-theme=dark] pre{background:#0f131a}pre:hover{border-color:#7aa2f74d}pre::-webkit-scrollbar{width:10px;height:10px}pre::-webkit-scrollbar-track{background:#0003;border-radius:6px}pre::-webkit-scrollbar-thumb{background:#7aa2f74d;border-radius:6px}pre::-webkit-scrollbar-thumb:hover{background:#7aa2f780}.loading{color:var(--muted);display:inline-flex;align-items:center;gap:8px;font-weight:500;animation:pulse 1.5s ease-in-out infinite}.spinner{width:14px;height:14px;border:2.5px solid rgba(122,162,247,.15);border-top-color:var(--primary);border-radius:50%;display:inline-block;animation:spin .6s linear infinite;box-shadow:0 0 8px #7aa2f733}[data-theme=light] .spinner{border:2.5px solid rgba(0,113,227,.15);border-top-color:var(--primary);box-shadow:0 0 8px #0071e333}@keyframes spin{to{transform:rotate(360deg)}}.toasts{position:fixed;right:16px;bottom:16px;display:grid;gap:10px;z-index:9999}.toast{background:var(--surface);color:var(--on-surface);border:1px solid var(--border);border-left:4px solid var(--primary);padding:12px 16px;border-radius:10px;box-shadow:0 12px 32px #0003;min-width:260px;transition:all .2s ease;animation:slideIn .2s ease}[data-theme=dark] .toast{background:#12151a;border:1px solid rgba(255,255,255,.1);box-shadow:0 12px 32px #00000080}.toast:hover{transform:translate(-4px)}[data-theme=dark] .toast:hover{box-shadow:0 16px 40px #0009}[data-theme=light] .toast:hover{box-shadow:0 16px 40px #00000040}.toast.success{border-left-color:var(--success)}.toast.warning{border-left-color:var(--warning)}.toast.error{border-left-color:var(--danger)}[data-theme=dark] .toast.success{background:linear-gradient(90deg,#22c55e14,#12151a 20%)}[data-theme=dark] .toast.warning{background:linear-gradient(90deg,#facc1514,#12151a 20%)}[data-theme=dark] .toast.error{background:linear-gradient(90deg,#ef444414,#12151a 20%)}[data-theme=light] .toast.success{background:linear-gradient(90deg,rgba(52,199,89,.08) 0%,var(--surface) 20%)}[data-theme=light] .toast.warning{background:linear-gradient(90deg,rgba(255,149,0,.08) 0%,var(--surface) 20%)}[data-theme=light] .toast.error{background:linear-gradient(90deg,rgba(255,59,48,.08) 0%,var(--surface) 20%)}.status-pill{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:999px;font-size:12px;font-weight:500;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);transition:all .15s ease}.status-pill:hover{background:#ffffff14;border-color:#ffffff26;transform:scale(1.02)}.stack{display:grid;gap:12px}.tabs{display:flex;gap:8px;flex-wrap:wrap}.tab-panel{margin-top:12px}.sidebar{display:grid;gap:8px;min-width:220px;align-content:start;align-items:start}.sidebar .btn{width:100%;text-align:left}.split{display:flex;gap:16px}.split .pane{flex:1}.split .pane.sidebar{flex:0 0 260px}.pagination{display:flex;justify-content:space-between;align-items:center;margin-top:16px;padding:12px 0;gap:12px;flex-wrap:wrap}.pagination-info{font-size:14px;color:var(--muted)}.pagination .inline{display:flex;gap:4px;align-items:center}.pagination .btn{min-width:70px;padding:8px 12px}.pagination-jump{width:80px;padding:8px 12px;border:1px solid var(--border);border-radius:8px;background:var(--surface);color:var(--on-surface);font-size:14px;text-align:center;transition:all .2s ease}.pagination-jump:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px #7aa2f71a}.pagination-jump:disabled{opacity:.5;cursor:not-allowed}.pagination-jump::-webkit-inner-spin-button,.pagination-jump::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.pagination-jump[type=number]{-moz-appearance:textfield}.badge{display:inline-block;padding:3px 8px;border-radius:6px;font-size:11px;font-weight:600;background:#7aa2f726;border:1px solid rgba(122,162,247,.25);color:var(--primary);transition:all .15s ease}.badge:hover{background:#7aa2f740;border-color:#7aa2f766;transform:scale(1.05)}.icon{display:inline-block;width:1.4em;height:1.4em;vertical-align:middle;object-fit:contain}.icon--small{width:1.2em;height:1.2em}.icon--large{width:1.6em;height:1.6em}svg{max-width:2em;max-height:2em}svg[width],svg[height]{width:1.4em!important;height:1.4em!important}.btn .icon{margin:0;transition:transform .2s ease}.icon-rotate{transform:scaleX(-1);transform-origin:center}.btn:hover .icon{transform:translateY(-1px)}.responsive-table{width:100%;border-collapse:collapse;transition:box-shadow .2s ease}.responsive-table tbody tr{animation:fadeInUp .2s ease}.responsive-table tbody tr:nth-child(2n){background:#ffffff05}.responsive-table td,.responsive-table th{padding:8px 12px;text-align:left}.table-wrapper{overflow-x:auto;border-radius:12px}.table-wrapper::-webkit-scrollbar{height:8px}.table-wrapper::-webkit-scrollbar-thumb{background:#ffffff1f;border-radius:999px}.animate-fade-in{animation:fadeInUp .2s ease}.table-badge{display:inline-flex;align-items:center;gap:4px}.inline{display:inline-flex;align-items:center;gap:6px}.text-info{color:var(--primary)}.text-success{color:var(--success)}.text-danger{color:var(--danger)}@keyframes fadeInUp{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes slideIn{0%{opacity:0;transform:translate(-10px)}to{opacity:1;transform:translate(0)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.7}}@keyframes glow{0%,to{box-shadow:0 0 8px #7aa2f74d}50%{box-shadow:0 0 16px #7aa2f780}}@media(max-width:900px){.split{flex-direction:column}.split .pane.sidebar{display:none}.field.mobile-instance-select{display:grid;margin-bottom:12px}}@media(max-width:640px){.appbar__inner{flex-direction:column;align-items:stretch;gap:12px;padding:0}.appbar__actions{width:100%;justify-content:flex-start}.appbar__title{gap:8px}.nav{gap:6px}.nav button{flex:1 1 calc(50% - 6px);justify-content:center}}@media(max-width:420px){.nav button{flex-basis:100%}}@media(max-width:720px){.responsive-table thead{display:none}.responsive-table,.responsive-table tbody,.responsive-table tr,.responsive-table td{display:block;width:100%}.responsive-table tbody tr{background:#12151ab3;border:1px solid rgba(255,255,255,.06);border-radius:8px;padding:8px;margin-bottom:8px;box-shadow:0 4px 12px #0003;user-select:none;-webkit-user-select:none;-moz-user-select:none}.responsive-table td{padding:4px 0;display:flex;justify-content:space-between;align-items:center;gap:8px;border:none;font-size:14px;line-height:1.4}.responsive-table td:before{content:attr(data-label);font-weight:600;font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.05em;flex-shrink:0;min-width:80px}.table-wrapper{overflow:visible}.episodes-table thead{display:none}.episodes-table,.episodes-table tbody,.episodes-table tr,.episodes-table td{display:block;width:100%}.episodes-table tbody tr{background:#12151ab3;border:1px solid rgba(255,255,255,.06);border-radius:8px;padding:8px;margin-bottom:8px;box-shadow:0 4px 12px #0003}.episodes-table td{padding:4px 0;display:flex;justify-content:space-between;align-items:center;gap:8px;border:none;font-size:14px;line-height:1.4}.episodes-table td:before{content:attr(data-label);font-weight:600;font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.05em;flex-shrink:0;min-width:80px}.episodes-table-wrapper{overflow:visible}.tracks-table thead{display:none}.tracks-table,.tracks-table tbody,.tracks-table tr,.tracks-table td{display:block;width:100%}.tracks-table tbody tr{background:#12151ab3;border:1px solid rgba(255,255,255,.06);border-radius:8px;padding:8px;margin-bottom:8px;box-shadow:0 4px 12px #0003}.tracks-table td{padding:4px 0;display:flex;justify-content:space-between;align-items:center;gap:8px;border:none;font-size:14px;line-height:1.4}.tracks-table td:before{content:attr(data-label);font-weight:600;font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.05em;flex-shrink:0;min-width:80px}.tracks-table-wrapper{overflow:visible}}.process-grid{display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}.process-section{display:grid;gap:12px}.process-section+.process-section{margin-top:12px}.process-section__title{font-size:12px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--primary);padding:0 4px;display:inline-flex;align-items:center;gap:10px}.process-section__title:before{content:"";width:4px;height:18px;background:linear-gradient(180deg,var(--primary),var(--primary-variant));border-radius:3px;box-shadow:0 0 8px #7aa2f74d}.process-card{border:1px solid var(--border);border-radius:14px;background:var(--surface);padding:18px;display:flex;flex-direction:column;gap:14px;transition:all .15s cubic-bezier(.4,0,.2,1);position:relative;overflow:hidden;box-shadow:0 2px 8px #0000000f}[data-theme=dark] .process-card{background:#ffffff08;box-shadow:0 2px 8px #0003}.process-card:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--primary),var(--primary-variant));opacity:0;transition:opacity .15s ease}.process-card:after{content:"";position:absolute;inset:0;background:radial-gradient(circle at top right,rgba(122,162,247,.05),transparent 60%);opacity:0;transition:opacity .15s ease;pointer-events:none}.process-card:hover{border-color:#7aa2f766;transform:translateY(-3px);box-shadow:0 12px 32px #0000001f}[data-theme=dark] .process-card:hover{box-shadow:0 8px 24px #00000059}.process-card:hover:before,.process-card:hover:after{opacity:1}.process-card__header{position:relative;display:flex;justify-content:space-between;align-items:flex-start;gap:8px;flex-wrap:wrap;padding-right:18px}.process-card__name{font-weight:700;font-size:17px;letter-spacing:-.01em;line-height:1.3}.process-card__title{display:grid;gap:4px;min-width:0}.process-card__summary{font-size:12px;color:var(--muted)}.process-card__badges{display:flex;flex-wrap:wrap;gap:6px;margin-top:4px}.process-card__badge{padding:3px 10px;border-radius:999px;font-size:11px;font-weight:600;background:#7aa2f726;border:1px solid rgba(122,162,247,.3);color:var(--primary);transition:all .15s ease}.process-card__badge:hover{background:#7aa2f740;border-color:#7aa2f780;transform:scale(1.05)}.status-indicator{position:absolute;top:0;right:0;width:12px;height:12px;border-radius:50%;background:#99a2ad99;box-shadow:0 0 6px #00000059;transition:all .2s ease}.status-indicator--ok{background:var(--success);box-shadow:0 0 12px #22c55e80;animation:pulse 1.5s ease-in-out infinite}.status-indicator--bad{background:var(--danger);box-shadow:0 0 12px #ef444480;animation:pulse 1s ease-in-out infinite}.process-card__footer{display:flex;justify-content:flex-end;margin-top:auto}.process-card__list{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.process-chip{display:grid;gap:10px;border:1px solid var(--border);border-radius:10px;padding:12px 14px;background:var(--bg);transition:all .15s ease}[data-theme=dark] .process-chip{border:1px solid rgba(255,255,255,.08);background:#0f131a99}.process-chip:hover{border-color:#7aa2f74d;transform:translate(2px)}[data-theme=dark] .process-chip:hover{background:#0f131acc;border-color:#7aa2f733}[data-theme=light] .process-chip:hover{background:#00000005}.process-chip__top{display:flex;justify-content:space-between;align-items:center;gap:10px}.process-chip__name{font-weight:600;font-size:14px}.process-chip__actions{display:flex;justify-content:flex-end}.process-chip .btn{padding:6px 10px}.process-chip__detail{margin-top:6px;font-size:12px;color:var(--muted);line-height:1.35}.process-chip__detail-time{font-style:italic;color:var(--muted)}.status-pill__dot{width:6px;height:6px;border-radius:50%;background:currentColor;display:inline-block;margin-right:6px}.status-pill--ok{border-color:#22c55e66;background:linear-gradient(135deg,#22c55e26,#22c55e14);color:var(--success);box-shadow:0 2px 8px #22c55e26}.status-pill--bad{border-color:#ef444466;background:linear-gradient(135deg,#ef444426,#ef444414);color:var(--danger);box-shadow:0 2px 8px #ef444426}[data-theme=light] .status-pill--ok{background:linear-gradient(135deg,#34c7591f,#34c7590f)}[data-theme=light] .status-pill--bad{background:linear-gradient(135deg,#ff3b301f,#ff3b300f)}.empty-state{border:2px dashed rgba(122,162,247,.25);border-radius:16px;padding:40px 32px;text-align:center;color:var(--muted);background:linear-gradient(135deg,#7aa2f708,#7aa2f703);transition:all .2s ease;position:relative;overflow:hidden}.empty-state:before{content:"";position:absolute;top:50%;left:50%;width:100px;height:100px;background:radial-gradient(circle,rgba(122,162,247,.08),transparent);transform:translate(-50%,-50%);border-radius:50%;opacity:0;transition:opacity .2s ease}.empty-state:hover{border-color:#7aa2f766;background:linear-gradient(135deg,#7aa2f70d,#7aa2f705)}.empty-state:hover:before{opacity:1}[data-theme=light] .empty-state{border-color:#0071e340;background:linear-gradient(135deg,rgba(0,113,227,.02) 0%,transparent 100%)}[data-theme=light] .empty-state:before{background:radial-gradient(circle,rgba(0,113,227,.06),transparent)}[data-theme=light] .empty-state:hover{border-color:#0071e366;background:linear-gradient(135deg,#0071e30a,#0071e303)}.config-card{border:1px solid var(--border);border-radius:12px;background:var(--surface)}.config-card summary{cursor:pointer;font-weight:600;color:var(--muted);list-style:none;outline:none;padding:12px 14px;border-bottom:1px solid var(--border)}.config-card summary::-webkit-details-marker{display:none}.config-card summary:before{content:">";display:inline-block;margin-right:8px;transition:transform .2s ease}.config-card[open] summary:before{transform:rotate(0)}.config-card:not([open]) summary:before{transform:rotate(-90deg)}.config-card>.card-body{display:grid;gap:12px}.config-summary-card{display:flex;flex-direction:column;gap:12px;min-height:160px;transition:transform .2s ease,box-shadow .2s ease}.config-summary-card:hover{transform:translateY(-2px);box-shadow:0 8px 20px #0000004d}.config-summary-card p{margin:0;color:var(--muted);line-height:1.4}.config-layout{display:grid;gap:16px}.config-actions{display:flex;flex-wrap:wrap;gap:8px}.config-grid{display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(320px,1fr))}.config-arr-groups{display:flex;flex-direction:column;gap:24px}.config-arr-group{display:flex;flex-direction:column;gap:12px}.config-arr-group__details{border:1px solid rgba(255,255,255,.08);border-radius:12px;padding:16px 18px;background:#ffffff08;box-shadow:0 2px 8px #0003}.config-arr-group__details summary{display:flex;justify-content:space-between;align-items:center;gap:12px;cursor:pointer;font-weight:600;font-size:15px;color:var(--on-surface);list-style:none;transition:color .2s ease}.config-arr-group__details summary:hover{color:var(--primary)}.config-arr-group__details summary::-webkit-details-marker{display:none}.config-arr-group__details[open] summary{margin-bottom:16px;padding-bottom:12px;border-bottom:1px solid rgba(255,255,255,.06)}.config-arr-group__count{display:inline-flex;align-items:center;justify-content:center;padding:4px 10px;border-radius:999px;font-size:12px;font-weight:600;background:#7aa2f726;border:1px solid rgba(122,162,247,.3);color:var(--primary)}.config-arr-group__title{margin:0;font-size:14px;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.08em}.config-arr-grid{display:grid;gap:18px;grid-template-columns:repeat(auto-fit,minmax(360px,1fr));margin-top:4px}.config-arr-grid .card-body{display:flex;flex-direction:column;gap:12px}.config-arr-card{min-height:220px;transition:transform .2s ease,box-shadow .2s ease}.config-arr-card:hover{transform:translateY(-2px);box-shadow:0 8px 20px #0000004d}.config-arr-summary{display:grid;gap:8px;margin:0}.config-arr-summary__item{display:grid;gap:2px}.config-arr-summary__item dt{margin:0;font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}.config-arr-summary__item dd{margin:0;color:var(--on-surface);font-weight:500;font-size:13px}.config-arr-summary__uri{word-break:break-all}.config-arr-actions{display:flex;justify-content:flex-end;gap:8px;flex-wrap:wrap}.config-footer{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}.field-grid{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}.modal .field-grid{grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}@media(max-width:720px){.modal .field-grid{grid-template-columns:minmax(0,1fr)}}.field-label{display:flex;align-items:center;gap:6px;font-weight:600;color:var(--muted)}.checkbox-field{display:flex;flex-direction:column;gap:6px;font-size:13px;color:var(--muted)}.checkbox-field label{display:inline-flex;align-items:center;gap:8px;cursor:pointer;font-weight:600;color:var(--on-surface)}.checkbox-field input{margin:0;flex-shrink:0;cursor:pointer}.checkbox-field__content{display:flex;flex-direction:column;gap:6px;max-width:100%}.checkbox-field__text{display:inline-flex;align-items:center;gap:6px;font-weight:600;color:var(--muted);line-height:1.4}.secure-field{gap:8px}.secure-field__input-group{display:flex;align-items:center;gap:8px}.secure-field__input-group input{flex:1}.secure-field__controls{display:flex;gap:6px}.secure-field__controls .btn{padding:6px 10px}.help-icon{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;font-size:11px;border-radius:50%;border:1px solid rgba(255,255,255,.25);background:#ffffff14;color:var(--muted);cursor:help;transition:border-color .2s ease,color .2s ease}.help-icon:hover{border-color:var(--primary);color:var(--on-surface)}.config-section{border:1px solid rgba(255,255,255,.05);border-radius:10px;padding:8px 12px;background:#ffffff05}.config-section summary{cursor:pointer;font-weight:600;color:var(--muted);list-style:none;outline:none}.config-section summary::-webkit-details-marker{display:none}.config-section summary:before{content:">";display:inline-block;margin-right:8px;transition:transform .2s ease}.config-section[open] summary:before{transform:rotate(0)}.config-section:not([open]) summary:before{transform:rotate(-90deg)}.config-section__body{margin-top:12px}.modal-backdrop{position:fixed;inset:0;background:#00000080;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:flex-start;justify-content:center;padding:24px;overflow-y:auto;overflow-x:hidden;z-index:120;animation:fadeIn .2s ease}[data-theme=dark] .modal-backdrop{background:#000000bf}[data-theme=light] .modal-backdrop{background:#0000004d}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modal{background:var(--surface);border:1px solid var(--border);border-radius:20px;width:min(840px,calc(100% - 48px));max-height:min(92vh,calc(100vh - 80px));display:flex;flex-direction:column;margin:40px auto;box-shadow:0 24px 64px #0003,0 8px 16px #0000001a;animation:modalSlideIn .2s cubic-bezier(.4,0,.2,1);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px)}[data-theme=dark] .modal{background:#1b1e22f2;border:1px solid rgba(255,255,255,.1);box-shadow:0 20px 60px #0009,0 0 0 1px #ffffff0d}[data-theme=light] .modal{background:#fffffff2}@keyframes modalSlideIn{0%{opacity:0;transform:translateY(-20px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.modal-header{padding:20px 24px;border-bottom:1px solid rgba(255,255,255,.08);display:flex;justify-content:space-between;align-items:center;gap:12px;background:#ffffff05;border-radius:16px 16px 0 0}.modal-header h2{margin:0;font-size:20px;font-weight:600;color:var(--on-surface);letter-spacing:-.01em}.modal-body{padding:24px;overflow-y:auto;overflow-x:hidden;display:grid;gap:20px}.modal-footer{padding:16px 24px 20px;border-top:1px solid rgba(255,255,255,.08);display:flex;justify-content:flex-end;gap:12px;background:#ffffff03;border-radius:0 0 16px 16px}.changelog-modal__body{gap:12px}.changelog-meta{display:flex;flex-direction:column;gap:6px;font-size:13px;color:var(--muted)}.changelog-meta strong{color:var(--on-surface)}.changelog-body{background:var(--bg);border:1px solid var(--border);border-radius:10px;padding:14px;max-height:360px;overflow-y:auto;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,monospace;font-size:13px;line-height:1.5;white-space:pre-wrap;transition:border-color .15s ease}[data-theme=dark] .changelog-body{background:#0f131a}.changelog-body:hover{border-color:#7aa2f74d}.changelog-body::-webkit-scrollbar{width:10px}.changelog-body::-webkit-scrollbar-track{background:#0003;border-radius:6px}.changelog-body::-webkit-scrollbar-thumb{background:#7aa2f74d;border-radius:6px}.changelog-body::-webkit-scrollbar-thumb:hover{background:#7aa2f780}.changelog-links{margin-right:auto;display:flex;align-items:center;gap:8px}.changelog-buttons{display:flex;align-items:center;gap:8px}.tracker-grid{display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(320px,1fr))}.tracker-card.card{background:#ffffff08;border-color:#ffffff14}.profile-mappings-grid{display:flex;flex-direction:column;gap:12px}.profile-mapping-row{display:grid;grid-template-columns:1fr 1fr auto;gap:12px;align-items:end}.profile-mapping-row .field{margin:0}.profile-mapping-row .btn.icon-only{height:38px;width:38px;padding:0;display:flex;align-items:center;justify-content:center}.tracker-card .card-header{display:flex;justify-content:space-between;align-items:center;gap:12px;font-weight:600;color:var(--on-surface)}.tracker-card .card-body{padding-top:0}.tracker-card .field-grid{grid-template-columns:minmax(0,1fr)}.keyboard-hint{display:inline-flex;align-items:center;gap:4px;padding:2px 6px;border-radius:4px;font-size:10px;font-weight:600;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);color:var(--muted);font-family:monospace}.skeleton{background:linear-gradient(90deg,var(--surface) 0%,rgba(122,162,247,.1) 50%,var(--surface) 100%);background-size:200% 100%;animation:skeleton-loading 1.5s ease-in-out infinite;border-radius:6px}@keyframes skeleton-loading{0%{background-position:200% 0}to{background-position:-200% 0}}.skeleton-table{display:flex;flex-direction:column;gap:8px;padding:16px}.skeleton-table-header{display:grid;grid-template-columns:repeat(auto-fit,minmax(100px,1fr));gap:12px;margin-bottom:8px}.skeleton-header{height:24px}.skeleton-table-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(100px,1fr));gap:12px;padding:12px 0;border-bottom:1px solid var(--border)}.skeleton-cell{height:20px}.skeleton-card{padding:20px;background:var(--surface);border-radius:12px;border:1px solid var(--border)}.skeleton-title{height:28px;width:60%;margin-bottom:16px}.skeleton-text{height:16px;margin-bottom:12px}.skeleton-text:last-of-type{width:80%}.skeleton-button{height:40px;width:120px;margin-top:16px;border-radius:8px}.skeleton-text-group{display:flex;flex-direction:column;gap:12px}[data-density=compact] .responsive-table td,[data-density=compact] .responsive-table th{padding:4px 8px;font-size:12px;line-height:1.3}[data-density=compact] .responsive-table{font-size:12px}[data-density=compact] .episodes-table td,[data-density=compact] .episodes-table th{padding:4px 8px;font-size:12px}[data-density=compact] .card{padding:12px;border-radius:8px}[data-density=compact] .card-header{font-size:16px;padding:8px 12px;margin-bottom:8px}[data-density=compact] .card-body{padding:8px 12px}[data-density=compact] .btn{padding:4px 10px;font-size:12px;min-height:28px}[data-density=compact] .btn.small{padding:3px 8px;font-size:11px;min-height:24px}[data-density=compact] .field{margin-bottom:8px}[data-density=compact] .field label{font-size:11px;margin-bottom:2px}[data-density=compact] .field input,[data-density=compact] .field select,[data-density=compact] .field textarea{padding:4px 8px;font-size:12px;min-height:28px}[data-density=compact] .hint{font-size:11px;line-height:1.4}[data-density=compact] .stack{gap:8px}[data-density=compact] .row{gap:6px}[data-density=compact] .table-badge{padding:1px 4px;font-size:10px}[data-density=compact] .table-badge-reason{font-size:9px}[data-density=compact] .container{padding:12px}[data-density=compact] .nav{gap:4px;padding:8px 0}[data-density=compact] .nav button{padding:6px 12px;font-size:12px;gap:6px}[data-density=compact] .pagination{margin-top:8px;padding:8px 0;font-size:12px}[data-density=compact] .season-header{padding:8px 12px;font-size:13px}[data-density=compact] .season-content{padding:8px}[data-density=compact] .series-card{margin-bottom:12px}[data-density=compact] .field-grid{gap:8px}[data-density=compact] h2{font-size:18px;margin-bottom:12px}[data-density=compact] h3{font-size:14px;margin-bottom:8px}[data-density=compact] .modal{padding:16px}[data-density=compact] .modal-header{padding:12px 16px;margin-bottom:12px}[data-density=compact] .modal-body{padding:12px 16px}[data-density=compact] .modal-footer{padding:12px 16px;gap:8px}[data-density=compact] .process-grid{gap:10px;grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}[data-density=compact] .process-section{gap:8px}[data-density=compact] .process-section+.process-section{margin-top:8px}[data-density=compact] .process-section__title{font-size:11px;padding:0 2px;gap:6px}[data-density=compact] .process-section__title:before{width:3px;height:14px}[data-density=compact] .process-card{padding:10px;gap:8px;border-radius:10px}[data-density=compact] .process-card__header{padding-right:14px;gap:6px}[data-density=compact] .process-card__name{font-size:14px}[data-density=compact] .process-card__summary{font-size:11px}[data-density=compact] .process-card__badges{gap:4px;margin-top:2px}[data-density=compact] .process-card__badge{padding:2px 6px;font-size:10px}[data-density=compact] .process-card__list{gap:8px;grid-template-columns:repeat(auto-fit,minmax(140px,1fr))}[data-density=compact] .process-chip{gap:6px;padding:8px 10px;border-radius:8px}[data-density=compact] .process-chip__top{gap:6px}[data-density=compact] .process-chip__name{font-size:12px}[data-density=compact] .process-chip__detail{margin-top:4px;font-size:11px;line-height:1.3}[data-density=compact] .process-chip .btn{padding:3px 8px;font-size:11px}[data-density=compact] .status-indicator{width:10px;height:10px}[data-density=compact] .status-pill{padding:3px 8px;font-size:11px;gap:4px}[data-density=compact] .status-pill__dot{width:5px;height:5px;margin-right:4px}[data-density=compact] .config-card{border-radius:10px}[data-density=compact] .config-card summary{padding:8px 10px;font-size:13px}[data-density=compact] .config-card summary:before{margin-right:6px}[data-density=compact] .config-card>.card-body{gap:8px}[data-density=compact] .config-summary-card{gap:8px;min-height:120px}[data-density=compact] .config-summary-card p{font-size:12px;line-height:1.3}[data-density=compact] .config-layout{gap:10px}[data-density=compact] .config-actions{gap:6px}[data-density=compact] .config-grid{gap:12px;grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}[data-density=compact] .config-arr-groups{gap:16px}[data-density=compact] .config-arr-group{gap:8px}[data-density=compact] .config-arr-group__details{padding:10px 12px;border-radius:10px}[data-density=compact] .config-arr-group__details summary{gap:8px;font-size:13px}[data-density=compact] .config-arr-group__details[open] summary{margin-bottom:10px;padding-bottom:8px}[data-density=compact] .config-arr-group__count{padding:3px 8px;font-size:11px}[data-density=compact] .config-arr-group__title{font-size:12px}[data-density=compact] .config-arr-grid{gap:12px;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));margin-top:2px}[data-density=compact] .config-arr-grid .card-body{gap:8px}[data-density=compact] .config-arr-card{min-height:160px}[data-density=compact] .config-arr-summary{gap:6px}[data-density=compact] .config-arr-summary__item{gap:1px}[data-density=compact] .config-arr-summary__item dt{font-size:10px}[data-density=compact] .config-arr-summary__item dd{font-size:12px}[data-density=compact] .config-arr-actions{gap:6px}[data-density=compact] .config-footer{gap:8px}[data-density=compact] .config-section{padding:6px 10px;border-radius:8px}[data-density=compact] .config-section summary{font-size:13px}[data-density=compact] .config-section summary:before{margin-right:6px}[data-density=compact] .config-section__body{margin-top:8px}[data-density=compact] .field-description,[data-density=compact] .field-hint{font-size:11px;line-height:1.3;margin-top:2px}[data-density=compact] .field-description{margin-top:1px}[data-density=compact] .field-hint{margin-top:3px}[data-density=compact] .field-label{gap:4px;font-size:11px}[data-density=compact] .checkbox-field{gap:4px;font-size:12px}[data-density=compact] .checkbox-field label{gap:6px}[data-density=compact] .checkbox-field__content{gap:4px}[data-density=compact] .checkbox-field__text{gap:4px;line-height:1.3;font-size:12px}[data-density=compact] .secure-field,[data-density=compact] .secure-field__input-group{gap:6px}[data-density=compact] .secure-field__controls{gap:4px}[data-density=compact] .secure-field__controls .btn{padding:4px 8px}[data-density=compact] .help-icon{width:14px;height:14px;font-size:10px}[data-density=compact] .badge{padding:2px 6px;border-radius:5px;font-size:10px}[data-density=compact] .empty-state{padding:24px 20px;border-radius:12px;font-size:13px}[data-density=compact] .tracker-grid{gap:10px;grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}[data-density=compact] .tracker-card .card-header{gap:8px;font-size:13px}[data-density=compact] .tracker-card .card-body{padding-top:0}[data-density=compact] .keyboard-hint{gap:3px;padding:2px 5px;border-radius:3px;font-size:9px}[data-density=compact] .changelog-modal__body{gap:8px}[data-density=compact] .changelog-meta{gap:4px;font-size:12px}[data-density=compact] .changelog-body{padding:10px;max-height:280px;font-size:12px;line-height:1.4}[data-density=compact] .changelog-links,[data-density=compact] .changelog-buttons{gap:6px}[data-density=compact] details{margin:4px 0}[data-density=compact] details summary{padding:3px;border-radius:5px}[data-density=compact] .series-details,[data-density=compact] .season-details{border-radius:5px}[data-density=compact] .series-summary,[data-density=compact] .season-summary{padding:8px 12px;font-size:13px;border-radius:5px 5px 0 0}[data-density=compact] .series-title{font-size:1em}[data-density=compact] .series-instance{font-size:.85em}[data-density=compact] .season-title{font-size:.95em}[data-density=compact] .season-count{font-size:.85em}[data-density=compact] .series-content,[data-density=compact] .season-content{padding:6px}[data-density=compact] pre{padding:10px;max-height:320px;border-radius:10px;font-size:12px}[data-density=compact] .icon{width:1.2em;height:1.2em}[data-density=compact] .icon--small{width:1em;height:1em}[data-density=compact] .icon--large{width:1.4em;height:1.4em}[data-density=compact] svg[width],[data-density=compact] svg[height]{width:1.2em!important;height:1.2em!important}[data-density=compact] .spinner{width:12px;height:12px;border-width:2px}[data-density=compact] .loading{gap:6px;font-size:12px}[data-density=compact] .toasts{gap:8px;right:12px;bottom:12px}[data-density=compact] .toast{padding:8px 12px;border-radius:8px;min-width:220px;font-size:12px}[data-density=compact] .logs-container{height:calc(100vh - 110px)}[data-density=compact] .logs-toolbar{margin-bottom:8px;gap:8px}[data-density=compact] .logs-toolbar .field{margin-bottom:0}[data-density=compact] .logs-toolbar label{font-size:11px;margin-bottom:2px}[data-density=compact] .logs-toolbar .btn{padding:4px 10px;font-size:12px}[data-density=compact] .logs-content{padding:10px;border-radius:8px}[data-density=compact] .logs-content pre{font-size:11px;line-height:1.4}[data-density=compact] .badge{padding:2px 6px;font-size:10px}[data-density=comfortable] .responsive-table td,[data-density=comfortable] .responsive-table th{padding:12px 16px}.view-density-toggle{display:flex;gap:4px;background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:4px}.view-density-toggle button{padding:6px 12px;border:none;background:transparent;color:var(--muted);border-radius:6px;font-size:13px;font-weight:500;cursor:pointer;transition:all .2s ease}.view-density-toggle button:hover{color:var(--on-surface);background:#7aa2f71a}.view-density-toggle button.active{background:var(--primary);color:#fff}[data-density=compact] .css-13cymwt-control,[data-density=compact] .css-t3ipsp-control,[data-density=compact] .css-15evc9m-control,[data-density=compact] .css-hlgwow,[data-density=compact] [class*=-control]{min-height:32px!important;height:32px!important;font-size:12px!important}[data-density=compact] .css-hlgwow,[data-density=compact] [class*=-ValueContainer]{padding:2px 8px!important;font-size:12px!important}[data-density=compact] .css-1dimb5e-singleValue,[data-density=compact] .css-1jxntwc-singleValue,[data-density=compact] [class*=-singleValue]{font-size:12px!important;line-height:1.4!important}[data-density=compact] .css-1u3zge7,[data-density=compact] [class*=-Input]{padding:0!important;margin:0!important}[data-density=compact] .css-1u3zge7 input,[data-density=compact] [class*=-Input] input{font-size:12px!important;padding:0!important;margin:0!important}[data-density=compact] .css-1nmdiq5-menu,[data-density=compact] [class*=-menu]{font-size:12px!important}[data-density=compact] .css-1n6sfyn-MenuList,[data-density=compact] [class*=-MenuList]{padding:4px!important}[data-density=compact] .css-10wo9uf-option,[data-density=compact] [class*=-option]{padding:6px 10px!important;font-size:12px!important}[data-density=compact] .css-1wy0on6,[data-density=compact] [class*=-indicatorsContainer]{padding:0 4px!important}[data-density=compact] .css-1u9des2-indicatorSeparator,[data-density=compact] [class*=-indicatorSeparator]{margin-top:6px!important;margin-bottom:6px!important}[data-density=compact] .css-1hwfws3,[data-density=compact] .css-1xc3v61-indicatorContainer,[data-density=compact] [class*=-indicatorContainer]{padding:4px!important}[data-density=compact] .css-1xc3v61-indicatorContainer svg,[data-density=compact] [class*=-indicatorContainer] svg{width:16px!important;height:16px!important}[data-density=compact] .appbar{padding:6px 12px!important}[data-density=compact] .appbar__inner{padding:0 6px!important;gap:8px!important}[data-density=compact] .appbar__title{gap:6px!important}[data-density=compact] .appbar__title h1{font-size:15px!important;margin:0!important}[data-density=compact] .appbar__version{font-size:9px!important;padding:2px 5px!important;letter-spacing:.3px!important}[data-density=compact] .appbar__status{font-size:10px!important}[data-density=compact] .appbar__update{padding:4px 8px!important;font-size:10px!important;gap:3px!important}[data-density=compact] .appbar__update-indicator{width:5px!important;height:5px!important}[data-density=compact] .appbar__actions{gap:6px!important}[data-density=compact] .appbar__actions button,[data-density=compact] .appbar__actions a.btn{padding:4px 8px!important;font-size:10px!important;gap:4px!important}[data-density=compact] .appbar__actions .icon{width:14px!important;height:14px!important}[data-density=compact] .appbar__actions .badge{padding:2px 6px!important;font-size:9px!important}[data-density=compact] .spinner{width:11px!important;height:11px!important;border-width:2px!important}[data-density=compact] .view-density-toggle{padding:2px!important;gap:2px!important;border-radius:6px!important}[data-density=compact] .view-density-toggle button{padding:4px 8px!important;font-size:10px!important;border-radius:4px!important}.version-comparison{display:flex;align-items:center;gap:12px;padding:12px;background:#7aa2f70d;border:1px solid rgba(122,162,247,.2);border-radius:8px;margin-bottom:12px}.version-item{display:flex;align-items:center;gap:6px}.version-arrow{color:var(--primary);font-size:18px;font-weight:700}.version-badge{padding:4px 10px;border-radius:6px;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,monospace;font-size:12px;font-weight:600}.version-current{background:#9aa3ac26;border:1px solid rgba(154,163,172,.3);color:var(--muted)}.version-latest{background:#7aa2f726;border:1px solid rgba(122,162,247,.3);color:var(--primary)}.update-status{padding:10px 14px;border-radius:8px;font-size:13px;font-weight:500;display:flex;align-items:center;gap:8px}.update-status.text-info{background:#3b82f61a;border:1px solid rgba(59,130,246,.3);color:#3b82f6}.update-status.text-success{background:#22c55e1a;border:1px solid rgba(34,197,94,.3);color:#22c55e}.update-status.text-danger{background:#ef44441a;border:1px solid rgba(239,68,68,.3);color:#ef4444}.changelog-section{display:flex;flex-direction:column;gap:8px}.changelog-section h3{margin:0;font-size:14px;font-weight:600;color:var(--on-surface)}[data-theme=light] .version-comparison{background:#0071e30d;border-color:#0071e326}[data-theme=light] .version-latest{background:#0071e31a;border-color:#0071e340}[data-density=compact] .version-comparison{padding:8px;gap:8px;font-size:12px}[data-density=compact] .version-badge{padding:3px 8px;font-size:11px}[data-density=compact] .version-arrow{font-size:14px}[data-density=compact] .update-status{padding:8px 12px;font-size:12px}[data-density=compact] .changelog-section h3{font-size:13px}.react-lazylog-searchbar{background:var(--surface)!important;border-bottom:1px solid var(--border)!important;padding:8px 12px!important}[data-theme=dark] .react-lazylog-searchbar{background:#0f131a!important}.react-lazylog-searchbar-input{background:var(--bg)!important;color:var(--on-surface)!important;border:1px solid var(--border)!important;border-radius:6px!important;padding:6px 10px!important;font-size:13px!important}[data-theme=dark] .react-lazylog-searchbar-input{background:#12151a!important}.react-lazylog-searchbar-input:focus{outline:none!important;border-color:var(--primary)!important;box-shadow:0 0 0 2px #7aa2f71a!important}[data-theme=light] .react-lazylog-searchbar-input:focus{box-shadow:0 0 0 2px #0071e31a!important}.react-lazylog-searchbar-input::placeholder{color:var(--muted)!important}.react-lazylog-searchbar-matches{color:var(--muted)!important;font-size:12px!important}.react-lazylog-searchbar-filter,.react-lazylog-searchbar-up-arrow,.react-lazylog-searchbar-down-arrow{background:transparent!important;border:1px solid var(--border)!important;border-radius:6px!important;padding:6px!important;cursor:pointer!important;transition:all .15s ease!important}.react-lazylog-searchbar-filter:hover,.react-lazylog-searchbar-up-arrow:hover,.react-lazylog-searchbar-down-arrow:hover{background:#7aa2f71a!important;border-color:var(--primary)!important}[data-theme=light] .react-lazylog-searchbar-filter:hover,[data-theme=light] .react-lazylog-searchbar-up-arrow:hover,[data-theme=light] .react-lazylog-searchbar-down-arrow:hover{background:#0071e314!important}.react-lazylog-searchbar-filter svg,.react-lazylog-searchbar-up-arrow svg,.react-lazylog-searchbar-down-arrow svg{fill:var(--on-surface)!important;width:16px!important;height:16px!important}.react-lazylog-searchbar-filter.inactive,.react-lazylog-searchbar-up-arrow.inactive,.react-lazylog-searchbar-down-arrow.inactive{opacity:.5!important;cursor:not-allowed!important}.react-lazylog-searchbar-matches.inactive{opacity:.5!important}.test-connection-section{margin:16px 0;padding:16px;background:#ffffff05;border:1px solid var(--border-color);border-radius:4px}.field-group-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.field-hint{font-size:.85em;color:var(--text-secondary);font-style:italic}.alert{padding:12px 16px;border-radius:4px;margin-top:12px;line-height:1.5}.alert.success{background:#4caf501a;border:1px solid rgba(76,175,80,.3);color:#66bb6a}[data-theme=light] .alert.success{background:#4caf5014;border-color:#4caf5066;color:#388e3c}.alert.error{background:#f443361a;border:1px solid rgba(244,67,54,.3);color:#ef5350}[data-theme=light] .alert.error{background:#f4433614;border-color:#f4433666;color:#d32f2f}.alert.info{background:#2196f31a;border:1px solid rgba(33,150,243,.3);color:#42a5f5}[data-theme=light] .alert.info{background:#2196f314;border-color:#2196f366;color:#1976d2}.alert.warning{background:#ffc1071a;border:1px solid rgba(255,193,7,.3);color:#ffb74d}[data-theme=light] .alert.warning{background:#ffc10714;border-color:#ffc10766;color:#f57c00}.alert-details{font-size:.9em;margin-top:6px;opacity:.9}.alert strong{font-weight:600}
1
+ :root,[data-theme=dark]{--bg: #101114;--surface: #1b1e22;--on-surface: #eaeef2;--muted: #9aa3ac;--primary: #7aa2f7;--primary-variant: #3b82f6;--success: #22c55e;--danger: #ef4444;--warning: #facc15;--border: #2a2f36;--elev: 8px;--layout-max-width: 1200px}[data-theme=light]{--bg: #f5f5f7;--surface: #ffffff;--on-surface: #1d1d1f;--muted: #6e6e73;--primary: #0071e3;--primary-variant: #0077ed;--success: #34c759;--danger: #ff3b30;--warning: #ff9500;--border: #d2d2d7;--elev: 4px;--layout-max-width: 1200px}*{box-sizing:border-box}html{scroll-behavior:smooth}html,body{height:100%}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol;margin:0;background:var(--bg);color:var(--on-surface);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;font-feature-settings:"kern" 1;font-kerning:normal}*::-webkit-scrollbar{width:12px;height:12px}*::-webkit-scrollbar-track{background:#0003;border-radius:6px}*::-webkit-scrollbar-thumb{background:#7aa2f74d;border-radius:6px;border:2px solid transparent;background-clip:padding-box}*::-webkit-scrollbar-thumb:hover{background:#7aa2f780;background-clip:padding-box}.appbar{position:sticky;top:0;z-index:100;display:flex;justify-content:center;padding:16px 20px;background:var(--surface);border-bottom:1px solid var(--border);box-shadow:0 2px 16px #0000000f;backdrop-filter:blur(12px) saturate(180%);-webkit-backdrop-filter:blur(12px) saturate(180%)}[data-theme=light] .appbar{background:#fffc}[data-theme=dark] .appbar{background:linear-gradient(180deg,#0b0c0ff2,#0d0e11f2);box-shadow:0 4px 16px #0006}.appbar__inner{width:100%;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:0 16px;flex-wrap:wrap}.appbar__title{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.appbar h1{margin:0;font-size:20px;font-weight:700;letter-spacing:-.02em;background:linear-gradient(135deg,var(--on-surface) 0%,var(--primary) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.appbar__logo{width:42px;height:42px;object-fit:contain;image-rendering:auto;flex-shrink:0;user-select:none;-webkit-user-select:none;-moz-user-select:none;pointer-events:none}[data-theme=light] .appbar h1{background:linear-gradient(135deg,var(--on-surface) 0%,var(--primary) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.appbar__version{font-size:12px;color:var(--muted);letter-spacing:.4px}.appbar__status{font-size:12px}.appbar__actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.appbar__update{display:inline-flex;align-items:center;gap:6px}.appbar__update-indicator{width:8px;height:8px;border-radius:50%;background:var(--danger);display:inline-block;animation:pulse 1s ease-in-out infinite;box-shadow:0 0 8px #ef444499}.container{padding:20px;display:grid;grid-template-columns:1fr;gap:20px;animation:fadeInUp .3s ease}.toolbar{display:flex;gap:8px;align-items:center;flex-wrap:wrap;color:var(--muted)}.nav{display:flex;gap:8px;flex-wrap:wrap;width:100%}.nav button{color:var(--muted);background:transparent;border:1px solid var(--border);padding:10px 14px;display:inline-flex;align-items:center;gap:8px;border-radius:8px;cursor:pointer;font-weight:500;transition:all .15s ease;position:relative;overflow:hidden}.nav button:before{content:"";position:absolute;inset:0;background:linear-gradient(135deg,rgba(122,162,247,.1),transparent);opacity:0;transition:opacity .15s ease}.nav button .icon{width:1.4em;height:1.4em;transition:transform .15s ease}.nav button:hover .icon{transform:scale(1.1)}.nav button.active{color:var(--primary);border-color:var(--primary);background:#7aa2f71f;box-shadow:0 0 0 2px #7aa2f71a,0 2px 8px #7aa2f733;font-weight:600}[data-theme=light] .nav button.active{box-shadow:0 0 0 2px #0071e31a,0 2px 8px #0071e333}.nav button:hover:not(.active){color:var(--on-surface);border-color:#7aa2f766;background:#7aa2f70f;transform:translateY(-1px)}.nav button:hover:before{opacity:1}.card{background:var(--surface);border:1px solid var(--border);border-radius:14px;box-shadow:0 2px 8px #00000014,0 1px 2px #0000000f;overflow:hidden;transition:transform .15s ease,box-shadow .15s ease,border-color .15s ease;position:relative}[data-theme=dark] .card{box-shadow:0 var(--elev) 24px #00000040,0 2px 4px #0000004d}.card:before{content:"";position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,rgba(122,162,247,.1),transparent);opacity:0;transition:opacity .15s ease}.card:hover{transform:translateY(-2px);box-shadow:0 16px 40px #0000001f,0 4px 8px #00000014;border-color:#7aa2f74d}[data-theme=dark] .card:hover{box-shadow:0 12px 32px #00000059,0 4px 8px #0006}.card:hover:before{opacity:1}.card .card-header{padding:16px 20px;border-bottom:1px solid var(--border);font-weight:700;font-size:15px;letter-spacing:.01em;color:var(--on-surface);background:linear-gradient(180deg,#7aa2f70a,#7aa2f703);position:relative}[data-theme=light] .card .card-header{background:linear-gradient(180deg,rgba(0,113,227,.03) 0%,transparent 100%)}.card .card-header:after{content:"";position:absolute;bottom:0;left:20px;right:20px;height:1px;background:linear-gradient(90deg,transparent,var(--primary),transparent);opacity:.15}.card .card-body{padding:12px 14px}.btn{appearance:none;border:1px solid var(--border);background:var(--surface);color:var(--on-surface);padding:8px 14px;border-radius:8px;cursor:pointer;transition:all .15s ease;display:inline-flex;align-items:center;gap:6px;font-weight:500;position:relative;overflow:hidden}[data-theme=dark] .btn{background:#0f131a}.btn:before{content:"";position:absolute;inset:0;background:linear-gradient(135deg,#ffffff1a,#fff0);opacity:0;transition:opacity .15s ease}.btn:hover:not(:disabled):before{opacity:1}.btn.primary{border-color:var(--primary-variant);background:linear-gradient(135deg,#7aa2f72e,#7aa2f71f);color:var(--primary);font-weight:600;box-shadow:0 2px 8px #7aa2f726}[data-theme=light] .btn.primary{background:linear-gradient(135deg,#0071e31f,#0071e314);box-shadow:0 2px 8px #0071e326}.btn.danger{border-color:#ef444466;color:var(--danger);background:#ef44441f}.btn.danger:hover:not(:disabled){background:var(--danger);color:#0a0a0a;border-color:var(--danger);box-shadow:0 4px 12px #ef44444d}.btn.primary:hover:not(:disabled){background:var(--primary);color:#0a0a0a;border-color:var(--primary);box-shadow:0 4px 12px #7aa2f74d}.btn.ghost{background:transparent}.btn.ghost:hover:not(:disabled){background:#ffffff0d;border-color:#7aa2f74d}.btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 3px 10px #0006}.btn:active:not(:disabled){transform:translateY(0)}.btn:focus-visible{outline:none;box-shadow:0 0 0 3px #7aa2f74d}[data-theme=light] .btn:focus-visible{box-shadow:0 0 0 3px #0071e34d}.nav button:focus-visible{outline:none;box-shadow:0 0 0 3px #7aa2f740}[data-theme=light] .nav button:focus-visible{box-shadow:0 0 0 3px #0071e340}.btn:disabled{opacity:.5;cursor:not-allowed}.btn.small{padding:6px 10px;font-size:12px}.btn.outline{background:transparent;border-color:var(--border)}.btn.outline:hover:not(:disabled){background:#ffffff0d;border-color:var(--primary-variant)}.btn.active{background:var(--primary);color:#0a0a0a;border-color:var(--primary)}.field{display:flex;flex-direction:column;gap:6px}.field--full-width{grid-column:1 / -1}.sonarr-hierarchical-view{display:flex;flex-direction:column;gap:8px}.series-details,.season-details{border:1px solid var(--border);border-radius:6px;background:var(--card-bg)}.series-summary,.season-summary{padding:12px 16px;cursor:pointer;-webkit-user-select:none;user-select:none;font-weight:600;color:var(--text);background:var(--card-header-bg);border-radius:6px 6px 0 0;display:flex;align-items:center;justify-content:space-between;gap:8px}.series-summary:hover,.season-summary:hover{background:var(--hover-bg)}.series-title{font-size:1.1em;flex:1}.series-instance,.series-count,.series-quality,.artist-quality{font-size:.9em;color:var(--muted);font-weight:400;white-space:nowrap}.season-title{font-size:1em}.season-count{font-size:.9em;color:var(--muted);font-weight:400}.series-content,.season-content{padding:8px}.episodes-table-wrapper{overflow-x:auto}.episodes-table{width:100%;border-collapse:collapse;font-size:.9em}.episodes-table th,.episodes-table td{padding:8px 12px;text-align:left;border-bottom:1px solid var(--border)}.episodes-table th{background:var(--table-header-bg);font-weight:600;color:var(--text);position:sticky;top:0}.episodes-table tr:hover{background:var(--hover-bg)}.lidarr-hierarchical-view{display:flex;flex-direction:column;gap:8px}.artist-details{border:1px solid var(--border);border-radius:6px;background:var(--card-bg)}.artist-summary{padding:12px 16px;cursor:pointer;-webkit-user-select:none;user-select:none;font-weight:600;color:var(--text);background:var(--card-header-bg);border-radius:6px 6px 0 0;display:flex;align-items:center;justify-content:space-between;gap:8px}.artist-summary:hover{background:var(--hover-bg)}.artist-title{font-size:1.1em;flex:1}.artist-instance,.artist-count{font-size:.9em;color:var(--muted);font-weight:400}.artist-content{padding:8px}.albums-table-wrapper{overflow-x:auto}.albums-table{width:100%;border-collapse:collapse;font-size:.9em}.albums-table th,.albums-table td{padding:8px 12px;text-align:left;border-bottom:1px solid var(--border)}.albums-table th{background:var(--table-header-bg);font-weight:600;color:var(--text);position:sticky;top:0}.albums-table tr:hover{background:var(--hover-bg)}.album-details{border:1px solid var(--border);border-radius:4px;background:var(--surface);margin-bottom:8px}.album-summary{padding:10px 14px;cursor:pointer;-webkit-user-select:none;user-select:none;font-weight:500;color:var(--text);background:var(--card-header-bg);border-radius:4px 4px 0 0;display:flex;align-items:center;gap:12px}.album-summary:hover{background:var(--hover-bg)}.album-title{font-size:1em;flex:1}.album-date,.album-track-count{font-size:.85em;color:var(--muted);font-weight:400}.album-status{font-size:1.1em;font-weight:700}.album-status.has-file{color:var(--success)}.album-status.missing{color:var(--danger)}.album-content{padding:8px}.album-info{padding:8px 12px;font-size:.9em}.album-info p{margin:4px 0}.tracks-table-wrapper{overflow-x:auto}.tracks-table{width:100%;border-collapse:collapse;font-size:.85em;table-layout:fixed}.tracks-table th,.tracks-table td{padding:6px 10px;text-align:left;border-bottom:1px solid var(--border);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tracks-table th:nth-child(1),.tracks-table td:nth-child(1){width:70px}.tracks-table th:nth-child(2),.tracks-table td:nth-child(2){width:auto;white-space:normal}.tracks-table th:nth-child(3),.tracks-table td:nth-child(3){width:100px}.tracks-table th:nth-child(4),.tracks-table td:nth-child(4){width:110px;text-align:center}.tracks-table th:nth-child(5),.tracks-table td:nth-child(5){width:180px}.tracks-table th{background:var(--table-header-bg);font-weight:600;color:var(--text);font-size:.9em}.tracks-table tr.track-available{opacity:1}.tracks-table tr.track-missing{opacity:.6}.tracks-table tr:hover{background:var(--hover-bg)}.track-status{display:inline-block;font-weight:700;font-size:1.1em}.track-status.available{color:var(--success)}.track-status.missing{color:var(--danger)}.table-badge{display:inline-block;padding:3px 8px;border-radius:6px;font-size:.8em;font-weight:600;border:1px solid transparent;transition:all .15s ease}.table-badge:hover{transform:scale(1.05)}.table-badge.monitored{background:#22c55e26;border-color:#22c55e4d;color:var(--success)}.table-badge.unmonitored{background:#facc1526;border-color:#facc154d;color:var(--warning)}.table-badge.has-file{background:#22c55e26;border-color:#22c55e4d;color:var(--success)}.table-badge.missing{background:#ef444426;border-color:#ef44444d;color:var(--danger)}.table-badge-reason{background:#facc1526;border-color:#facc154d;color:var(--warning);font-family:monospace;font-size:11px;font-weight:600}[data-theme=light] .table-badge-reason{background:#ff95001a;border-color:#ff95004d}.field label{color:var(--muted);font-size:12px}.field input,.field select,.field textarea{background:var(--surface);color:var(--on-surface);border:1px solid var(--border);border-radius:8px;padding:9px 12px;transition:all .15s ease}[data-theme=dark] .field input,[data-theme=dark] .field select,[data-theme=dark] .field textarea{background:#0f131a}.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 4px #7aa2f71f,0 2px 8px #7aa2f726;background:var(--bg);transform:translateY(-1px)}[data-theme=light] .field input:focus,[data-theme=light] .field select:focus,[data-theme=light] .field textarea:focus{box-shadow:0 0 0 4px #0071e31a,0 2px 8px #0071e326}[data-theme=dark] .field input:focus,[data-theme=dark] .field select:focus,[data-theme=dark] .field textarea:focus{background:#12151a;box-shadow:0 0 0 4px #7aa2f71f,0 2px 8px #7aa2f733}.field input:hover:not(:focus),.field select:hover:not(:focus),.field textarea:hover:not(:focus){border-color:#7aa2f74d}.field input[type=checkbox]{width:auto}.field.mobile-instance-select{display:none}.field-description,.field-hint{display:block;margin:0;font-size:12px;line-height:1.35;color:var(--muted)}.field-description{margin-top:2px}.field-hint{color:var(--primary);font-weight:500;margin-top:4px}.row{display:flex;flex-wrap:wrap;gap:12px}.row .col{flex:1 1 260px}table{border-collapse:collapse;width:100%;border:1px solid var(--border);border-radius:12px;overflow:hidden;box-shadow:0 2px 8px #0000000a}[data-theme=dark] table{box-shadow:0 2px 8px #0003}th,td{border-bottom:1px solid var(--border);padding:10px 12px;font-size:13px;text-align:left}th{background:var(--surface);color:var(--muted);font-weight:600;text-transform:uppercase;font-size:11px;letter-spacing:.05em;border-bottom:2px solid var(--border)}[data-theme=dark] th{background:#12151a}tbody tr{transition:background-color .1s ease,transform .08s ease;border-left:3px solid transparent}tbody tr:hover{background:#7aa2f70d;cursor:default;border-left-color:var(--primary)}[data-theme=light] tbody tr:hover{background:#0071e30a}[data-theme=dark] tbody tr:hover{background:#7aa2f70f}th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none}.sort-arrow{font-size:10px;margin-left:4px;color:var(--muted)}details{margin:6px 0}details summary{cursor:pointer;transition:all .15s ease;padding:4px;border-radius:6px}details summary:hover{background:#7aa2f70d;color:var(--primary)}.ok{color:var(--success)}.bad{color:var(--danger)}.hint{color:var(--muted);font-size:12px}.spacer{flex:1}pre{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:14px;color:var(--on-surface);max-height:420px;overflow:auto;transition:border-color .15s ease}[data-theme=dark] pre{background:#0f131a}pre:hover{border-color:#7aa2f74d}pre::-webkit-scrollbar{width:10px;height:10px}pre::-webkit-scrollbar-track{background:#0003;border-radius:6px}pre::-webkit-scrollbar-thumb{background:#7aa2f74d;border-radius:6px}pre::-webkit-scrollbar-thumb:hover{background:#7aa2f780}.loading{color:var(--muted);display:inline-flex;align-items:center;gap:8px;font-weight:500;animation:pulse 1.5s ease-in-out infinite}.spinner{width:14px;height:14px;border:2.5px solid rgba(122,162,247,.15);border-top-color:var(--primary);border-radius:50%;display:inline-block;animation:spin .6s linear infinite;box-shadow:0 0 8px #7aa2f733}[data-theme=light] .spinner{border:2.5px solid rgba(0,113,227,.15);border-top-color:var(--primary);box-shadow:0 0 8px #0071e333}@keyframes spin{to{transform:rotate(360deg)}}.toasts{position:fixed;right:16px;bottom:16px;display:grid;gap:10px;z-index:9999}.toast{background:var(--surface);color:var(--on-surface);border:1px solid var(--border);border-left:4px solid var(--primary);padding:12px 16px;border-radius:10px;box-shadow:0 12px 32px #0003;min-width:260px;transition:all .2s ease;animation:slideIn .2s ease}[data-theme=dark] .toast{background:#12151a;border:1px solid rgba(255,255,255,.1);box-shadow:0 12px 32px #00000080}.toast:hover{transform:translate(-4px)}[data-theme=dark] .toast:hover{box-shadow:0 16px 40px #0009}[data-theme=light] .toast:hover{box-shadow:0 16px 40px #00000040}.toast.success{border-left-color:var(--success)}.toast.warning{border-left-color:var(--warning)}.toast.error{border-left-color:var(--danger)}[data-theme=dark] .toast.success{background:linear-gradient(90deg,#22c55e14,#12151a 20%)}[data-theme=dark] .toast.warning{background:linear-gradient(90deg,#facc1514,#12151a 20%)}[data-theme=dark] .toast.error{background:linear-gradient(90deg,#ef444414,#12151a 20%)}[data-theme=light] .toast.success{background:linear-gradient(90deg,rgba(52,199,89,.08) 0%,var(--surface) 20%)}[data-theme=light] .toast.warning{background:linear-gradient(90deg,rgba(255,149,0,.08) 0%,var(--surface) 20%)}[data-theme=light] .toast.error{background:linear-gradient(90deg,rgba(255,59,48,.08) 0%,var(--surface) 20%)}.status-pill{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:999px;font-size:12px;font-weight:500;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);transition:all .15s ease}.status-pill:hover{background:#ffffff14;border-color:#ffffff26;transform:scale(1.02)}.stack{display:grid;gap:12px}.tabs{display:flex;gap:8px;flex-wrap:wrap}.tab-panel{margin-top:12px}.sidebar{display:grid;gap:8px;min-width:220px;align-content:start;align-items:start}.sidebar .btn{width:100%;text-align:left}.split{display:flex;gap:16px}.split .pane{flex:1}.split .pane.sidebar{flex:0 0 260px}.pagination{display:flex;justify-content:space-between;align-items:center;margin-top:16px;padding:12px 0;gap:12px;flex-wrap:wrap}.pagination-info{font-size:14px;color:var(--muted)}.pagination .inline{display:flex;gap:4px;align-items:center}.pagination .btn{min-width:70px;padding:8px 12px}.pagination-jump{width:80px;padding:8px 12px;border:1px solid var(--border);border-radius:8px;background:var(--surface);color:var(--on-surface);font-size:14px;text-align:center;transition:all .2s ease}.pagination-jump:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px #7aa2f71a}.pagination-jump:disabled{opacity:.5;cursor:not-allowed}.pagination-jump::-webkit-inner-spin-button,.pagination-jump::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.pagination-jump[type=number]{-moz-appearance:textfield}.badge{display:inline-block;padding:3px 8px;border-radius:6px;font-size:11px;font-weight:600;background:#7aa2f726;border:1px solid rgba(122,162,247,.25);color:var(--primary);transition:all .15s ease}.badge:hover{background:#7aa2f740;border-color:#7aa2f766;transform:scale(1.05)}.icon{display:inline-block;width:1.4em;height:1.4em;vertical-align:middle;object-fit:contain}.icon--small{width:1.2em;height:1.2em}.icon--large{width:1.6em;height:1.6em}svg{max-width:2em;max-height:2em}svg[width],svg[height]{width:1.4em!important;height:1.4em!important}.btn .icon{margin:0;transition:transform .2s ease}.icon-rotate{transform:scaleX(-1);transform-origin:center}.btn:hover .icon{transform:translateY(-1px)}.responsive-table{width:100%;border-collapse:collapse;transition:box-shadow .2s ease}.responsive-table tbody tr{animation:fadeInUp .2s ease}.responsive-table tbody tr:nth-child(2n){background:#ffffff05}.responsive-table td,.responsive-table th{padding:8px 12px;text-align:left}.table-wrapper{overflow-x:auto;border-radius:12px}.table-wrapper::-webkit-scrollbar{height:8px}.table-wrapper::-webkit-scrollbar-thumb{background:#ffffff1f;border-radius:999px}.animate-fade-in{animation:fadeInUp .2s ease}.table-badge{display:inline-flex;align-items:center;gap:4px}.inline{display:inline-flex;align-items:center;gap:6px}.text-info{color:var(--primary)}.text-success{color:var(--success)}.text-danger{color:var(--danger)}@keyframes fadeInUp{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes slideIn{0%{opacity:0;transform:translate(-10px)}to{opacity:1;transform:translate(0)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.7}}@keyframes glow{0%,to{box-shadow:0 0 8px #7aa2f74d}50%{box-shadow:0 0 16px #7aa2f780}}@media(max-width:900px){.split{flex-direction:column}.split .pane.sidebar{display:none}.field.mobile-instance-select{display:grid;margin-bottom:12px}}@media(max-width:640px){.appbar{padding:12px 16px}.appbar__inner{flex-direction:column;align-items:stretch;gap:12px;padding:0}.appbar__actions{width:100%;justify-content:flex-start}.appbar__title{gap:8px;justify-content:center}.appbar__logo{width:32px;height:32px}.nav{gap:6px}.nav button{flex:1 1 calc(50% - 6px);justify-content:center}}@media(max-width:420px){.appbar{padding:10px 12px}.appbar__logo{width:28px;height:28px}.appbar h1{font-size:18px}.appbar__version{font-size:10px}.nav button{flex-basis:100%}}@media(-webkit-min-device-pixel-ratio:2),(min-resolution:192dpi){.appbar__logo{image-rendering:auto}}@media(max-width:720px){.responsive-table thead{display:none}.responsive-table,.responsive-table tbody,.responsive-table tr,.responsive-table td{display:block;width:100%}.responsive-table tbody tr{background:#12151ab3;border:1px solid rgba(255,255,255,.06);border-radius:8px;padding:8px;margin-bottom:8px;box-shadow:0 4px 12px #0003;user-select:none;-webkit-user-select:none;-moz-user-select:none}.responsive-table td{padding:4px 0;display:flex;justify-content:space-between;align-items:center;gap:8px;border:none;font-size:14px;line-height:1.4}.responsive-table td:before{content:attr(data-label);font-weight:600;font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.05em;flex-shrink:0;min-width:80px}.table-wrapper{overflow:visible}.episodes-table thead{display:none}.episodes-table,.episodes-table tbody,.episodes-table tr,.episodes-table td{display:block;width:100%}.episodes-table tbody tr{background:#12151ab3;border:1px solid rgba(255,255,255,.06);border-radius:8px;padding:8px;margin-bottom:8px;box-shadow:0 4px 12px #0003}.episodes-table td{padding:4px 0;display:flex;justify-content:space-between;align-items:center;gap:8px;border:none;font-size:14px;line-height:1.4}.episodes-table td:before{content:attr(data-label);font-weight:600;font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.05em;flex-shrink:0;min-width:80px}.episodes-table-wrapper{overflow:visible}.tracks-table thead{display:none}.tracks-table,.tracks-table tbody,.tracks-table tr,.tracks-table td{display:block;width:100%}.tracks-table tbody tr{background:#12151ab3;border:1px solid rgba(255,255,255,.06);border-radius:8px;padding:8px;margin-bottom:8px;box-shadow:0 4px 12px #0003}.tracks-table td{padding:4px 0;display:flex;justify-content:space-between;align-items:center;gap:8px;border:none;font-size:14px;line-height:1.4}.tracks-table td:before{content:attr(data-label);font-weight:600;font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.05em;flex-shrink:0;min-width:80px}.tracks-table-wrapper{overflow:visible}}.process-grid{display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}.process-section{display:grid;gap:12px}.process-section+.process-section{margin-top:12px}.process-section__title{font-size:12px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--primary);padding:0 4px;display:inline-flex;align-items:center;gap:10px}.process-section__title:before{content:"";width:4px;height:18px;background:linear-gradient(180deg,var(--primary),var(--primary-variant));border-radius:3px;box-shadow:0 0 8px #7aa2f74d}.process-card{border:1px solid var(--border);border-radius:14px;background:var(--surface);padding:18px;display:flex;flex-direction:column;gap:14px;transition:all .15s cubic-bezier(.4,0,.2,1);position:relative;overflow:hidden;box-shadow:0 2px 8px #0000000f}[data-theme=dark] .process-card{background:#ffffff08;box-shadow:0 2px 8px #0003}.process-card:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--primary),var(--primary-variant));opacity:0;transition:opacity .15s ease}.process-card:after{content:"";position:absolute;inset:0;background:radial-gradient(circle at top right,rgba(122,162,247,.05),transparent 60%);opacity:0;transition:opacity .15s ease;pointer-events:none}.process-card:hover{border-color:#7aa2f766;transform:translateY(-3px);box-shadow:0 12px 32px #0000001f}[data-theme=dark] .process-card:hover{box-shadow:0 8px 24px #00000059}.process-card:hover:before,.process-card:hover:after{opacity:1}.process-card__header{position:relative;display:flex;justify-content:space-between;align-items:flex-start;gap:8px;flex-wrap:wrap;padding-right:18px}.process-card__name{font-weight:700;font-size:17px;letter-spacing:-.01em;line-height:1.3}.process-card__title{display:grid;gap:4px;min-width:0}.process-card__summary{font-size:12px;color:var(--muted)}.process-card__badges{display:flex;flex-wrap:wrap;gap:6px;margin-top:4px}.process-card__badge{padding:3px 10px;border-radius:999px;font-size:11px;font-weight:600;background:#7aa2f726;border:1px solid rgba(122,162,247,.3);color:var(--primary);transition:all .15s ease}.process-card__badge:hover{background:#7aa2f740;border-color:#7aa2f780;transform:scale(1.05)}.status-indicator{position:absolute;top:0;right:0;width:12px;height:12px;border-radius:50%;background:#99a2ad99;box-shadow:0 0 6px #00000059;transition:all .2s ease}.status-indicator--ok{background:var(--success);box-shadow:0 0 12px #22c55e80;animation:pulse 1.5s ease-in-out infinite}.status-indicator--bad{background:var(--danger);box-shadow:0 0 12px #ef444480;animation:pulse 1s ease-in-out infinite}.process-card__footer{display:flex;justify-content:flex-end;margin-top:auto}.process-card__list{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.process-chip{display:grid;gap:10px;border:1px solid var(--border);border-radius:10px;padding:12px 14px;background:var(--bg);transition:all .15s ease}[data-theme=dark] .process-chip{border:1px solid rgba(255,255,255,.08);background:#0f131a99}.process-chip:hover{border-color:#7aa2f74d;transform:translate(2px)}[data-theme=dark] .process-chip:hover{background:#0f131acc;border-color:#7aa2f733}[data-theme=light] .process-chip:hover{background:#00000005}.process-chip__top{display:flex;justify-content:space-between;align-items:center;gap:10px}.process-chip__name{font-weight:600;font-size:14px}.process-chip__actions{display:flex;justify-content:flex-end}.process-chip .btn{padding:6px 10px}.process-chip__detail{margin-top:6px;font-size:12px;color:var(--muted);line-height:1.35}.process-chip__detail-time{font-style:italic;color:var(--muted)}.status-pill__dot{width:6px;height:6px;border-radius:50%;background:currentColor;display:inline-block;margin-right:6px}.status-pill--ok{border-color:#22c55e66;background:linear-gradient(135deg,#22c55e26,#22c55e14);color:var(--success);box-shadow:0 2px 8px #22c55e26}.status-pill--bad{border-color:#ef444466;background:linear-gradient(135deg,#ef444426,#ef444414);color:var(--danger);box-shadow:0 2px 8px #ef444426}[data-theme=light] .status-pill--ok{background:linear-gradient(135deg,#34c7591f,#34c7590f)}[data-theme=light] .status-pill--bad{background:linear-gradient(135deg,#ff3b301f,#ff3b300f)}.empty-state{border:2px dashed rgba(122,162,247,.25);border-radius:16px;padding:40px 32px;text-align:center;color:var(--muted);background:linear-gradient(135deg,#7aa2f708,#7aa2f703);transition:all .2s ease;position:relative;overflow:hidden}.empty-state:before{content:"";position:absolute;top:50%;left:50%;width:100px;height:100px;background:radial-gradient(circle,rgba(122,162,247,.08),transparent);transform:translate(-50%,-50%);border-radius:50%;opacity:0;transition:opacity .2s ease}.empty-state:hover{border-color:#7aa2f766;background:linear-gradient(135deg,#7aa2f70d,#7aa2f705)}.empty-state:hover:before{opacity:1}[data-theme=light] .empty-state{border-color:#0071e340;background:linear-gradient(135deg,rgba(0,113,227,.02) 0%,transparent 100%)}[data-theme=light] .empty-state:before{background:radial-gradient(circle,rgba(0,113,227,.06),transparent)}[data-theme=light] .empty-state:hover{border-color:#0071e366;background:linear-gradient(135deg,#0071e30a,#0071e303)}.config-card{border:1px solid var(--border);border-radius:12px;background:var(--surface)}.config-card summary{cursor:pointer;font-weight:600;color:var(--muted);list-style:none;outline:none;padding:12px 14px;border-bottom:1px solid var(--border)}.config-card summary::-webkit-details-marker{display:none}.config-card summary:before{content:">";display:inline-block;margin-right:8px;transition:transform .2s ease}.config-card[open] summary:before{transform:rotate(0)}.config-card:not([open]) summary:before{transform:rotate(-90deg)}.config-card>.card-body{display:grid;gap:12px}.config-summary-card{display:flex;flex-direction:column;gap:12px;min-height:160px;transition:transform .2s ease,box-shadow .2s ease}.config-summary-card:hover{transform:translateY(-2px);box-shadow:0 8px 20px #0000004d}.config-summary-card p{margin:0;color:var(--muted);line-height:1.4}.config-layout{display:grid;gap:16px}.config-actions{display:flex;flex-wrap:wrap;gap:8px}.config-grid{display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(320px,1fr))}.config-arr-groups{display:flex;flex-direction:column;gap:24px}.config-arr-group{display:flex;flex-direction:column;gap:12px}.config-arr-group__details{border:1px solid rgba(255,255,255,.08);border-radius:12px;padding:16px 18px;background:#ffffff08;box-shadow:0 2px 8px #0003}.config-arr-group__details summary{display:flex;justify-content:space-between;align-items:center;gap:12px;cursor:pointer;font-weight:600;font-size:15px;color:var(--on-surface);list-style:none;transition:color .2s ease}.config-arr-group__details summary:hover{color:var(--primary)}.config-arr-group__details summary::-webkit-details-marker{display:none}.config-arr-group__details[open] summary{margin-bottom:16px;padding-bottom:12px;border-bottom:1px solid rgba(255,255,255,.06)}.config-arr-group__count{display:inline-flex;align-items:center;justify-content:center;padding:4px 10px;border-radius:999px;font-size:12px;font-weight:600;background:#7aa2f726;border:1px solid rgba(122,162,247,.3);color:var(--primary)}.config-arr-group__title{margin:0;font-size:14px;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.08em}.config-arr-grid{display:grid;gap:18px;grid-template-columns:repeat(auto-fit,minmax(360px,1fr));margin-top:4px}.config-arr-grid .card-body{display:flex;flex-direction:column;gap:12px}.config-arr-card{min-height:220px;transition:transform .2s ease,box-shadow .2s ease}.config-arr-card:hover{transform:translateY(-2px);box-shadow:0 8px 20px #0000004d}.config-arr-summary{display:grid;gap:8px;margin:0}.config-arr-summary__item{display:grid;gap:2px}.config-arr-summary__item dt{margin:0;font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}.config-arr-summary__item dd{margin:0;color:var(--on-surface);font-weight:500;font-size:13px}.config-arr-summary__uri{word-break:break-all}.config-arr-actions{display:flex;justify-content:flex-end;gap:8px;flex-wrap:wrap}.config-footer{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}.field-grid{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}.modal .field-grid{grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}@media(max-width:720px){.modal .field-grid{grid-template-columns:minmax(0,1fr)}}.field-label{display:flex;align-items:center;gap:6px;font-weight:600;color:var(--muted)}.checkbox-field{display:flex;flex-direction:column;gap:6px;font-size:13px;color:var(--muted)}.checkbox-field label{display:inline-flex;align-items:center;gap:8px;cursor:pointer;font-weight:600;color:var(--on-surface)}.checkbox-field input{margin:0;flex-shrink:0;cursor:pointer}.checkbox-field__content{display:flex;flex-direction:column;gap:6px;max-width:100%}.checkbox-field__text{display:inline-flex;align-items:center;gap:6px;font-weight:600;color:var(--muted);line-height:1.4}.secure-field{gap:8px}.secure-field__input-group{display:flex;align-items:center;gap:8px}.secure-field__input-group input{flex:1}.secure-field__controls{display:flex;gap:6px}.secure-field__controls .btn{padding:6px 10px}.help-icon{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;font-size:11px;border-radius:50%;border:1px solid rgba(255,255,255,.25);background:#ffffff14;color:var(--muted);cursor:help;transition:border-color .2s ease,color .2s ease}.help-icon:hover{border-color:var(--primary);color:var(--on-surface)}.config-section{border:1px solid rgba(255,255,255,.05);border-radius:10px;padding:8px 12px;background:#ffffff05}.config-section summary{cursor:pointer;font-weight:600;color:var(--muted);list-style:none;outline:none}.config-section summary::-webkit-details-marker{display:none}.config-section summary:before{content:">";display:inline-block;margin-right:8px;transition:transform .2s ease}.config-section[open] summary:before{transform:rotate(0)}.config-section:not([open]) summary:before{transform:rotate(-90deg)}.config-section__body{margin-top:12px}.modal-backdrop{position:fixed;inset:0;background:#00000080;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:flex-start;justify-content:center;padding:24px;overflow-y:auto;overflow-x:hidden;z-index:120;animation:fadeIn .2s ease}[data-theme=dark] .modal-backdrop{background:#000000bf}[data-theme=light] .modal-backdrop{background:#0000004d}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modal{background:var(--surface);border:1px solid var(--border);border-radius:20px;width:min(840px,calc(100% - 48px));max-height:min(92vh,calc(100vh - 80px));display:flex;flex-direction:column;margin:40px auto;box-shadow:0 24px 64px #0003,0 8px 16px #0000001a;animation:modalSlideIn .2s cubic-bezier(.4,0,.2,1);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px)}[data-theme=dark] .modal{background:#1b1e22f2;border:1px solid rgba(255,255,255,.1);box-shadow:0 20px 60px #0009,0 0 0 1px #ffffff0d}[data-theme=light] .modal{background:#fffffff2}@keyframes modalSlideIn{0%{opacity:0;transform:translateY(-20px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.modal-header{padding:20px 24px;border-bottom:1px solid rgba(255,255,255,.08);display:flex;justify-content:space-between;align-items:center;gap:12px;background:#ffffff05;border-radius:16px 16px 0 0}.modal-header h2{margin:0;font-size:20px;font-weight:600;color:var(--on-surface);letter-spacing:-.01em}.modal-body{padding:24px;overflow-y:auto;overflow-x:hidden;display:grid;gap:20px}.modal-footer{padding:16px 24px 20px;border-top:1px solid rgba(255,255,255,.08);display:flex;justify-content:flex-end;gap:12px;background:#ffffff03;border-radius:0 0 16px 16px}.changelog-modal__body{gap:12px}.changelog-meta{display:flex;flex-direction:column;gap:6px;font-size:13px;color:var(--muted)}.changelog-meta strong{color:var(--on-surface)}.changelog-body{background:var(--bg);border:1px solid var(--border);border-radius:10px;padding:14px;max-height:360px;overflow-y:auto;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,monospace;font-size:13px;line-height:1.5;white-space:pre-wrap;transition:border-color .15s ease}[data-theme=dark] .changelog-body{background:#0f131a}.changelog-body:hover{border-color:#7aa2f74d}.changelog-body::-webkit-scrollbar{width:10px}.changelog-body::-webkit-scrollbar-track{background:#0003;border-radius:6px}.changelog-body::-webkit-scrollbar-thumb{background:#7aa2f74d;border-radius:6px}.changelog-body::-webkit-scrollbar-thumb:hover{background:#7aa2f780}.changelog-links{margin-right:auto;display:flex;align-items:center;gap:8px}.changelog-buttons{display:flex;align-items:center;gap:8px}.tracker-grid{display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(320px,1fr))}.tracker-card.card{background:#ffffff08;border-color:#ffffff14}.profile-mappings-grid{display:flex;flex-direction:column;gap:12px}.profile-mapping-row{display:grid;grid-template-columns:1fr 1fr auto;gap:12px;align-items:end}.profile-mapping-row .field{margin:0}.profile-mapping-row .btn.icon-only{height:38px;width:38px;padding:0;display:flex;align-items:center;justify-content:center}.tracker-card .card-header{display:flex;justify-content:space-between;align-items:center;gap:12px;font-weight:600;color:var(--on-surface)}.tracker-card .card-body{padding-top:0}.tracker-card .field-grid{grid-template-columns:minmax(0,1fr)}.keyboard-hint{display:inline-flex;align-items:center;gap:4px;padding:2px 6px;border-radius:4px;font-size:10px;font-weight:600;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);color:var(--muted);font-family:monospace}.skeleton{background:linear-gradient(90deg,var(--surface) 0%,rgba(122,162,247,.1) 50%,var(--surface) 100%);background-size:200% 100%;animation:skeleton-loading 1.5s ease-in-out infinite;border-radius:6px}@keyframes skeleton-loading{0%{background-position:200% 0}to{background-position:-200% 0}}.skeleton-table{display:flex;flex-direction:column;gap:8px;padding:16px}.skeleton-table-header{display:grid;grid-template-columns:repeat(auto-fit,minmax(100px,1fr));gap:12px;margin-bottom:8px}.skeleton-header{height:24px}.skeleton-table-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(100px,1fr));gap:12px;padding:12px 0;border-bottom:1px solid var(--border)}.skeleton-cell{height:20px}.skeleton-card{padding:20px;background:var(--surface);border-radius:12px;border:1px solid var(--border)}.skeleton-title{height:28px;width:60%;margin-bottom:16px}.skeleton-text{height:16px;margin-bottom:12px}.skeleton-text:last-of-type{width:80%}.skeleton-button{height:40px;width:120px;margin-top:16px;border-radius:8px}.skeleton-text-group{display:flex;flex-direction:column;gap:12px}[data-density=compact] .responsive-table td,[data-density=compact] .responsive-table th{padding:4px 8px;font-size:12px;line-height:1.3}[data-density=compact] .responsive-table{font-size:12px}[data-density=compact] .episodes-table td,[data-density=compact] .episodes-table th{padding:4px 8px;font-size:12px}[data-density=compact] .card{padding:12px;border-radius:8px}[data-density=compact] .card-header{font-size:16px;padding:8px 12px;margin-bottom:8px}[data-density=compact] .card-body{padding:8px 12px}[data-density=compact] .btn{padding:4px 10px;font-size:12px;min-height:28px}[data-density=compact] .btn.small{padding:3px 8px;font-size:11px;min-height:24px}[data-density=compact] .field{margin-bottom:8px}[data-density=compact] .field label{font-size:11px;margin-bottom:2px}[data-density=compact] .field input,[data-density=compact] .field select,[data-density=compact] .field textarea{padding:4px 8px;font-size:12px;min-height:28px}[data-density=compact] .hint{font-size:11px;line-height:1.4}[data-density=compact] .stack{gap:8px}[data-density=compact] .row{gap:6px}[data-density=compact] .table-badge{padding:1px 4px;font-size:10px}[data-density=compact] .table-badge-reason{font-size:9px}[data-density=compact] .container{padding:12px}[data-density=compact] .nav{gap:4px;padding:8px 0}[data-density=compact] .nav button{padding:6px 12px;font-size:12px;gap:6px}[data-density=compact] .pagination{margin-top:8px;padding:8px 0;font-size:12px}[data-density=compact] .season-header{padding:8px 12px;font-size:13px}[data-density=compact] .season-content{padding:8px}[data-density=compact] .series-card{margin-bottom:12px}[data-density=compact] .field-grid{gap:8px}[data-density=compact] h2{font-size:18px;margin-bottom:12px}[data-density=compact] h3{font-size:14px;margin-bottom:8px}[data-density=compact] .modal{padding:16px}[data-density=compact] .modal-header{padding:12px 16px;margin-bottom:12px}[data-density=compact] .modal-body{padding:12px 16px}[data-density=compact] .modal-footer{padding:12px 16px;gap:8px}[data-density=compact] .process-grid{gap:10px;grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}[data-density=compact] .process-section{gap:8px}[data-density=compact] .process-section+.process-section{margin-top:8px}[data-density=compact] .process-section__title{font-size:11px;padding:0 2px;gap:6px}[data-density=compact] .process-section__title:before{width:3px;height:14px}[data-density=compact] .process-card{padding:10px;gap:8px;border-radius:10px}[data-density=compact] .process-card__header{padding-right:14px;gap:6px}[data-density=compact] .process-card__name{font-size:14px}[data-density=compact] .process-card__summary{font-size:11px}[data-density=compact] .process-card__badges{gap:4px;margin-top:2px}[data-density=compact] .process-card__badge{padding:2px 6px;font-size:10px}[data-density=compact] .process-card__list{gap:8px;grid-template-columns:repeat(auto-fit,minmax(140px,1fr))}[data-density=compact] .process-chip{gap:6px;padding:8px 10px;border-radius:8px}[data-density=compact] .process-chip__top{gap:6px}[data-density=compact] .process-chip__name{font-size:12px}[data-density=compact] .process-chip__detail{margin-top:4px;font-size:11px;line-height:1.3}[data-density=compact] .process-chip .btn{padding:3px 8px;font-size:11px}[data-density=compact] .status-indicator{width:10px;height:10px}[data-density=compact] .status-pill{padding:3px 8px;font-size:11px;gap:4px}[data-density=compact] .status-pill__dot{width:5px;height:5px;margin-right:4px}[data-density=compact] .config-card{border-radius:10px}[data-density=compact] .config-card summary{padding:8px 10px;font-size:13px}[data-density=compact] .config-card summary:before{margin-right:6px}[data-density=compact] .config-card>.card-body{gap:8px}[data-density=compact] .config-summary-card{gap:8px;min-height:120px}[data-density=compact] .config-summary-card p{font-size:12px;line-height:1.3}[data-density=compact] .config-layout{gap:10px}[data-density=compact] .config-actions{gap:6px}[data-density=compact] .config-grid{gap:12px;grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}[data-density=compact] .config-arr-groups{gap:16px}[data-density=compact] .config-arr-group{gap:8px}[data-density=compact] .config-arr-group__details{padding:10px 12px;border-radius:10px}[data-density=compact] .config-arr-group__details summary{gap:8px;font-size:13px}[data-density=compact] .config-arr-group__details[open] summary{margin-bottom:10px;padding-bottom:8px}[data-density=compact] .config-arr-group__count{padding:3px 8px;font-size:11px}[data-density=compact] .config-arr-group__title{font-size:12px}[data-density=compact] .config-arr-grid{gap:12px;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));margin-top:2px}[data-density=compact] .config-arr-grid .card-body{gap:8px}[data-density=compact] .config-arr-card{min-height:160px}[data-density=compact] .config-arr-summary{gap:6px}[data-density=compact] .config-arr-summary__item{gap:1px}[data-density=compact] .config-arr-summary__item dt{font-size:10px}[data-density=compact] .config-arr-summary__item dd{font-size:12px}[data-density=compact] .config-arr-actions{gap:6px}[data-density=compact] .config-footer{gap:8px}[data-density=compact] .config-section{padding:6px 10px;border-radius:8px}[data-density=compact] .config-section summary{font-size:13px}[data-density=compact] .config-section summary:before{margin-right:6px}[data-density=compact] .config-section__body{margin-top:8px}[data-density=compact] .field-description,[data-density=compact] .field-hint{font-size:11px;line-height:1.3;margin-top:2px}[data-density=compact] .field-description{margin-top:1px}[data-density=compact] .field-hint{margin-top:3px}[data-density=compact] .field-label{gap:4px;font-size:11px}[data-density=compact] .checkbox-field{gap:4px;font-size:12px}[data-density=compact] .checkbox-field label{gap:6px}[data-density=compact] .checkbox-field__content{gap:4px}[data-density=compact] .checkbox-field__text{gap:4px;line-height:1.3;font-size:12px}[data-density=compact] .secure-field,[data-density=compact] .secure-field__input-group{gap:6px}[data-density=compact] .secure-field__controls{gap:4px}[data-density=compact] .secure-field__controls .btn{padding:4px 8px}[data-density=compact] .help-icon{width:14px;height:14px;font-size:10px}[data-density=compact] .badge{padding:2px 6px;border-radius:5px;font-size:10px}[data-density=compact] .empty-state{padding:24px 20px;border-radius:12px;font-size:13px}[data-density=compact] .tracker-grid{gap:10px;grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}[data-density=compact] .tracker-card .card-header{gap:8px;font-size:13px}[data-density=compact] .tracker-card .card-body{padding-top:0}[data-density=compact] .keyboard-hint{gap:3px;padding:2px 5px;border-radius:3px;font-size:9px}[data-density=compact] .changelog-modal__body{gap:8px}[data-density=compact] .changelog-meta{gap:4px;font-size:12px}[data-density=compact] .changelog-body{padding:10px;max-height:280px;font-size:12px;line-height:1.4}[data-density=compact] .changelog-links,[data-density=compact] .changelog-buttons{gap:6px}[data-density=compact] details{margin:4px 0}[data-density=compact] details summary{padding:3px;border-radius:5px}[data-density=compact] .series-details,[data-density=compact] .season-details{border-radius:5px}[data-density=compact] .series-summary,[data-density=compact] .season-summary{padding:8px 12px;font-size:13px;border-radius:5px 5px 0 0}[data-density=compact] .series-title{font-size:1em}[data-density=compact] .series-instance{font-size:.85em}[data-density=compact] .season-title{font-size:.95em}[data-density=compact] .season-count{font-size:.85em}[data-density=compact] .series-content,[data-density=compact] .season-content{padding:6px}[data-density=compact] pre{padding:10px;max-height:320px;border-radius:10px;font-size:12px}[data-density=compact] .icon{width:1.2em;height:1.2em}[data-density=compact] .icon--small{width:1em;height:1em}[data-density=compact] .icon--large{width:1.4em;height:1.4em}[data-density=compact] svg[width],[data-density=compact] svg[height]{width:1.2em!important;height:1.2em!important}[data-density=compact] .spinner{width:12px;height:12px;border-width:2px}[data-density=compact] .loading{gap:6px;font-size:12px}[data-density=compact] .toasts{gap:8px;right:12px;bottom:12px}[data-density=compact] .toast{padding:8px 12px;border-radius:8px;min-width:220px;font-size:12px}[data-density=compact] .logs-container{height:calc(100vh - 110px)}[data-density=compact] .logs-toolbar{margin-bottom:8px;gap:8px}[data-density=compact] .logs-toolbar .field{margin-bottom:0}[data-density=compact] .logs-toolbar label{font-size:11px;margin-bottom:2px}[data-density=compact] .logs-toolbar .btn{padding:4px 10px;font-size:12px}[data-density=compact] .logs-content{padding:10px;border-radius:8px}[data-density=compact] .logs-content pre{font-size:11px;line-height:1.4}[data-density=compact] .badge{padding:2px 6px;font-size:10px}[data-density=comfortable] .responsive-table td,[data-density=comfortable] .responsive-table th{padding:12px 16px}.view-density-toggle{display:flex;gap:4px;background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:4px}.view-density-toggle button{padding:6px 12px;border:none;background:transparent;color:var(--muted);border-radius:6px;font-size:13px;font-weight:500;cursor:pointer;transition:all .2s ease}.view-density-toggle button:hover{color:var(--on-surface);background:#7aa2f71a}.view-density-toggle button.active{background:var(--primary);color:#fff}[data-density=compact] .css-13cymwt-control,[data-density=compact] .css-t3ipsp-control,[data-density=compact] .css-15evc9m-control,[data-density=compact] .css-hlgwow,[data-density=compact] [class*=-control]{min-height:32px!important;height:32px!important;font-size:12px!important}[data-density=compact] .css-hlgwow,[data-density=compact] [class*=-ValueContainer]{padding:2px 8px!important;font-size:12px!important}[data-density=compact] .css-1dimb5e-singleValue,[data-density=compact] .css-1jxntwc-singleValue,[data-density=compact] [class*=-singleValue]{font-size:12px!important;line-height:1.4!important}[data-density=compact] .css-1u3zge7,[data-density=compact] [class*=-Input]{padding:0!important;margin:0!important}[data-density=compact] .css-1u3zge7 input,[data-density=compact] [class*=-Input] input{font-size:12px!important;padding:0!important;margin:0!important}[data-density=compact] .css-1nmdiq5-menu,[data-density=compact] [class*=-menu]{font-size:12px!important}[data-density=compact] .css-1n6sfyn-MenuList,[data-density=compact] [class*=-MenuList]{padding:4px!important}[data-density=compact] .css-10wo9uf-option,[data-density=compact] [class*=-option]{padding:6px 10px!important;font-size:12px!important}[data-density=compact] .css-1wy0on6,[data-density=compact] [class*=-indicatorsContainer]{padding:0 4px!important}[data-density=compact] .css-1u9des2-indicatorSeparator,[data-density=compact] [class*=-indicatorSeparator]{margin-top:6px!important;margin-bottom:6px!important}[data-density=compact] .css-1hwfws3,[data-density=compact] .css-1xc3v61-indicatorContainer,[data-density=compact] [class*=-indicatorContainer]{padding:4px!important}[data-density=compact] .css-1xc3v61-indicatorContainer svg,[data-density=compact] [class*=-indicatorContainer] svg{width:16px!important;height:16px!important}[data-density=compact] .appbar{padding:6px 12px!important}[data-density=compact] .appbar__inner{padding:0 6px!important;gap:8px!important}[data-density=compact] .appbar__title{gap:6px!important}[data-density=compact] .appbar__title h1{font-size:15px!important;margin:0!important}[data-density=compact] .appbar__logo{width:28px!important;height:28px!important}[data-density=compact] .appbar__version{font-size:9px!important;padding:2px 5px!important;letter-spacing:.3px!important}[data-density=compact] .appbar__status{font-size:10px!important}[data-density=compact] .appbar__update{padding:4px 8px!important;font-size:10px!important;gap:3px!important}[data-density=compact] .appbar__update-indicator{width:5px!important;height:5px!important}[data-density=compact] .appbar__actions{gap:6px!important}[data-density=compact] .appbar__actions button,[data-density=compact] .appbar__actions a.btn{padding:4px 8px!important;font-size:10px!important;gap:4px!important}[data-density=compact] .appbar__actions .icon{width:14px!important;height:14px!important}[data-density=compact] .appbar__actions .badge{padding:2px 6px!important;font-size:9px!important}[data-density=compact] .spinner{width:11px!important;height:11px!important;border-width:2px!important}[data-density=compact] .view-density-toggle{padding:2px!important;gap:2px!important;border-radius:6px!important}[data-density=compact] .view-density-toggle button{padding:4px 8px!important;font-size:10px!important;border-radius:4px!important}.version-comparison{display:flex;align-items:center;gap:12px;padding:12px;background:#7aa2f70d;border:1px solid rgba(122,162,247,.2);border-radius:8px;margin-bottom:12px}.version-item{display:flex;align-items:center;gap:6px}.version-arrow{color:var(--primary);font-size:18px;font-weight:700}.version-badge{padding:4px 10px;border-radius:6px;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,monospace;font-size:12px;font-weight:600}.version-current{background:#9aa3ac26;border:1px solid rgba(154,163,172,.3);color:var(--muted)}.version-latest{background:#7aa2f726;border:1px solid rgba(122,162,247,.3);color:var(--primary)}.update-status{padding:10px 14px;border-radius:8px;font-size:13px;font-weight:500;display:flex;align-items:center;gap:8px}.update-status.text-info{background:#3b82f61a;border:1px solid rgba(59,130,246,.3);color:#3b82f6}.update-status.text-success{background:#22c55e1a;border:1px solid rgba(34,197,94,.3);color:#22c55e}.update-status.text-danger{background:#ef44441a;border:1px solid rgba(239,68,68,.3);color:#ef4444}.changelog-section{display:flex;flex-direction:column;gap:8px}.changelog-section h3{margin:0;font-size:14px;font-weight:600;color:var(--on-surface)}[data-theme=light] .version-comparison{background:#0071e30d;border-color:#0071e326}[data-theme=light] .version-latest{background:#0071e31a;border-color:#0071e340}[data-density=compact] .version-comparison{padding:8px;gap:8px;font-size:12px}[data-density=compact] .version-badge{padding:3px 8px;font-size:11px}[data-density=compact] .version-arrow{font-size:14px}[data-density=compact] .update-status{padding:8px 12px;font-size:12px}[data-density=compact] .changelog-section h3{font-size:13px}.react-lazylog-searchbar{background:var(--surface)!important;border-bottom:1px solid var(--border)!important;padding:8px 12px!important}[data-theme=dark] .react-lazylog-searchbar{background:#0f131a!important}.react-lazylog-searchbar-input{background:var(--bg)!important;color:var(--on-surface)!important;border:1px solid var(--border)!important;border-radius:6px!important;padding:6px 10px!important;font-size:13px!important}[data-theme=dark] .react-lazylog-searchbar-input{background:#12151a!important}.react-lazylog-searchbar-input:focus{outline:none!important;border-color:var(--primary)!important;box-shadow:0 0 0 2px #7aa2f71a!important}[data-theme=light] .react-lazylog-searchbar-input:focus{box-shadow:0 0 0 2px #0071e31a!important}.react-lazylog-searchbar-input::placeholder{color:var(--muted)!important}.react-lazylog-searchbar-matches{color:var(--muted)!important;font-size:12px!important}.react-lazylog-searchbar-filter,.react-lazylog-searchbar-up-arrow,.react-lazylog-searchbar-down-arrow{background:transparent!important;border:1px solid var(--border)!important;border-radius:6px!important;padding:6px!important;cursor:pointer!important;transition:all .15s ease!important}.react-lazylog-searchbar-filter:hover,.react-lazylog-searchbar-up-arrow:hover,.react-lazylog-searchbar-down-arrow:hover{background:#7aa2f71a!important;border-color:var(--primary)!important}[data-theme=light] .react-lazylog-searchbar-filter:hover,[data-theme=light] .react-lazylog-searchbar-up-arrow:hover,[data-theme=light] .react-lazylog-searchbar-down-arrow:hover{background:#0071e314!important}.react-lazylog-searchbar-filter svg,.react-lazylog-searchbar-up-arrow svg,.react-lazylog-searchbar-down-arrow svg{fill:var(--on-surface)!important;width:16px!important;height:16px!important}.react-lazylog-searchbar-filter.inactive,.react-lazylog-searchbar-up-arrow.inactive,.react-lazylog-searchbar-down-arrow.inactive{opacity:.5!important;cursor:not-allowed!important}.react-lazylog-searchbar-matches.inactive{opacity:.5!important}.test-connection-section{margin:16px 0;padding:16px;background:#ffffff05;border:1px solid var(--border-color);border-radius:4px}.field-group-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.field-hint{font-size:.85em;color:var(--text-secondary);font-style:italic}.alert{padding:12px 16px;border-radius:4px;margin-top:12px;line-height:1.5}.alert.success{background:#4caf501a;border:1px solid rgba(76,175,80,.3);color:#66bb6a}[data-theme=light] .alert.success{background:#4caf5014;border-color:#4caf5066;color:#388e3c}.alert.error{background:#f443361a;border:1px solid rgba(244,67,54,.3);color:#ef5350}[data-theme=light] .alert.error{background:#f4433614;border-color:#f4433666;color:#d32f2f}.alert.info{background:#2196f31a;border:1px solid rgba(33,150,243,.3);color:#42a5f5}[data-theme=light] .alert.info{background:#2196f314;border-color:#2196f366;color:#1976d2}.alert.warning{background:#ffc1071a;border:1px solid rgba(255,193,7,.3);color:#ffb74d}[data-theme=light] .alert.warning{background:#ffc10714;border-color:#ffc10766;color:#f57c00}.alert-details{font-size:.9em;margin-top:6px;opacity:.9}.alert strong{font-weight:600}