/* ================================================================
   EKN Ad Analyser — Frontend Styles
   ================================================================ */

:root {
    --ekn-primary:   #1a1a2e;
    --ekn-accent:    #6c63ff;
    --ekn-accent-dk: #5b52e0;
    --ekn-green:     #22c55e;
    --ekn-amber:     #f59e0b;
    --ekn-red:       #ef4444;
    --ekn-bg:        #f8fafc;
    --ekn-card:      #ffffff;
    --ekn-border:    #e2e8f0;
    --ekn-text:      #1e293b;
    --ekn-muted:     #64748b;
    --ekn-radius:    14px;
    --ekn-shadow:    0 4px 32px rgba(0, 0, 0, .08);
}

/* ── Scoped reset ── */
.ekn-aa-wrap *,
.ekn-aa-wrap *::before,
.ekn-aa-wrap *::after {
    box-sizing: border-box;
}

.ekn-aa-wrap {
    font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
    font-size: 15px;
    color: var(--ekn-text);
    max-width: 720px;
    margin: 0 auto;
    padding: 0 16px;
    line-height: 1.6;
}

/* ── Card ── */
.ekn-aa-card {
    background: var(--ekn-card);
    border-radius: var(--ekn-radius);
    box-shadow: var(--ekn-shadow);
    padding: 44px 48px;
    margin: 24px 0;
}

@media (max-width: 600px) {
    .ekn-aa-card { padding: 28px 22px; }
}

/* ── Header ── */
.ekn-aa-header {
    text-align: center;
    margin-bottom: 36px;
}
.ekn-aa-header-icon {
    font-size: 3rem;
    margin-bottom: 10px;
}
.ekn-aa-header h2 {
    font-size: 1.75rem;
    font-weight: 800;
    margin: 0 0 10px;
    color: var(--ekn-primary);
}
.ekn-aa-header p {
    color: var(--ekn-muted);
    font-size: .95rem;
    max-width: 480px;
    margin: 0 auto;
}

/* ── Form Grid ── */
.ekn-aa-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 16px;
    margin-bottom: 18px;
}
@media (max-width: 560px) {
    .ekn-aa-grid { grid-template-columns: 1fr; }
}

/* ── Fields ── */
.ekn-aa-field {
    margin-bottom: 18px;
}
.ekn-aa-field label {
    display: block;
    font-size: .85rem;
    font-weight: 600;
    color: var(--ekn-text);
    margin-bottom: 6px;
    letter-spacing: .01em;
}
.ekn-aa-field .req  { color: var(--ekn-red); }
.ekn-aa-field .opt  { font-weight: 400; color: var(--ekn-muted); font-size: .8rem; }

.ekn-aa-field input[type="text"],
.ekn-aa-field input[type="email"],
.ekn-aa-field input[type="tel"],
.ekn-aa-field select {
    display: block;
    width: 100%;
    padding: 11px 14px;
    border: 1.5px solid var(--ekn-border);
    border-radius: 8px;
    font-size: .95rem;
    color: var(--ekn-text);
    background: #fff;
    transition: border-color .18s, box-shadow .18s;
    outline: none;
    -webkit-appearance: none;
    appearance: none;
}
.ekn-aa-field select {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%2364748b' stroke-width='2'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 12px center;
    padding-right: 36px;
}
.ekn-aa-field input:focus,
.ekn-aa-field select:focus {
    border-color: var(--ekn-accent);
    box-shadow: 0 0 0 3px rgba(108, 99, 255, .15);
}

/* ── Dropzone ── */
.ekn-dropzone {
    position: relative;
    border: 2px dashed var(--ekn-border);
    border-radius: var(--ekn-radius);
    background: var(--ekn-bg);
    transition: border-color .2s, background .2s;
    min-height: 160px;
    display: flex;
    align-items: center;
    justify-content: center;
}
.ekn-dropzone:hover,
.ekn-dropzone.drag-over {
    border-color: var(--ekn-accent);
    background: rgba(108, 99, 255, .04);
}
.ekn-dropzone input[type="file"] {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    opacity: 0;
    cursor: pointer;
    z-index: 2;
}
.ekn-dropzone-inner {
    text-align: center;
    padding: 28px 20px;
    pointer-events: none;
}
.ekn-upload-icon { font-size: 2.2rem; margin-bottom: 8px; }
.ekn-dropzone-inner p {
    margin: 4px 0;
    color: var(--ekn-muted);
    font-size: .9rem;
}
.ekn-dropzone-inner strong { color: var(--ekn-accent); }
.ekn-hint { font-size: .8rem !important; }

/* Preview */
.ekn-preview {
    padding: 16px;
    text-align: center;
    position: relative;
    width: 100%;
}
.ekn-preview img {
    max-height: 260px;
    max-width: 100%;
    border-radius: 8px;
    display: block;
    margin: 0 auto;
    box-shadow: 0 2px 12px rgba(0,0,0,.1);
}
.ekn-remove-btn {
    position: absolute;
    top: 22px;
    right: 22px;
    background: rgba(0,0,0,.65);
    color: #fff;
    border: none;
    border-radius: 20px;
    padding: 4px 12px;
    font-size: .8rem;
    cursor: pointer;
    z-index: 3;
}
.ekn-remove-btn:hover { background: rgba(0,0,0,.85); }

/* ── Consent ── */
.ekn-consent { margin-bottom: 22px; }
.ekn-checkbox-wrap {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    cursor: pointer;
    font-size: .85rem;
    color: var(--ekn-muted);
    line-height: 1.5;
}
.ekn-checkbox-wrap input[type="checkbox"] {
    margin-top: 2px;
    flex-shrink: 0;
    width: 16px;
    height: 16px;
    accent-color: var(--ekn-accent);
}

/* ── Error ── */
.ekn-error {
    background: #fef2f2;
    color: var(--ekn-red);
    border: 1px solid #fecaca;
    border-radius: 8px;
    padding: 12px 16px;
    margin-bottom: 16px;
    font-size: .9rem;
    display: none;
}

/* ── Buttons ── */
.ekn-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    font-family: inherit;
    font-size: 1rem;
    font-weight: 700;
    padding: 14px 28px;
    border-radius: 9px;
    border: none;
    cursor: pointer;
    text-decoration: none !important;
    transition: all .2s ease;
    width: 100%;
    text-align: center;
    letter-spacing: .01em;
}
.ekn-btn-primary {
    background: var(--ekn-accent);
    color: #fff !important;
}
.ekn-btn-primary:hover:not(:disabled) {
    background: var(--ekn-accent-dk);
    transform: translateY(-1px);
    box-shadow: 0 6px 20px rgba(108, 99, 255, .35);
}
.ekn-btn-primary:disabled {
    opacity: .65;
    cursor: not-allowed;
    transform: none;
    box-shadow: none;
}
.ekn-btn-outline {
    background: transparent;
    color: var(--ekn-accent) !important;
    border: 2px solid var(--ekn-accent);
    margin-top: 14px;
}
.ekn-btn-outline:hover {
    background: rgba(108, 99, 255, .08);
}

/* ── Loading card ── */
.ekn-loading-card {
    text-align: center;
    padding: 56px 40px;
}
.ekn-loading-card h3 {
    font-size: 1.25rem;
    margin: 20px 0 8px;
    color: var(--ekn-primary);
}
.ekn-loading-card > p {
    color: var(--ekn-muted);
    font-size: .9rem;
    margin: 0 0 28px;
}

/* Spinner */
.ekn-spinner {
    width: 52px;
    height: 52px;
    border: 5px solid var(--ekn-border);
    border-top-color: var(--ekn-accent);
    border-radius: 50%;
    margin: 0 auto;
    animation: ekn-spin .9s linear infinite;
}
@keyframes ekn-spin { to { transform: rotate(360deg); } }

/* Steps */
.ekn-steps {
    display: inline-block;
    text-align: left;
}
.ekn-step {
    position: relative;
    padding: 8px 16px 8px 36px;
    color: var(--ekn-muted);
    font-size: .88rem;
    margin: 3px 0;
    transition: color .3s;
}
.ekn-step::before {
    content: '○';
    position: absolute;
    left: 10px;
    font-size: .9rem;
    transition: all .3s;
}
.ekn-step.is-active {
    color: var(--ekn-accent);
    font-weight: 600;
}
.ekn-step.is-active::before {
    content: '◉';
    color: var(--ekn-accent);
}
.ekn-step.is-done {
    color: var(--ekn-green);
}
.ekn-step.is-done::before {
    content: '✓';
    color: var(--ekn-green);
    font-weight: 700;
}

/* ================================================================
   RESULTS
   ================================================================ */

.ekn-results-wrap { }

.ekn-results-header {
    text-align: center;
    margin-bottom: 32px;
}
.ekn-results-header h2 {
    font-size: 1.6rem;
    font-weight: 800;
    margin: 0 0 8px;
    color: var(--ekn-primary);
}
.ekn-results-headline {
    color: var(--ekn-muted);
    font-style: italic;
    font-size: .95rem;
    margin: 0;
}

/* Score row */
.ekn-score-row {
    display: flex;
    align-items: flex-start;
    gap: 32px;
    margin-bottom: 32px;
}
@media (max-width: 560px) {
    .ekn-score-row {
        flex-direction: column;
        align-items: center;
    }
}

/* Score circle */
.ekn-score-circle-wrap {
    flex-shrink: 0;
    position: relative;
    width: 148px;
    height: 148px;
}
.ekn-score-svg {
    width: 148px;
    height: 148px;
    transform: rotate(-90deg);
}
.ekn-score-track {
    fill: none;
    stroke: #e5e7eb;
    stroke-width: 10;
}
.ekn-score-arc {
    fill: none;
    stroke-width: 10;
    stroke-linecap: round;
    stroke-dasharray: 0 314;
    transition: stroke-dasharray 1.4s cubic-bezier(.34,1.56,.64,1);
}
.ekn-score-inner {
    position: absolute;
    inset: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
}
.ekn-score-number {
    font-size: 2.2rem;
    font-weight: 900;
    line-height: 1;
}
.ekn-score-denom {
    font-size: .75rem;
    color: var(--ekn-muted);
}
.ekn-grade-pill {
    position: absolute;
    bottom: 0;
    left: 50%;
    transform: translateX(-50%);
    color: #fff;
    font-weight: 800;
    font-size: .85rem;
    padding: 2px 14px;
    border-radius: 20px;
    white-space: nowrap;
}

/* Sub-scores mini */
.ekn-sub-scores {
    flex: 1;
}
.ekn-sub-scores h3 {
    font-size: .9rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .06em;
    color: var(--ekn-muted);
    margin: 0 0 12px;
}
.ekn-sub-bar {
    margin-bottom: 10px;
}
.ekn-sub-bar-label {
    display: flex;
    justify-content: space-between;
    font-size: .82rem;
    font-weight: 600;
    margin-bottom: 4px;
}
.ekn-sub-bar-track {
    background: #e5e7eb;
    border-radius: 4px;
    height: 7px;
    overflow: hidden;
}
.ekn-sub-bar-fill {
    height: 7px;
    border-radius: 4px;
    width: 0;
    transition: width 1s ease .3s;
}

/* Strengths / Improvements */
.ekn-feedback-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
    margin-bottom: 28px;
}
@media (max-width: 560px) {
    .ekn-feedback-grid { grid-template-columns: 1fr; }
}

.ekn-feedback-col h4 {
    font-size: .85rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .06em;
    margin: 0 0 10px;
}
.ekn-feedback-col.strengths h4    { color: #16a34a; }
.ekn-feedback-col.improvements h4 { color: #d97706; }

.ekn-feedback-item {
    display: flex;
    gap: 8px;
    align-items: flex-start;
    background: var(--ekn-bg);
    border-radius: 8px;
    padding: 10px 12px;
    margin-bottom: 8px;
    font-size: .875rem;
    line-height: 1.5;
}
.ekn-feedback-item .fi-icon {
    flex-shrink: 0;
    font-size: 1rem;
    margin-top: 1px;
}

/* ── Heatmap ── */
.ekn-heatmap-section {
    background: var(--ekn-bg);
    border-radius: var(--ekn-radius);
    padding: 24px;
    margin-bottom: 28px;
}
.ekn-heatmap-section h3 {
    margin: 0 0 6px;
    font-size: 1.05rem;
    font-weight: 700;
}
.ekn-heatmap-section .ekn-ht-desc {
    color: var(--ekn-muted);
    font-size: .85rem;
    margin: 0 0 16px;
}
.ekn-heatmap-canvas-wrap {
    text-align: center;
}
.ekn-heatmap-canvas-wrap canvas {
    max-width: 100%;
    border-radius: 8px;
    box-shadow: 0 2px 16px rgba(0,0,0,.12);
}
.ekn-heatmap-legend {
    display: flex;
    gap: 18px;
    justify-content: center;
    flex-wrap: wrap;
    margin-top: 12px;
    font-size: .8rem;
    color: var(--ekn-muted);
}
.ekn-legend-hot  { color: #ef4444; font-weight: 600; }
.ekn-legend-warm { color: #f59e0b; font-weight: 600; }
.ekn-legend-cool { color: #3b82f6; font-weight: 600; }

/* ── Email notice ── */
.ekn-email-notice {
    display: flex;
    align-items: center;
    gap: 16px;
    background: #f0fdf4;
    border: 1px solid #bbf7d0;
    border-radius: var(--ekn-radius);
    padding: 18px 22px;
    margin-bottom: 24px;
}
.ekn-email-notice .en-icon { font-size: 2rem; flex-shrink: 0; }
.ekn-email-notice h4 { margin: 0 0 4px; font-size: .95rem; color: #166534; }
.ekn-email-notice p  { margin: 0; font-size: .85rem; color: #16a34a; }

/* ── CTA box ── */
.ekn-cta-box {
    background: linear-gradient(135deg, var(--ekn-primary) 0%, #2d2b55 100%);
    border-radius: var(--ekn-radius);
    padding: 32px;
    text-align: center;
    margin-bottom: 16px;
}
.ekn-cta-box h3 { color: #fff; margin: 0 0 8px; font-size: 1.15rem; }
.ekn-cta-box p  { color: rgba(255,255,255,.75); margin: 0 0 22px; font-size: .9rem; }
.ekn-cta-box .ekn-btn {
    width: auto;
    display: inline-flex;
    background: #fff;
    color: var(--ekn-primary) !important;
}
.ekn-cta-box .ekn-btn:hover {
    background: #f1f5f9;
    box-shadow: 0 4px 14px rgba(255,255,255,.3);
    transform: translateY(-1px);
}

/* ================================================================
   v2.0 ADDITIONS: Tooltips · Mode Toggle · Comparison · Share
   ================================================================ */

/* ── Mode Toggle ── */
.ekn-mode-toggle { display:flex; gap:10px; justify-content:center; margin-top:18px; }
.ekn-mode-btn {
    padding:9px 22px; border-radius:30px; border:2px solid var(--ekn-border);
    background:#fff; font-size:.88rem; font-weight:600; cursor:pointer;
    color:var(--ekn-muted); transition:all .2s;
}
.ekn-mode-btn.active {
    background:var(--ekn-accent); color:#fff; border-color:var(--ekn-accent);
}
.ekn-mode-btn:hover:not(.active) { border-color:var(--ekn-accent); color:var(--ekn-accent); }

/* ── Compare Grid ── */
.ekn-compare-grid { display:grid; grid-template-columns:1fr 1fr; gap:16px; }
@media(max-width:560px){ .ekn-compare-grid { grid-template-columns:1fr; } }

/* ── Tooltips ── */
.ekn-tooltip-wrap {
    position:relative; display:inline-flex; align-items:center; gap:5px; cursor:default;
}
.ekn-tooltip-icon {
    font-size:.8rem; opacity:.6; cursor:help; flex-shrink:0;
    transition:opacity .2s;
}
.ekn-tooltip-wrap:hover .ekn-tooltip-icon { opacity:1; }
.ekn-tooltip-box {
    display:none;
    position:absolute; bottom:calc(100% + 8px); left:0;
    background:#1a1a2e; color:#fff; font-size:.78rem; line-height:1.55;
    padding:10px 14px; border-radius:8px; width:260px; z-index:999;
    box-shadow:0 4px 20px rgba(0,0,0,.25); font-weight:400;
    pointer-events:none;
}
.ekn-tooltip-box::after {
    content:''; position:absolute; top:100%; left:16px;
    border:6px solid transparent; border-top-color:#1a1a2e;
}
.ekn-tooltip-wrap:hover .ekn-tooltip-box { display:block; }

/* ── Comparison Results ── */
.ekn-cmp-header-row {
    display:flex; align-items:center; justify-content:space-between;
    gap:16px; margin-bottom:20px; flex-wrap:wrap;
}
.ekn-cmp-ad-label {
    display:flex; align-items:center; gap:14px; flex:1;
}
.ekn-cmp-ad-label:last-child { flex-direction:row-reverse; text-align:right; }
.ekn-cmp-thumb {
    width:90px; height:90px; object-fit:cover; border-radius:8px;
    border:2px solid var(--ekn-border); flex-shrink:0;
}
.ekn-cmp-overall { font-size:1rem; font-weight:700; margin-top:4px; }
.ekn-cmp-vs {
    font-size:1.4rem; font-weight:900; color:var(--ekn-muted);
    background:var(--ekn-bg); border-radius:50%; width:48px; height:48px;
    display:flex; align-items:center; justify-content:center;
    border:2px solid var(--ekn-border); flex-shrink:0;
}
.ekn-winner-banner {
    border:2px solid; border-radius:10px; padding:14px 18px;
    font-size:.95rem; margin-bottom:24px; text-align:center;
}
.ekn-cmp-metrics { margin-bottom:24px; }
.ekn-cmp-axis {
    display:grid; grid-template-columns:1fr 2fr 1fr;
    font-size:.75rem; font-weight:700; text-transform:uppercase;
    letter-spacing:.06em; color:var(--ekn-muted); margin-bottom:8px;
    text-align:center;
}
.ekn-cmp-axis span:first-child { text-align:left; }
.ekn-cmp-axis span:last-child  { text-align:right; }
.ekn-cmp-row { display:grid; grid-template-columns:1fr 2fr 1fr; align-items:center; margin-bottom:12px; gap:10px; }
.ekn-cmp-label { font-size:.82rem; font-weight:600; }
.ekn-cmp-bar-wrap { display:flex; align-items:center; gap:8px; }
.ekn-cmp-score { font-size:.85rem; font-weight:700; min-width:28px; text-align:center; }
.ekn-cmp-score.ekn-cmp-win { font-size:1rem; }
.ekn-cmp-bars { flex:1; display:flex; flex-direction:column; gap:4px; }
.ekn-cmp-bar-a, .ekn-cmp-bar-b {
    height:7px; background:#e5e7eb; border-radius:4px; overflow:hidden;
}
.ekn-cmp-bar-b .ekn-cmp-fill { border-radius:4px; height:7px; }
.ekn-cmp-bar-a .ekn-cmp-fill { border-radius:4px; height:7px; }

/* ── Social Share ── */
.ekn-share-section {
    background:var(--ekn-bg); border-radius:var(--ekn-radius);
    padding:22px 24px; margin-bottom:24px; text-align:center;
}
.ekn-share-section h4 { margin:0 0 6px; font-size:1rem; color:var(--ekn-primary); }
.ekn-share-section p  { margin:0 0 16px; font-size:.85rem; color:var(--ekn-muted); }
.ekn-share-btns { display:flex; gap:12px; justify-content:center; flex-wrap:wrap; }
.ekn-share-btn {
    display:inline-flex; align-items:center; gap:8px;
    padding:10px 20px; border-radius:8px; font-size:.88rem; font-weight:700;
    text-decoration:none !important; transition:all .2s;
}
.ekn-share-btn svg { width:18px; height:18px; flex-shrink:0; }
.ekn-share-li { background:#0a66c2; color:#fff !important; }
.ekn-share-li:hover { background:#004182; transform:translateY(-1px); box-shadow:0 4px 14px rgba(10,102,194,.35); }
.ekn-share-x  { background:#000; color:#fff !important; }
.ekn-share-x:hover  { background:#333; transform:translateY(-1px); box-shadow:0 4px 14px rgba(0,0,0,.3); }
