:root {
    --qz-purple: #6E21D1;
    --qz-purple-dark: #5314A3;
    --qz-bg: transparent; 
    --qz-surface: #FFFFFF;
    --qz-surface-2: #F8F9FE;
    --qz-text: #0A0A0A; 
    --qz-text-secondary: #374151; 
    --qz-text-tertiary: #6B7280; 
    --qz-border: #E5E7EB; 
    --qz-border-strong: #C1C7D0; 
    --qz-danger: #DC2626;
    --qz-danger-bg: #FEF2F2;
    --qz-warn: #D97706;
    --qz-warn-bg: #FFFBEB;
    --qz-ok: #16A34A;
    --qz-ok-bg: #F0FDF4;
    --qz-radius: 8px;
    --qz-radius-lg: 12px;
  }
  #quanzar-app * { box-sizing: border-box; }
  #quanzar-app {
    font-family: inherit; 
    color: var(--qz-text);
    background: var(--qz-bg);
    line-height: 1.6;
    -webkit-font-smoothing: antialiased;
  }
  #quanzar-app .qz-container {
    max-width: 1100px;
    margin: 0 auto;
    padding: 32px 24px;
  }
  #quanzar-app .qz-brand { font-size: 13px; font-weight: 700; color: var(--qz-purple); letter-spacing: 0.5px; text-transform: uppercase; margin-bottom: 6px; }
  #quanzar-app .qz-h1 { font-size: 28px; font-weight: 700; margin: 0 0 8px; letter-spacing: -0.3px; font-family: inherit; color: var(--qz-text); }
  #quanzar-app .qz-sub { font-size: 16px; color: var(--qz-text-secondary); margin: 0 0 24px; line-height: 1.6; max-width: 720px; }
  #quanzar-app .qz-step { font-size: 13px; color: var(--qz-text-tertiary); margin-bottom: 20px; text-transform: uppercase; letter-spacing: 0.5px; font-weight: 600; }
  #quanzar-app .qz-card { background: var(--qz-surface); border: 1px solid var(--qz-border); border-radius: var(--qz-radius-lg); padding: 24px; margin-bottom: 20px; box-shadow: 0 4px 16px rgba(0,0,0,0.03); page-break-inside: avoid; break-inside: avoid; }
  #quanzar-app .qz-metric { background: var(--qz-surface); border: 1px solid var(--qz-border); border-radius: 10px; padding: 20px 18px; box-shadow: 0 4px 16px rgba(0,0,0,0.03); page-break-inside: avoid; break-inside: avoid; }
  #quanzar-app .qz-score { display: flex; align-items: center; gap: 20px; padding: 24px; border-radius: var(--qz-radius-lg); margin-bottom: 24px; border: 1px solid var(--qz-border); page-break-inside: avoid; break-inside: avoid; }
  #quanzar-app .qz-cta-card { background: var(--qz-surface); border: 2px solid var(--qz-purple); border-radius: var(--qz-radius-lg); padding: 30px; margin-bottom: 20px; page-break-inside: avoid; break-inside: avoid; }
  #quanzar-app .qz-metric-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 14px; margin-bottom: 20px; page-break-inside: avoid; break-inside: avoid; }
  #quanzar-app .qz-section-h { font-size: 16px; font-weight: 700; margin: 0 0 16px; font-family: inherit; color: var(--qz-text); }
  #quanzar-app .qz-row { display: grid !important; grid-template-columns: 1fr !important; gap: 10px !important; padding: 16px !important; background: var(--qz-surface-2) !important; border-radius: 8px !important; margin-bottom: 12px !important; align-items: start !important; }
  #quanzar-app .qz-row-header { display: none !important; }
  #quanzar-app .qz-field { display: flex !important; flex-direction: column !important; min-width: 0 !important; }
  #quanzar-app .qz-field-label {
    display: block !important; font-size: 12px !important; font-weight: 700 !important;
    color: var(--qz-text-secondary) !important; text-transform: uppercase !important;
    letter-spacing: 0.5px !important; margin-bottom: 6px !important;
  }
  #quanzar-app .qz-idx {
    text-align: left !important; font-size: 14px !important; font-weight: 700 !important;
    color: var(--qz-purple) !important; padding-bottom: 6px !important;
    border-bottom: 1px solid var(--qz-border) !important; margin-bottom: 8px !important;
  }
  #quanzar-app .qz-idx .qz-field-label {
    display: inline !important; margin-right: 6px !important; color: var(--qz-purple) !important;
  }
  #quanzar-app input, #quanzar-app select, #quanzar-app button {
    font-size: 15px; padding: 10px 12px; border: 1px solid var(--qz-border-strong);
    border-radius: var(--qz-radius); background: var(--qz-surface); color: var(--qz-text);
    font-family: inherit; width: 100%; transition: all 0.2s ease;
  }
  #quanzar-app input:focus, #quanzar-app select:focus { outline: none; border-color: var(--qz-purple); box-shadow: 0 0 0 3px rgba(110, 33, 209, 0.15); }
  #quanzar-app input::placeholder { color: #9CA3AF; }
  #quanzar-app .qz-actions { display: flex; gap: 12px; margin: 24px 0 32px; flex-wrap: wrap; }
  #quanzar-app .qz-meta-grid { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 16px; margin-bottom: 16px; }
  #quanzar-app .qz-meta label { font-size: 14px; color: var(--qz-text-secondary); display: block; margin-bottom: 6px; font-weight: 600; }
  #quanzar-app .qz-privacy { font-size: 13px; color: var(--qz-text-secondary); background: var(--qz-surface-2); padding: 14px 16px; border-radius: var(--qz-radius); margin-bottom: 0; line-height: 1.5; border: 1px solid var(--qz-border); }
  #quanzar-app .qz-metric-label { font-size: 13px; color: var(--qz-text-secondary); margin-bottom: 6px; font-weight: 600; }
  #quanzar-app .qz-metric-value { font-size: 30px; font-weight: 700; letter-spacing: -0.5px; color: var(--qz-text); }
  #quanzar-app .qz-metric-sub { font-size: 12px; color: var(--qz-text-tertiary); margin-top: 4px; font-weight: 500;}
  #quanzar-app .qz-score-dot { width: 56px; height: 56px; border-radius: 50%; flex-shrink: 0; box-shadow: inset 0 2px 4px rgba(0,0,0,0.1); }
  #quanzar-app .qz-score-text h3 { margin: 0 0 4px; font-size: 22px; font-weight: 700; font-family: inherit; color: var(--qz-text); }
  #quanzar-app .qz-score-text p { margin: 0; font-size: 15px; color: var(--qz-text-secondary); line-height: 1.6; }
  #quanzar-app .qz-finding { border-left: 3px solid var(--qz-border-strong); padding: 6px 0 6px 16px; margin-bottom: 16px; }
  #quanzar-app .qz-finding-h { font-size: 15px; font-weight: 700; margin: 0 0 4px; color: var(--qz-text); }
  #quanzar-app .qz-finding-p { font-size: 15px; color: var(--qz-text-secondary); margin: 0; line-height: 1.6; }
  
  #quanzar-app .qz-cta { background: var(--qz-purple); color: #FFFFFF; border: none; padding: 14px 28px; border-radius: 999px; font-size: 15px; font-weight: 600; cursor: pointer; transition: all 0.2s ease; width: auto; box-shadow: 0 4px 12px rgba(110, 33, 209, 0.2); }
  #quanzar-app .qz-cta:hover { background: var(--qz-purple-dark); transform: translateY(-1px); box-shadow: 0 6px 16px rgba(110, 33, 209, 0.3); }
  #quanzar-app .qz-cta-secondary { background: transparent; border: 1px solid var(--qz-border-strong); padding: 14px 28px; border-radius: 999px; font-size: 15px; cursor: pointer; color: var(--qz-text); font-weight: 600; width: auto; transition: all 0.2s ease; }
  #quanzar-app .qz-cta-secondary:hover { background: var(--qz-surface-2); border-color: var(--qz-text-secondary); }
  
  #quanzar-app .qz-hidden { display: none !important; }
  #quanzar-app .qz-warning { font-size: 14px; color: var(--qz-danger); margin-top: 10px; font-weight: 600; background: var(--qz-danger-bg); padding: 12px 16px; border-radius: var(--qz-radius); }
  #quanzar-app .qz-add-btn { background: transparent; border: 1px dashed var(--qz-border-strong); width: 100%; padding: 14px; border-radius: var(--qz-radius); font-size: 14px; color: var(--qz-text-secondary); cursor: pointer; margin-top: 12px; font-weight: 600; transition: all 0.2s ease; }
  #quanzar-app .qz-add-btn:hover { background: var(--qz-surface-2); color: var(--qz-purple); border-color: var(--qz-purple); }
  #quanzar-app .qz-import-row { display: flex; gap: 10px; align-items: center; margin-top: 12px; flex-wrap: wrap; }
  #quanzar-app .qz-import-btn { background: var(--qz-surface-2); border: 1px solid var(--qz-border-strong); padding: 10px 16px; border-radius: var(--qz-radius); font-size: 13px; color: var(--qz-text-secondary); cursor: pointer; font-weight: 600; transition: all 0.2s ease; display: inline-flex; align-items: center; gap: 6px; }
  #quanzar-app .qz-import-btn:hover { background: var(--qz-surface); color: var(--qz-purple); border-color: var(--qz-purple); }
  #quanzar-app #qz-csv-input { display: none; }
  #quanzar-app .qz-restore-banner { background: var(--qz-ok-bg); border: 1px solid #bbf7d0; border-radius: var(--qz-radius); padding: 14px 16px; margin-bottom: 16px; font-size: 14px; color: #166534; display: flex; align-items: center; justify-content: space-between; }
  #quanzar-app .qz-restore-banner button { background: var(--qz-ok); color: white; border: none; padding: 8px 16px; border-radius: var(--qz-radius); font-size: 13px; font-weight: 600; cursor: pointer; }
  #quanzar-app .qz-email-gate { background: var(--qz-surface); border: 2px dashed var(--qz-purple); border-radius: var(--qz-radius-lg); padding: 24px 28px; margin: 20px 0; display: flex; align-items: center; gap: 14px; flex-wrap: wrap; }
  #quanzar-app .qz-email-gate label { font-size: 15px; font-weight: 600; color: var(--qz-text); white-space: nowrap; }
  #quanzar-app .qz-email-gate input[type="email"] { flex: 1; min-width: 200px; max-width: 300px; padding: 10px 14px; font-size: 15px; }
  #quanzar-app .qz-email-gate .qz-email-error { font-size: 13px; color: var(--qz-danger); width: 100%; margin-top: 4px; display: none; }
  #quanzar-app .qz-benchmark-note { font-size: 12px; color: var(--qz-text-tertiary); margin-top: 8px; font-style: italic; }
  #quanzar-app .qz-table-wrap { overflow-x: auto; margin-bottom: 16px; }
  #quanzar-app .qz-breakdown-table { width: 100%; font-size: 14px; border-collapse: collapse; }
  #quanzar-app .qz-breakdown-table th { text-align: left; font-weight: 700; font-size: 12px; color: var(--qz-text-secondary); padding: 12px 14px; border-bottom: 2px solid var(--qz-border); text-transform: uppercase; letter-spacing: 0.5px; }
  #quanzar-app .qz-breakdown-table td { padding: 12px 14px; border-bottom: 1px solid var(--qz-border); color: var(--qz-text); }
  #quanzar-app .qz-badge-red { background: var(--qz-danger-bg); color: var(--qz-danger); padding: 4px 12px; border-radius: 20px; font-size: 12px; font-weight: 700; }
  #quanzar-app .qz-badge-amber { background: var(--qz-warn-bg); color: var(--qz-warn); padding: 4px 12px; border-radius: 20px; font-size: 12px; font-weight: 700; }
  #quanzar-app .qz-badge-green { background: var(--qz-ok-bg); color: var(--qz-ok); padding: 4px 12px; border-radius: 20px; font-size: 12px; font-weight: 700; }
  #quanzar-app .qz-delete-btn { background: transparent; border: none; color: var(--qz-text-tertiary); cursor: pointer; padding: 4px 8px; font-size: 18px; line-height: 1; transition: color 0.2s; }
  #quanzar-app .qz-delete-btn:hover { color: var(--qz-danger); }
  #quanzar-app .qz-footer { font-size: 13px; color: var(--qz-text-tertiary); text-align: center; margin-top: 32px; padding-top: 20px; border-top: 1px solid var(--qz-border); font-weight: 500;}
  #quanzar-app .qz-cta-card h3 { color: var(--qz-text); margin: 0 0 14px; font-size: 18px; font-weight: 700; font-family: inherit; }
  #quanzar-app .qz-cta-card p { font-size: 15px; color: var(--qz-text-secondary); line-height: 1.7; margin: 0 0 20px; }
  
  #quanzar-app .qz-help-toggle {
    display: inline-flex; align-items: center; gap: 8px;
    background: var(--qz-surface-2); border: 1px solid var(--qz-border);
    padding: 12px 16px; border-radius: var(--qz-radius); cursor: pointer;
    font-size: 15px; font-weight: 500; color: var(--qz-text-secondary); margin-bottom: 16px;
    width: 100%; justify-content: space-between; transition: all 0.2s ease;
  }
  #quanzar-app .qz-help-toggle:hover { background: var(--qz-surface); border-color: var(--qz-border-strong); }
  #quanzar-app .qz-help-toggle-icon { transition: transform 0.2s; font-size: 16px;}
  #quanzar-app .qz-help-toggle.open .qz-help-toggle-icon { transform: rotate(90deg); }
  #quanzar-app .qz-help-panel {
    background: var(--qz-surface-2); border: 1px solid var(--qz-border);
    border-radius: var(--qz-radius); padding: 20px 24px; margin-bottom: 16px;
    font-size: 15px; line-height: 1.65;
  }
  #quanzar-app .qz-help-panel h4 {
    font-size: 15px; font-weight: 600; margin: 16px 0 6px;
    color: var(--qz-purple); letter-spacing: 0.2px; font-family: inherit;
  }
  #quanzar-app .qz-help-panel h4:first-child { margin-top: 0; }
  #quanzar-app .qz-help-panel p { margin: 0 0 6px; color: var(--qz-text-secondary); }
  #quanzar-app .qz-help-panel .qz-help-where { color: var(--qz-text-tertiary); font-size: 13px; font-style: italic; margin-bottom: 10px; display: block; }
  #quanzar-app .qz-help-intro {
    background: #F8F9FE; border: 1px solid #E0D0EC;
    border-radius: var(--qz-radius); padding: 16px 20px; margin-bottom: 20px;
    font-size: 15px; color: var(--qz-text-secondary); line-height: 1.7;
  }
  #quanzar-app .qz-help-intro strong { color: var(--qz-purple); font-weight: 600; }
  #quanzar-app .qz-field-unknown { display: flex; align-items: center; gap: 6px; margin-top: 6px; }
  #quanzar-app .qz-field-unknown input[type="checkbox"] { width: 15px; height: 15px; accent-color: var(--qz-purple); cursor: pointer; flex-shrink: 0; }
  #quanzar-app .qz-field-unknown label { font-size: 13px; color: var(--qz-text-secondary); cursor: pointer; font-weight: 500;}
  #quanzar-app .qz-estimate-hint { font-size: 13px; color: var(--qz-text-tertiary); line-height: 1.5; margin-top: 6px; padding: 8px 12px; background: var(--qz-surface-2); border-radius: 6px; border-left: 2px solid var(--qz-border-strong); }
  #quanzar-app .qz-estimate-hint strong { color: var(--qz-text-secondary); font-weight: 600;}
  #quanzar-app .qz-unknown-badge { font-size: 11px; color: var(--qz-warn); background: var(--qz-warn-bg); padding: 3px 8px; border-radius: 12px; font-weight: 700; margin-top: 6px; display: inline-block; }
  #quanzar-app .qz-field input.unknown-field { background: var(--qz-surface-2); color: var(--qz-text-tertiary); border-style: dashed; }
  @media (max-width: 768px) {
    #quanzar-app .qz-meta-grid { grid-template-columns: 1fr; }
    #quanzar-app .qz-h1 { font-size: 24px; }
    #quanzar-app .qz-email-gate { flex-direction: column; align-items: stretch; }
    #quanzar-app .qz-email-gate label { white-space: normal; }
    #quanzar-app .qz-email-gate input[type="email"] { max-width: 100%; }
    #quanzar-app .qz-actions { flex-direction: column; }
    #quanzar-app .qz-cta, #quanzar-app .qz-cta-secondary { width: 100%; text-align: center; }
  }

  /* --- AI SECTION STYLES --- */
  #quanzar-app .qz-ai-loader-track { width: 100%; height: 6px; background: rgba(110, 33, 209, 0.15); border-radius: 3px; overflow: hidden; display: block; margin-bottom: 12px; position: relative; }
  #quanzar-app .qz-ai-loader-fill { height: 6px; width: 40%; background: var(--qz-purple); border-radius: 3px; animation: ai-slide 1.5s infinite ease-in-out; display: block; position: absolute; top: 0; left: 0;}
  @keyframes ai-slide { 0% { left: -40%; } 100% { left: 100%; } }
  
  #quanzar-app #qz-ai-loader-text { display: flex; justify-content: space-between; align-items: center; font-size: 15px; color: var(--qz-text-secondary); margin-bottom: 16px; }
  #quanzar-app #qz-ai-status-msg { font-weight: 500; }
  #quanzar-app #qz-ai-output h4 { margin: 18px 0 10px 0; font-size: 17px; font-weight: 600; color: var(--qz-text); font-family: inherit; }
  #quanzar-app #qz-ai-output h4:first-child { margin-top: 0; }
  #quanzar-app #qz-ai-output p { margin: 0 0 16px 0; font-size: 15px; color: var(--qz-text-secondary); line-height: 1.6; }
  #quanzar-app #qz-ai-output ul { margin: 0 0 16px 0; padding-left: 20px; }
  #quanzar-app #qz-ai-output li { margin-bottom: 8px; font-size: 15px; color: var(--qz-text-secondary); line-height: 1.6; }

  /* --- PRINT / PDF STYLES --- */
  @media print {
    #quanzar-app { max-width: 100% !important; padding: 0 !important; }
    #quanzar-app #qz-input-view { display: none !important; }
    #quanzar-app .qz-actions { display: none !important; }
    #quanzar-app .qz-cta, #quanzar-app .qz-cta-secondary, #quanzar-app .qz-add-btn { display: none !important; }
    #quanzar-app #qz-ai-loader { display: none !important; }
    #quanzar-app #qz-load-sample, #quanzar-app #qz-clear, #quanzar-app #qz-back, #quanzar-app #qz-print, #quanzar-app #qz-help-btn { display: none !important; }
    #quanzar-app .qz-card { box-shadow: none !important; border: 1px solid #e5e7eb !important; margin-bottom: 16px !important; padding: 20px !important; page-break-inside: avoid !important; break-inside: avoid !important; }
    #quanzar-app .qz-metric { box-shadow: none !important; page-break-inside: avoid !important; break-inside: avoid !important; }
    #quanzar-app .qz-score { box-shadow: none !important; page-break-inside: avoid !important; break-inside: avoid !important; }
    #quanzar-app .qz-cta-card { box-shadow: none !important; page-break-inside: avoid !important; break-inside: avoid !important; }
    #quanzar-app .qz-metric-grid { page-break-inside: avoid !important; break-inside: avoid !important; }
    #quanzar-app .qz-breakdown-table { page-break-inside: avoid !important; }
    #quanzar-app canvas { max-height: 220px !important; page-break-inside: avoid !important; }
    #quanzar-app h1, #quanzar-app h2, #quanzar-app h3, #quanzar-app h4 { page-break-after: avoid !important; }
    #quanzar-app table { page-break-inside: avoid !important; }
    #quanzar-app .qz-brand { display: none !important; }
    #quanzar-app .qz-sub { page-break-after: avoid !important; }
  }
