/* Modern Reset & CSS Custom Properties from kirimure.io */
    :root {
      --oceano-azul: #2c4f6e;
      --por-do-sol-farol: #d3a859;
      --areia-fina: #e8d4b8;
      --espuma-da-onda: #dce5e8;
      --crista-da-onda: #f5f4f0;
      --renda: #ffffff;
      
      --noite-salvador: #1a2a3a;
      --entardecer-ondina: #4a5568;
      --chuva-em-salvador: #718096;

      --color-primary: var(--oceano-azul);
      --color-primary-glow: rgba(44, 79, 110, 0.12);
      --color-secondary: var(--por-do-sol-farol);
      --color-secondary-glow: rgba(211, 168, 89, 0.12);
      
      --color-success: #1e6b54;
      --color-success-glow: rgba(30, 107, 84, 0.15);
      --color-error: #b23a48;
      --color-error-glow: rgba(178, 58, 72, 0.15);
      --color-warning: #c68a4c;
      
      --text-bright: var(--noite-salvador);
      --text-main: var(--entardecer-ondina);
      --text-muted: var(--chuva-em-salvador);
      
      --font-sans: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
      --font-title: 'Outfit', sans-serif;
      --font-mono: 'JetBrains Mono', monospace;
      
      --transition-smooth: all 0.25s cubic-bezier(0.4, 0, 0.2, 1);
      
      --shadow-sm: 0 1px 3px rgba(0,0,0,.08), 0 1px 2px rgba(0,0,0,.06);
      --shadow-md: 0 4px 16px rgba(0,0,0,.10), 0 2px 6px rgba(0,0,0,.07);
      --shadow-lg: 0 10px 40px rgba(0,0,0,.14);
      --shadow-card: 0 4px 24px rgba(44,79,110,.10);
      
      --radius-sm: 8px;
      --radius-md: 12px;
      --radius-lg: 20px;
    }

    * {
      box-sizing: border-box;
      margin: 0;
      padding: 0;
    }

    body {
      background-color: var(--crista-da-onda);
      color: var(--text-main);
      font-family: var(--font-sans);
      min-height: 100vh;
      overflow-x: hidden;
      position: relative;
      line-height: 1.5;
    }

    /* Ambient Background Glows */
    body::before, body::after {
      content: '';
      position: absolute;
      width: 40vw;
      height: 40vw;
      border-radius: 50%;
      filter: blur(160px);
      z-index: -1;
      pointer-events: none;
      opacity: 0.1;
    }
    body::before {
      top: -10vw;
      left: -10vw;
      background: var(--oceano-azul);
    }
    body::after {
      bottom: -10vw;
      right: -10vw;
      background: var(--por-do-sol-farol);
    }

    /* Scrollbars */
    ::-webkit-scrollbar {
      width: 8px;
      height: 8px;
    }
    ::-webkit-scrollbar-track {
      background: var(--crista-da-onda);
    }
    ::-webkit-scrollbar-thumb {
      background: rgba(44, 79, 110, 0.15);
      border-radius: 4px;
    }
    ::-webkit-scrollbar-thumb:hover {
      background: rgba(44, 79, 110, 0.25);
    }

    /* Layout Containers */
    .container {
      max-width: 1440px;
      margin: 0 auto;
      padding: 2.5rem 1.5rem;
    }

    /* Responsive Header Layout with horizontal controls */
    .app-header {
      display: flex;
      justify-content: space-between;
      align-items: center;
      margin-bottom: 2.5rem;
      border-bottom: 1px solid rgba(44, 79, 110, 0.08);
      padding-bottom: 1.5rem;
      gap: 1.5rem;
    }

    .header-main {
      display: flex;
      align-items: center;
      gap: 2rem;
      flex: 1;
    }

    .brand h1 {
      font-family: var(--font-title);
      font-weight: 900;
      font-size: 2.5rem;
      color: var(--oceano-azul);
      letter-spacing: -0.03em;
      white-space: nowrap;
    }

    .brand h1 span.logo-dot {
      color: var(--por-do-sol-farol);
      font-weight: 900;
    }

    /* Horizontal Device Settings Block */
    .device-controls-block {
      display: flex;
      align-items: center;
      gap: 1rem;
      flex-wrap: wrap;
      background: rgba(255, 255, 255, 0.85);
      border: 1px solid rgba(44, 79, 110, 0.08);
      border-radius: var(--radius-md);
      padding: 0.5rem 1rem;
      box-shadow: var(--shadow-sm);
      flex: 1;
      width: 100%;
    }

    .control-inline-group {
      display: flex;
      align-items: center;
      gap: 0.75rem;
      flex: 1;
      flex-wrap: wrap;
    }

    .control-item {
      display: flex;
      flex-direction: column;
      gap: 0.15rem;
      flex: 1;
      min-width: 0;
    }

    .control-item label {
      font-size: 0.65rem;
      font-weight: 600;
      color: var(--text-muted);
      text-transform: uppercase;
      letter-spacing: 0.05em;
      white-space: nowrap;
      overflow: hidden;
      text-overflow: ellipsis;
    }

    .control-item select {
      padding: 0.35rem 1.75rem 0.35rem 0.5rem;
      font-size: 0.8rem;
      height: 30px;
      width: 100%;
      background-position: right 0.5rem center;
      background-size: 1rem;
    }

    .btn-group-inline {
      display: flex;
      align-items: center;
      gap: 0.5rem;
    }

    .device-controls-block .btn {
      padding: 0.35rem 0.75rem;
      font-size: 0.8rem;
      height: 30px;
      border-radius: var(--radius-sm);
      white-space: nowrap;
      display: inline-flex;
      align-items: center;
      justify-content: center;
      gap: 0.35rem;
    }

    .device-controls-block .btn svg {
      width: 14px;
      height: 14px;
    }

    .system-status {
      display: flex;
      align-items: center;
      gap: 1.5rem;
    }

    /* Lang toggle from kirimure.io styling */
    .lang-toggle {
      display: flex;
      align-items: center;
      gap: 0.25rem;
      font-size: 0.85rem;
      font-weight: 600;
      font-family: var(--font-sans);
    }

    .lang-btn {
      color: var(--chuva-em-salvador);
      padding: 0.25rem 0.5rem;
      border-radius: 4px;
      transition: var(--transition-smooth);
      cursor: pointer;
      background: transparent;
      border: none;
    }

    .lang-btn:hover {
      color: var(--oceano-azul);
      background: rgba(44, 79, 110, 0.05);
    }

    .lang-btn.active {
      color: var(--oceano-azul);
      font-weight: 700;
      background: rgba(44, 79, 110, 0.08);
    }

    .lang-sep {
      color: rgba(44, 79, 110, 0.2);
    }

    .status-badge {
      display: flex;
      align-items: center;
      gap: 0.5rem;
      padding: 0.5rem 0.75rem;
      border-radius: 9999px;
      background: var(--renda);
      border: 1px solid rgba(44, 79, 110, 0.08);
      font-size: 0.85rem;
      font-weight: 500;
      color: var(--text-bright);
      box-shadow: var(--shadow-sm);
    }

    .status-indicator {
      width: 8px;
      height: 8px;
      border-radius: 50%;
      background: var(--text-muted);
    }

    .status-indicator.active {
      background: var(--color-success);
      box-shadow: 0 0 10px var(--color-success);
      animation: pulse 2s infinite;
    }
    
    .status-indicator.error {
      background: var(--color-error);
      box-shadow: 0 0 10px var(--color-error);
    }

    /* Grid Layout */
    .dashboard-grid {
      display: grid;
      grid-template-columns: 340px 1fr;
      gap: 2rem;
    }

    @media (max-width: 1024px) {
      .dashboard-grid {
        grid-template-columns: 1fr;
      }
    }

    /* Card Styling */
    .card {
      background: rgba(255, 255, 255, 0.85);
      border: 1px solid rgba(44, 79, 110, 0.08);
      border-radius: var(--radius-md);
      padding: 1.5rem;
      box-shadow: var(--shadow-card);
      display: flex;
      flex-direction: column;
      gap: 1.5rem;
    }

    .card-title {
      font-size: 1.1rem;
      font-weight: 700;
      font-family: var(--font-title);
      color: var(--noite-salvador);
      display: flex;
      align-items: center;
      gap: 0.5rem;
      margin-bottom: 0.5rem;
    }

    .card-title svg {
      width: 20px;
      height: 20px;
      color: var(--color-primary);
    }

    /* Form Controls */
    .control-group {
      display: flex;
      flex-direction: column;
      gap: 0.5rem;
    }

    label {
      font-size: 0.85rem;
      font-weight: 600;
      color: var(--text-muted);
      text-transform: uppercase;
      letter-spacing: 0.05em;
    }

    select, button, input {
      background: rgba(44, 79, 110, 0.02);
      border: 1px solid rgba(44, 79, 110, 0.12);
      border-radius: var(--radius-sm);
      padding: 0.75rem 1rem;
      color: var(--noite-salvador);
      font-family: inherit;
      font-size: 0.95rem;
      outline: none;
      transition: var(--transition-smooth);
    }

    select {
      cursor: pointer;
      appearance: none;
      background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='%232c4f6e'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M19 9l-7 7-7-7'/%3E%3C/svg%3E");
      background-repeat: no-repeat;
      background-position: right 1rem center;
      background-size: 1.25rem;
      padding-right: 2.5rem;
    }

    select:focus, select:hover, input:focus, input:hover {
      border-color: var(--color-primary);
      background-color: var(--renda);
      box-shadow: 0 0 0 2px var(--color-primary-glow);
    }
    
    select:focus-visible, input:focus-visible, .lang-btn:focus-visible, .btn:focus-visible, .hud-btn:focus-visible, .modal-close:focus-visible {
      outline: 2px solid var(--color-primary);
      outline-offset: 2px;
    }

    select option {
      background: var(--renda);
      color: var(--noite-salvador);
    }

    /* Buttons */
    .btn {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      gap: 0.5rem;
      font-weight: 600;
      cursor: pointer;
      border: none;
      box-shadow: var(--shadow-sm);
      font-family: var(--font-sans);
    }

    .btn-primary {
      background: var(--oceano-azul);
      color: var(--renda);
    }

    .btn-primary:hover:not(:disabled) {
      transform: translateY(-1px);
      background: #1e364f;
      box-shadow: 0 4px 12px rgba(44, 79, 110, 0.25);
    }

    .btn-secondary {
      background: var(--espuma-da-onda);
      border: 1px solid rgba(44, 79, 110, 0.12);
      color: var(--noite-salvador);
    }

    .btn-secondary:hover:not(:disabled) {
      background: rgba(220, 229, 232, 0.8);
      border-color: rgba(44, 79, 110, 0.25);
    }

    .btn-success {
      background: var(--color-success);
      color: var(--renda);
    }

    .btn-success:hover:not(:disabled) {
      transform: translateY(-1px);
      background: #175442;
      box-shadow: 0 4px 12px rgba(30, 107, 84, 0.2);
    }

    .btn-danger {
      background: var(--color-error);
      color: var(--renda);
    }

    .btn-danger:hover:not(:disabled) {
      transform: translateY(-1px);
      background: #962f3c;
      box-shadow: 0 4px 12px rgba(178, 58, 72, 0.2);
    }

    .btn:disabled {
      opacity: 0.5;
      cursor: not-allowed;
      transform: none !important;
      box-shadow: none !important;
    }

    .btn-group-row {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 0.75rem;
    }

    /* Main Diagnostic Layout */
    .diagnostic-workspace {
      display: flex;
      flex-direction: column;
      gap: 2rem;
    }

    /* Camera Test Box */
    .video-card {
      position: relative;
      background: #111e29;
      border-radius: var(--radius-md);
      overflow: hidden;
      aspect-ratio: 16 / 9;
      border: 1px solid rgba(44, 79, 110, 0.1);
      display: flex;
      align-items: center;
      justify-content: center;
      box-shadow: var(--shadow-card);
    }

    .video-card video {
      width: 100%;
      height: 100%;
      object-fit: cover;
      display: block;
      transform: scaleX(-1);
    }

    .video-card.unmirrored video {
      transform: none;
    }

    /* Video HUD overlay */
    .video-hud {
      position: absolute;
      top: 1rem;
      left: 1rem;
      right: 1rem;
      display: flex;
      justify-content: space-between;
      pointer-events: none;
      z-index: 10;
    }

    .hud-chip {
      background: rgba(26, 42, 58, 0.85);
      border: 1px solid rgba(255, 255, 255, 0.12);
      padding: 0.4rem 0.8rem;
      border-radius: 6px;
      font-family: var(--font-mono);
      font-size: 0.8rem;
      color: var(--renda);
      display: flex;
      align-items: center;
      gap: 0.4rem;
    }

    .hud-chip.success {
      border-color: var(--color-success);
    }

    .hud-controls {
      position: absolute;
      bottom: 1rem;
      right: 1rem;
      display: flex;
      gap: 0.5rem;
      z-index: 10;
    }

    .hud-btn {
      background: rgba(26, 42, 58, 0.8);
      border: 1px solid rgba(255, 255, 255, 0.15);
      color: var(--renda);
      padding: 0.5rem;
      border-radius: 8px;
      cursor: pointer;
      transition: var(--transition-smooth);
      display: flex;
      align-items: center;
      justify-content: center;
    }

    .hud-btn:hover {
      background: var(--color-primary);
      border-color: var(--color-primary);
    }

    .video-placeholder {
      position: absolute;
      text-align: center;
      color: var(--chuva-em-salvador);
      display: flex;
      flex-direction: column;
      align-items: center;
      gap: 1rem;
      z-index: 2;
    }

    .video-placeholder svg {
      width: 64px;
      height: 64px;
      stroke: var(--chuva-em-salvador);
      opacity: 0.6;
    }

    /* Sound/Audio Visualizer Container */
    .visualizer-container {
      background: rgba(255, 255, 255, 0.85);
      border: 1px solid rgba(44, 79, 110, 0.08);
      border-radius: var(--radius-md);
      padding: 1.25rem;
      position: relative;
      display: flex;
      flex-direction: column;
      gap: 0.75rem;
      box-shadow: var(--shadow-card);
      width: 100%;
    }

    .visualizer-canvas {
      width: 100%;
      height: 120px;
      background: rgba(44, 79, 110, 0.03);
      border-radius: 8px;
      border: 1px solid rgba(44, 79, 110, 0.08);
    }

    /* Volume Level bar */
    .volume-meter {
      display: flex;
      align-items: center;
      gap: 1rem;
      margin-top: 0.5rem;
    }

    .volume-bar-bg {
      flex: 1;
      height: 8px;
      background: rgba(44, 79, 110, 0.08);
      border-radius: 4px;
      overflow: hidden;
      position: relative;
    }

    .volume-bar-fill {
      height: 100%;
      width: 0%;
      background: linear-gradient(90deg, var(--color-success) 70%, var(--color-warning) 85%, var(--color-error) 100%);
      border-radius: 4px;
      transition: width 0.05s linear;
    }

    .volume-peak {
      position: absolute;
      top: 0;
      bottom: 0;
      width: 2px;
      background: var(--noite-salvador);
      transition: left 0.1s ease;
    }

    /* Sound Synthesizer / Audio Output Block */
    .speaker-card {
      background: rgba(255, 255, 255, 0.85);
      border: 1px solid rgba(44, 79, 110, 0.08);
      border-radius: var(--radius-md);
      padding: 1.25rem;
      display: flex;
      flex-direction: column;
      gap: 0.75rem;
      justify-content: center;
      box-shadow: var(--shadow-card);
    }

    .speaker-controls {
      display: flex;
      flex-direction: column;
      gap: 0.75rem;
    }

    .freq-slider {
      width: 100%;
      accent-color: var(--color-primary);
      cursor: pointer;
    }

    .synth-value {
      font-family: var(--font-mono);
      font-size: 0.85rem;
      display: flex;
      justify-content: space-between;
    }

    /* System Diagnostic Logger */
    .log-card {
      background: rgba(255, 255, 255, 0.85);
      border: 1px solid rgba(44, 79, 110, 0.08);
      border-radius: var(--radius-md);
      padding: 1.25rem;
      display: flex;
      flex-direction: column;
      gap: 0.75rem;
      box-shadow: var(--shadow-card);
    }

    .log-header {
      display: flex;
      justify-content: space-between;
      align-items: center;
    }

    .clear-log-btn {
      background: transparent;
      border: none;
      color: var(--text-muted);
      cursor: pointer;
      font-size: 0.8rem;
      text-transform: uppercase;
      letter-spacing: 0.05em;
      font-weight: 600;
      transition: var(--transition-smooth);
    }

    .clear-log-btn:hover {
      color: var(--color-error);
    }

    .log-terminal {
      background: #111e29;
      border: 1px solid rgba(44, 79, 110, 0.12);
      border-radius: 8px;
      padding: 1rem;
      height: 160px;
      overflow-y: auto;
      font-family: var(--font-mono);
      font-size: 0.8rem;
      line-height: 1.6;
      display: flex;
      flex-direction: column;
      gap: 0.5rem;
    }

    .log-entry {
      display: flex;
      gap: 0.75rem;
    }

    .log-time {
      color: rgba(232, 212, 184, 0.6);
      flex-shrink: 0;
    }

    .log-msg {
      word-break: break-all;
    }

    .log-entry.info .log-msg { color: #f5f4f0; }
    .log-entry.success .log-msg { color: #4ade80; }
    .log-entry.warn .log-msg { color: #fbbf24; }
    .log-entry.error .log-msg { color: #f87171; }

    /* Video and Capture Side-by-Side Flex Box */
    .video-capture-row {
      display: flex;
      gap: 2rem;
      align-items: stretch;
      width: 100%;
    }

    .video-capture-row .video-card {
      flex: 1;
      margin: 0;
    }

    .video-capture-row .capture-matching-card {
      flex: 0 0 200px;
      width: 200px;
      min-width: 200px;
      display: flex;
      flex-direction: column;
      gap: 1rem;
      background: rgba(255, 255, 255, 0.85);
      border: 1px solid rgba(44, 79, 110, 0.08);
      border-radius: var(--radius-md);
      padding: 1.25rem 0.75rem;
      box-shadow: var(--shadow-card);
      max-height: 100%;
    }

    /* Snapshot Gallery Grid internally scrollable - 1 column layout */
    .snapshot-gallery {
      display: grid;
      grid-template-columns: 1fr;
      gap: 0.75rem;
      overflow-y: auto;
      flex: 1;
      min-height: 0;
      padding-right: 0.25rem;
    }

    .brand-link-btn:hover {
      color: var(--por-do-sol-farol) !important;
      transform: translateX(2px);
    }

    .snapshot-thumbnail {
      position: relative;
      border-radius: 8px;
      overflow: hidden;
      border: 1px solid rgba(44, 79, 110, 0.12);
      aspect-ratio: 16 / 9;
      cursor: pointer;
      background: #000;
    }

    .snapshot-thumbnail img {
      width: 100%;
      height: 100%;
      object-fit: cover;
    }

    .snapshot-delete {
      position: absolute;
      top: 4px;
      right: 4px;
      background: rgba(0, 0, 0, 0.6);
      border: none;
      color: white;
      border-radius: 4px;
      width: 20px;
      height: 20px;
      display: flex;
      align-items: center;
      justify-content: center;
      cursor: pointer;
      font-size: 10px;
      line-height: 1;
      padding: 0;
    }

    .snapshot-delete:hover {
      background: var(--color-error);
    }

    /* Bottom full-width workspace */
    .bottom-workspace {
      margin-top: 2rem;
      display: flex;
      flex-direction: column;
      gap: 2rem;
    }

    /* Modal for Snapshot Preview */
    .modal {
      position: fixed;
      top: 0;
      left: 0;
      right: 0;
      bottom: 0;
      background: rgba(26, 42, 58, 0.85);
      display: none;
      align-items: center;
      justify-content: center;
      z-index: 100;
      padding: 2rem;
    }

    .modal-content {
      max-width: 90%;
      max-height: 90%;
      position: relative;
    }

    .modal-content img {
      width: 100%;
      height: auto;
      max-height: 80vh;
      border-radius: 12px;
      border: 2px solid rgba(255, 255, 255, 0.2);
      box-shadow: var(--shadow-lg);
    }

    .modal-close {
      position: absolute;
      top: -3rem;
      right: 0;
      background: none;
      border: none;
      color: var(--renda);
      font-size: 2rem;
      cursor: pointer;
    }

    /* Troubleshooting Tips Accordion */
    .troubleshoot-accordion {
      display: flex;
      flex-direction: column;
      gap: 0.75rem;
    }

    .accordion-item {
      border: 1px solid rgba(44, 79, 110, 0.1);
      border-radius: 8px;
      background: var(--renda);
      overflow: hidden;
      transition: var(--transition-smooth);
    }

    .accordion-header {
      padding: 1rem;
      cursor: pointer;
      display: flex;
      justify-content: space-between;
      align-items: center;
      font-weight: 600;
      color: var(--noite-salvador);
      user-select: none;
      outline: none;
    }

    .accordion-header:hover {
      background: rgba(44, 79, 110, 0.03);
    }

    .accordion-header:focus-visible {
      background: rgba(44, 79, 110, 0.05);
      box-shadow: inset 0 0 0 2px var(--por-do-sol-farol);
    }

    .accordion-body {
      padding: 0 1rem 1rem 1rem;
      font-size: 0.9rem;
      color: var(--entardecer-ondina);
      display: none;
      border-top: 1px solid rgba(44, 79, 110, 0.05);
      line-height: 1.6;
    }

    .accordion-body code {
      background: rgba(44, 79, 110, 0.06);
      padding: 0.1rem 0.3rem;
      border-radius: 4px;
      font-family: var(--font-mono);
      font-size: 0.8rem;
      color: var(--oceano-azul);
    }

    details[open] .accordion-body {
      display: block;
    }

    details[open] .accordion-icon {
      transform: rotate(180deg);
    }

    .accordion-icon {
      transition: var(--transition-smooth);
      width: 18px;
      height: 18px;
      color: var(--oceano-azul);
    }

    /* Responsive adjustments for header controls */
    @media (max-width: 1200px) {
      .app-header {
        flex-direction: column;
        align-items: flex-start;
      }
      .header-main {
        flex-direction: column;
        align-items: flex-start;
        width: 100%;
      }
      .device-controls-block {
        width: 100%;
      }
    }

    @media (max-width: 768px) {
      .device-controls-block {
        flex-direction: column;
        align-items: stretch;
        gap: 0.75rem;
      }
      .control-inline-group {
        flex-direction: column;
        align-items: stretch;
        gap: 0.5rem;
      }
      .control-item {
        width: 100%;
      }
      .btn-group-inline {
        justify-content: stretch;
      }
      .btn-group-inline .btn, .device-controls-block #btn-request-permissions {
        flex: 1;
      }
      .video-capture-row {
        flex-direction: column;
        align-items: stretch;
      }
      .video-capture-row .video-card {
        aspect-ratio: 9 / 16;
        max-height: 60vh;
      }
      .video-capture-row .capture-matching-card {
        max-height: 400px;
        width: 100%;
        flex: none;
      }
      .capture-matching-card .snapshot-gallery {
        grid-template-columns: repeat(auto-fill, minmax(130px, 1fr));
      }
    }

    /* Animations */
    @keyframes pulse {
      0% {
        transform: scale(0.95);
        box-shadow: 0 0 0 0 rgba(30, 107, 84, 0.7);
      }
      70% {
        transform: scale(1);
        box-shadow: 0 0 0 6px rgba(30, 107, 84, 0);
      }
      100% {
        transform: scale(0.95);
        box-shadow: 0 0 0 0 rgba(30, 107, 84, 0);
      }
    }