{% extends 'base.html' %} {% load static %} {% block title %}Data Analyzer Agent - NetCop AI Hub{% endblock %} {% block extra_css %} {% endblock %} {% block content %} .main-container { max-width: none; padding: 0; margin-top: 0; } /* Page background */ .data-analyzer-page { background: var(--gradient-hero); min-height: calc(100vh - 80px); padding: clamp(20px, 5vw, 40px); width: 100vw; margin-left: calc(-50vw + 50%); } .container { max-width: 1280px; margin: 0 auto; padding: 0 clamp(16px, 4vw, 24px); } /* Main grid layout */ .main-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(350px, 100%), 1fr)); gap: clamp(16px, 4vw, 24px); align-items: start; } /* Card styles with glassmorphism */ .card { background: rgba(255, 255, 255, 0.9); border-radius: clamp(12px, 3vw, 16px); padding: clamp(16px, 4vw, 24px); border: 1px solid rgba(255, 255, 255, 0.3); backdrop-filter: blur(20px); box-shadow: 0 8px 25px rgba(0, 0, 0, 0.1); margin-bottom: clamp(16px, 4vw, 24px); } .section-title { font-size: clamp(16px, 4vw, 18px); font-weight: 600; color: var(--text-primary); margin-bottom: clamp(12px, 3vw, 16px); } /* Form inputs */ .form-input { width: 100%; padding: clamp(12px, 3vw, 16px) clamp(16px, 4vw, 20px); border: 2px solid var(--border-medium); border-radius: clamp(8px, 2vw, 12px); font-size: clamp(14px, 3.5vw, 16px); transition: border-color 0.2s ease; min-height: 48px; margin-bottom: clamp(12px, 3vw, 16px); } .form-input:focus { outline: none; border-color: var(--success-green); } .help-text { font-size: clamp(12px, 3vw, 14px); color: var(--text-secondary); } /* File upload zone */ .file-upload-zone { border: 2px dashed var(--border-medium); border-radius: clamp(12px, 3vw, 16px); padding: clamp(24px, 6vw, 40px); text-align: center; transition: all 0.3s ease; background: var(--background-light); cursor: pointer; margin-bottom: clamp(12px, 3vw, 16px); } .file-upload-zone.dragover { border-color: var(--success-green); background: rgba(16, 185, 129, 0.1); } .file-upload-zone:hover { border-color: var(--success-green); background: rgba(16, 185, 129, 0.1); } .file-preview { background: rgba(16, 185, 129, 0.1); border: 1px solid rgba(16, 185, 129, 0.5); border-radius: 8px; padding: 12px; margin-top: 12px; display: flex; align-items: center; gap: 12px; } /* Radio button grids */ .radio-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(180px, 100%), 1fr)); gap: clamp(8px, 2vw, 12px); } .radio-option { display: flex; align-items: center; gap: clamp(8px, 2vw, 12px); padding: clamp(12px, 3vw, 16px); border: 2px solid var(--border-light); border-radius: clamp(8px, 2vw, 12px); cursor: pointer; background: white; transition: all 0.2s ease; min-height: 44px; } .radio-option.selected { border-color: var(--success-green); background: rgba(16, 185, 129, 0.1); } .radio-option input[type="radio"] { margin: 0; } /* Processing status */ .processing-status { padding: clamp(16px, 4vw, 20px); background: rgba(16, 185, 129, 0.1); border: 1px solid var(--success-green); border-radius: clamp(8px, 2vw, 12px); color: var(--success-dark); font-weight: 600; text-align: center; margin-bottom: clamp(16px, 4vw, 24px); } /* Results card */ .results-card { background: rgba(255, 255, 255, 0.9); border-radius: 16px; padding: 24px; border: 1px solid rgba(255, 255, 255, 0.3); backdrop-filter: blur(20px); box-shadow: 0 8px 25px rgba(0, 0, 0, 0.1); margin-top: 24px; } .results-header { display: flex; align-items: center; gap: 12px; margin-bottom: 20px; } .results-content { background: var(--background-page); border: 1px solid var(--border-light); border-radius: 12px; padding: 24px; margin-bottom: 20px; white-space: pre-line; line-height: 1.7; color: var(--text-primary); font-size: 15px; } .action-buttons { display: flex; gap: 12px; margin-top: 20px; flex-wrap: wrap; } /* Button styles */ .btn { padding: clamp(12px, 3vw, 16px) clamp(20px, 5vw, 32px); border: none; border-radius: clamp(8px, 2vw, 12px); font-weight: 600; cursor: pointer; font-size: clamp(14px, 3.5vw, 16px); min-height: 48px; display: flex; align-items: center; justify-content: center; gap: 8px; transition: transform 0.1s ease; text-decoration: none; } .btn-primary { background: var(--gradient-success); color: white; flex: 1; min-width: 120px; } .btn-secondary { background: var(--background-subtle); color: var(--text-primary); border: 2px solid var(--border-medium); flex: 1; min-width: 120px; } .btn:hover { transform: translateY(-1px); } .btn:disabled { background: var(--border-strong); color: white; cursor: not-allowed; transform: none; opacity: 0.6; } /* Wallet sidebar */ .wallet-section { position: sticky; top: 20px; } .wallet-balance { font-size: clamp(24px, 6vw, 28px); font-weight: 700; color: var(--text-primary); margin-bottom: 8px; } .balance-label { font-size: clamp(14px, 3.5vw, 16px); color: var(--text-secondary); margin-bottom: clamp(16px, 4vw, 20px); } .process-btn { width: 100%; margin-bottom: 12px; } .usage-info { padding: 16px; background: rgba(16, 185, 129, 0.1); border-radius: 12px; border: 1px solid rgba(16, 185, 129, 0.2); } .usage-info h4 { margin: 0 0 8px 0; font-size: 14px; font-weight: 600; color: var(--success-dark); } .usage-info ul { margin: 0; font-size: 12px; color: var(--text-primary); line-height: 1.4; list-style: none; padding-left: 0; } .usage-info li { margin: 4px 0; padding-left: 16px; position: relative; } .usage-info li::before { content: "•"; position: absolute; left: 0; color: var(--success-green); } /* Responsive */ @media (max-width: 768px) { .main-grid { grid-template-columns: 1fr; } .radio-grid { grid-template-columns: 1fr; } .action-buttons { flex-direction: column; } } {% endblock %} {% block content %}
{% csrf_token %}

📁 Upload Your Data File

📊
Choose or drag your data file here
Supports PDF, CSV, Excel files (up to 10MB)

🔍 Analysis Type

💳 Your Wallet

{{ user.wallet_balance|floatformat:2 }} AED
Available Balance

💡 How it works

  • Upload PDF, CSV, or Excel files
  • Choose your analysis depth
  • Get AI-powered insights
  • Download comprehensive reports
{% endblock %} {% block extra_js %} {% endblock %}