{"__meta":{"id":"01KZXV12C4FTHK3E261H1D6CNS","tabUuid":null,"batchId":null,"timestamp":"2026-08-13T15:14:38.596Z","utime":1786634078.596974,"method":"GET","url":"http://127.0.0.1:8000/trades/27","component":null,"requestType":"http","status":200,"redirectLocation":null,"serverTimingMs":7.387417,"visitId":null},"http":{"requestHeaders":{"host":"127.0.0.1:8000","connection":"keep-alive","sec-ch-ua":"\"Not=A?Brand\";v=\"99\", \"Google Chrome\";v=\"151\", \"Chromium\";v=\"151\"","sec-ch-ua-mobile":"?0","sec-ch-ua-platform":"\"macOS\"","upgrade-insecure-requests":"1","user-agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","accept":"text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7","sec-fetch-site":"same-origin","sec-fetch-mode":"navigate","sec-fetch-user":"?1","sec-fetch-dest":"document","referer":"http://127.0.0.1:8000/trades","accept-encoding":"gzip, deflate, br, zstd","accept-language":"fr-FR,fr;q=0.9,en-US;q=0.8,en;q=0.7","cookie":"[REDACTED]"},"responseHeaders":{"content-type":"text/html; charset=utf-8","cache-control":"no-cache, private","date":"Thu, 13 Aug 2026 15:14:38 GMT","vary":"X-Inertia","x-inertia-devtools-id":"01KZXV12C4FTHK3E261H1D6CNS","x-inertia-devtools-parent-out":"01KZXV12C4FTHK3E261H1D6CNS"},"requestBody":{"status":"empty"},"responseBody":{"status":"present","value":"<!DOCTYPE html>\n<html lang=\"fr\" data-theme=\"dark\">\n<head>\n    <meta charset=\"UTF-8\">\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n\n    <title>Fiche trade — ICT Performance Lab</title>\n\n    <script>\n        (() => {\n            const savedTheme = localStorage.getItem('ict-theme') || 'dark';\n            document.documentElement.dataset.theme = savedTheme;\n        })();\n    </script>\n\n    <style>\n        :root,\n        html[data-theme=\"dark\"] {\n            --bg-base: #070b12;\n            --bg-surface: #0d1420;\n            --bg-elevated: #111a2b;\n            --bg-hover: #162033;\n\n            --border: rgba(255, 255, 255, 0.06);\n            --border-strong: rgba(255, 255, 255, 0.10);\n\n            --text-primary: #e8edf5;\n            --text-secondary: #8b9cb8;\n            --text-muted: #5c6b82;\n\n            --accent: #3b82f6;\n            --accent-hover: #2563eb;\n            --accent-light: #60a5fa;\n            --accent-glow: rgba(59, 130, 246, 0.22);\n\n            --positive: #22c55e;\n            --negative: #ef4444;\n\n            --long: #22c55e;\n            --long-bg: rgba(34, 197, 94, 0.10);\n\n            --short: #ef4444;\n            --short-bg: rgba(239, 68, 68, 0.10);\n\n            --radius: 10px;\n            --radius-sm: 6px;\n\n            --font-sans:\n                -apple-system,\n                BlinkMacSystemFont,\n                \"Segoe UI\",\n                Roboto,\n                \"Helvetica Neue\",\n                Arial,\n                sans-serif;\n\n            --font-mono:\n                \"SF Mono\",\n                \"Fira Code\",\n                \"Roboto Mono\",\n                monospace;\n        }\n\n        html[data-theme=\"light\"] {\n            --bg-base: #f4f6fa;\n            --bg-surface: #ffffff;\n            --bg-elevated: #f8fafc;\n            --bg-hover: #edf1f6;\n\n            --border: rgba(15, 23, 42, 0.08);\n            --border-strong: rgba(15, 23, 42, 0.14);\n\n            --text-primary: #172033;\n            --text-secondary: #64748b;\n            --text-muted: #94a3b8;\n\n            --accent: #2563eb;\n            --accent-hover: #1d4ed8;\n            --accent-light: #3b82f6;\n            --accent-glow: rgba(37, 99, 235, 0.16);\n\n            --positive: #16a34a;\n            --negative: #dc2626;\n\n            --long: #16a34a;\n            --long-bg: rgba(22, 163, 74, 0.09);\n\n            --short: #dc2626;\n            --short-bg: rgba(220, 38, 38, 0.08);\n        }\n\n        * {\n            box-sizing: border-box;\n        }\n\n        html {\n            font-size: 15px;\n        }\n\n        body {\n            margin: 0;\n            min-height: 100vh;\n\n            font-family: var(--font-sans);\n\n            background: var(--bg-base);\n            color: var(--text-primary);\n\n            line-height: 1.5;\n            -webkit-font-smoothing: antialiased;\n\n            transition:\n                background-color 0.2s ease,\n                color 0.2s ease;\n        }\n\n        body::before {\n            content: \"\";\n\n            position: fixed;\n            inset: 0;\n\n            background:\n                radial-gradient(\n                    ellipse 80% 50% at 50% -20%,\n                    rgba(59, 130, 246, 0.08),\n                    transparent\n                ),\n                radial-gradient(\n                    ellipse 60% 40% at 100% 100%,\n                    rgba(34, 197, 94, 0.04),\n                    transparent\n                );\n\n            pointer-events: none;\n            z-index: -1;\n        }\n\n        .app-topbar {\n            position: sticky;\n            top: 0;\n            z-index: 100;\n\n            display: flex;\n            align-items: center;\n            justify-content: space-between;\n\n            gap: 1rem;\n\n            padding: 0.75rem 1.25rem;\n\n            background: var(--bg-surface);\n\n            border-bottom: 1px solid var(--border);\n\n            box-shadow: 0 5px 25px rgba(0, 0, 0, 0.08);\n        }\n\n        .app-brand {\n            display: flex;\n            flex-direction: column;\n\n            text-decoration: none;\n        }\n\n        .app-brand__name {\n            color: var(--text-primary);\n\n            font-size: 0.9rem;\n            font-weight: 750;\n\n            line-height: 1.2;\n        }\n\n        .app-brand__author {\n            margin-top: 0.15rem;\n\n            color: var(--accent);\n\n            font-size: 0.62rem;\n            font-weight: 650;\n\n            letter-spacing: 0.13em;\n            text-transform: uppercase;\n        }\n\n        .theme-selector {\n            display: flex;\n            align-items: center;\n\n            gap: 0.25rem;\n\n            padding: 0.25rem;\n\n            background: var(--bg-elevated);\n\n            border: 1px solid var(--border-strong);\n            border-radius: 8px;\n        }\n\n        .theme-button {\n            appearance: none;\n\n            border: none;\n\n            padding: 0.45rem 0.75rem;\n\n            background: transparent;\n            color: var(--text-secondary);\n\n            border-radius: 6px;\n\n            font-family: var(--font-sans);\n            font-size: 0.78rem;\n            font-weight: 650;\n\n            cursor: pointer;\n\n            transition:\n                background 0.15s ease,\n                color 0.15s ease,\n                box-shadow 0.15s ease;\n        }\n\n        .theme-button:hover {\n            background: var(--bg-hover);\n            color: var(--text-primary);\n        }\n\n        .theme-button.is-active {\n            background: var(--accent);\n            color: #ffffff;\n\n            box-shadow:\n                0 4px 14px var(--accent-glow);\n        }\n\n        .app-content {\n            position: relative;\n            z-index: 1;\n            width: 100%;\n        }\n\n        @media (max-width: 650px) {\n            .app-topbar {\n                flex-direction: column;\n                align-items: stretch;\n            }\n\n            .theme-selector {\n                width: 100%;\n            }\n\n            .theme-button {\n                flex: 1;\n            }\n        }\n\n            .page {\n        max-width: 1050px;\n        margin: 0 auto;\n        padding: 2rem 1.5rem 3rem;\n    }\n\n    .header {\n        display: flex;\n        align-items: flex-start;\n        justify-content: space-between;\n        gap: 1.5rem;\n        margin-bottom: 2rem;\n        flex-wrap: wrap;\n    }\n\n    .header__brand {\n        display: flex;\n        flex-direction: column;\n        gap: 0.35rem;\n    }\n\n    .header__eyebrow {\n        font-size: 0.7rem;\n        font-weight: 600;\n        letter-spacing: 0.14em;\n        text-transform: uppercase;\n        color: var(--accent);\n    }\n\n    .header__title {\n        margin: 0;\n        font-size: clamp(1.6rem, 4vw, 2.1rem);\n        font-weight: 700;\n        letter-spacing: -0.02em;\n    }\n\n    .header__subtitle {\n        margin: 0.15rem 0 0;\n        font-size: 0.95rem;\n        color: var(--text-secondary);\n    }\n\n    .header__actions {\n        display: flex;\n        align-items: center;\n        gap: 0.75rem;\n        flex-wrap: wrap;\n    }\n\n    .btn {\n        display: inline-flex;\n        align-items: center;\n        justify-content: center;\n        gap: 0.5rem;\n\n        min-height: 42px;\n        padding: 0.7rem 1.2rem;\n\n        font-size: 0.875rem;\n        font-weight: 650;\n\n        text-decoration: none;\n\n        border-radius: var(--radius-sm);\n        border: 1px solid transparent;\n\n        cursor: pointer;\n\n        transition:\n            background 0.15s ease,\n            box-shadow 0.15s ease,\n            transform 0.1s ease,\n            border-color 0.15s ease,\n            color 0.15s ease;\n\n        white-space: nowrap;\n    }\n\n    .btn:active {\n        transform: scale(0.98);\n    }\n\n    .btn--ghost {\n        background: var(--bg-elevated);\n        color: var(--text-secondary);\n        border-color: var(--border-strong);\n    }\n\n    .btn--ghost:hover {\n        background: var(--bg-hover);\n        color: var(--text-primary);\n    }\n\n    .btn--edit {\n        background: linear-gradient(\n            135deg,\n            var(--accent-light),\n            var(--accent)\n        );\n\n        color: #ffffff;\n\n        border-color: rgba(96, 165, 250, 0.55);\n\n        box-shadow:\n            0 0 0 1px rgba(59, 130, 246, 0.15),\n            0 10px 30px rgba(37, 99, 235, 0.32);\n\n        font-weight: 750;\n    }\n\n    .btn--edit:hover {\n        background: linear-gradient(\n            135deg,\n            #75b6ff,\n            var(--accent-hover)\n        );\n\n        box-shadow:\n            0 0 0 1px rgba(96, 165, 250, 0.25),\n            0 12px 36px rgba(59, 130, 246, 0.42);\n\n        transform: translateY(-1px);\n    }\n\n    .btn--addin {\n        background: rgba(34, 197, 94, 0.10);\n        color: #16a34a;\n        border-color: rgba(34, 197, 94, 0.35);\n        font-weight: 750;\n    }\n\n    .btn--addin:hover {\n        background: rgba(34, 197, 94, 0.16);\n        border-color: rgba(34, 197, 94, 0.55);\n        transform: translateY(-1px);\n    }\n\n    .btn--disabled {\n        opacity: 0.55;\n        cursor: not-allowed;\n        pointer-events: none;\n        background: var(--bg-elevated);\n        color: var(--text-muted);\n        border-color: var(--border-strong);\n        box-shadow: none;\n    }\n\n    .btn__icon {\n        font-size: 1rem;\n        line-height: 1;\n    }\n\n    .summary {\n        background: var(--bg-surface);\n        border: 1px solid var(--border);\n        border-radius: var(--radius);\n        padding: 1.5rem;\n        margin-bottom: 1.5rem;\n    }\n\n    .summary__top {\n        display: flex;\n        align-items: flex-start;\n        justify-content: space-between;\n        gap: 1rem;\n        flex-wrap: wrap;\n        margin-bottom: 1.25rem;\n    }\n\n    .summary__asset {\n        font-family: var(--font-mono);\n        font-size: 1.75rem;\n        font-weight: 700;\n        letter-spacing: -0.02em;\n    }\n\n    .summary__meta {\n        display: flex;\n        align-items: center;\n        gap: 0.5rem;\n        flex-wrap: wrap;\n        margin-top: 0.5rem;\n    }\n\n    .summary__date {\n        font-size: 0.875rem;\n        color: var(--text-secondary);\n    }\n\n    .summary__kpis {\n        display: grid;\n        grid-template-columns: repeat(4, 1fr);\n        gap: 1rem;\n    }\n\n    .kpi {\n        background: var(--bg-elevated);\n        border: 1px solid var(--border);\n        border-radius: var(--radius-sm);\n        padding: 0.85rem 1rem;\n    }\n\n    .kpi__label {\n        font-size: 0.68rem;\n        font-weight: 600;\n        letter-spacing: 0.08em;\n        text-transform: uppercase;\n        color: var(--text-muted);\n        margin-bottom: 0.35rem;\n    }\n\n    .kpi__value {\n        font-family: var(--font-mono);\n        font-size: 1.05rem;\n        font-weight: 600;\n    }\n\n    .kpi__value--positive {\n        color: var(--positive);\n    }\n\n    .kpi__value--negative {\n        color: var(--negative);\n    }\n\n    .kpi__value--muted {\n        color: var(--text-muted);\n        font-weight: 400;\n    }\n\n    .detail-card {\n        background: var(--bg-surface);\n        border: 1px solid var(--border);\n        border-radius: var(--radius);\n        overflow: hidden;\n    }\n\n    .detail-section + .detail-section {\n        border-top: 1px solid var(--border);\n    }\n\n    .detail-section__header {\n        padding: 1rem 1.5rem;\n        background: var(--bg-elevated);\n        border-bottom: 1px solid var(--border);\n    }\n\n    .detail-section__title {\n        margin: 0;\n        font-size: 0.75rem;\n        font-weight: 600;\n        letter-spacing: 0.1em;\n        text-transform: uppercase;\n        color: var(--text-muted);\n    }\n\n    .detail-section__body {\n        padding: 1.5rem;\n    }\n\n    .detail-grid {\n        display: grid;\n        grid-template-columns: repeat(2, 1fr);\n        gap: 1.25rem;\n    }\n\n    .detail-grid--3 {\n        grid-template-columns: repeat(3, 1fr);\n    }\n\n    .detail-grid--1 {\n        grid-template-columns: 1fr;\n    }\n\n    .detail-field {\n        display: flex;\n        flex-direction: column;\n        gap: 0.35rem;\n    }\n\n    .detail-field__label {\n        font-size: 0.8rem;\n        font-weight: 600;\n        color: var(--text-secondary);\n    }\n\n    .detail-field__value {\n        font-size: 0.9rem;\n        color: var(--text-primary);\n        line-height: 1.55;\n    }\n\n    .detail-field__value--mono {\n        font-family: var(--font-mono);\n    }\n\n    .detail-field__value--text {\n        background: var(--bg-base);\n        border: 1px solid var(--border-strong);\n        border-radius: var(--radius-sm);\n        padding: 0.75rem 0.85rem;\n        white-space: pre-wrap;\n        min-height: 2.5rem;\n    }\n\n    .detail-field__value--text.is-empty::before {\n        content: \"—\";\n        color: var(--text-muted);\n    }\n\n    .badge {\n        display: inline-block;\n        padding: 0.2rem 0.55rem;\n        border-radius: 4px;\n        font-size: 0.75rem;\n        font-weight: 600;\n        white-space: nowrap;\n    }\n\n    .badge--long {\n        background: var(--long-bg);\n        color: var(--long);\n    }\n\n    .badge--short {\n        background: var(--short-bg);\n        color: var(--short);\n    }\n\n    .badge--neutral {\n        background: rgba(100, 116, 139, 0.15);\n        color: var(--text-secondary);\n    }\n\n    .badge--success {\n        background: rgba(34, 197, 94, 0.12);\n        color: #4ade80;\n    }\n\n    .badge--danger {\n        background: rgba(239, 68, 68, 0.12);\n        color: #f87171;\n    }\n\n    .badge--accent {\n        background: rgba(59, 130, 246, 0.12);\n        color: #60a5fa;\n    }\n\n    .badge--warning {\n        background: rgba(234, 179, 8, 0.12);\n        color: #facc15;\n    }\n\n    .badge--grade-a {\n        background: rgba(34, 197, 94, 0.12);\n        color: #4ade80;\n    }\n\n    .badge--grade-b {\n        background: rgba(59, 130, 246, 0.12);\n        color: #60a5fa;\n    }\n\n    .badge--grade-c {\n        background: rgba(234, 179, 8, 0.12);\n        color: #facc15;\n    }\n\n    .badge--grade-d {\n        background: rgba(239, 68, 68, 0.12);\n        color: #f87171;\n    }\n\n    .confirm-grid {\n        display: grid;\n        grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));\n        gap: 0.75rem;\n    }\n\n    .confirm-item {\n        display: flex;\n        align-items: center;\n        gap: 0.6rem;\n        padding: 0.65rem 0.85rem;\n        background: var(--bg-base);\n        border: 1px solid var(--border-strong);\n        border-radius: var(--radius-sm);\n    }\n\n    .confirm-item--active {\n        border-color: rgba(34, 197, 94, 0.3);\n        background: rgba(34, 197, 94, 0.06);\n    }\n\n    .confirm-item--inactive {\n        opacity: 0.55;\n    }\n\n    .confirm-item__icon {\n        width: 18px;\n        height: 18px;\n        border-radius: 4px;\n        display: flex;\n        align-items: center;\n        justify-content: center;\n        font-size: 0.7rem;\n        font-weight: 700;\n        flex-shrink: 0;\n    }\n\n    .confirm-item--active .confirm-item__icon {\n        background: rgba(34, 197, 94, 0.2);\n        color: var(--long);\n    }\n\n    .confirm-item--inactive .confirm-item__icon {\n        background: rgba(255, 255, 255, 0.06);\n        color: var(--text-muted);\n    }\n\n    html[data-theme=\"light\"] .confirm-item--inactive .confirm-item__icon {\n        background: rgba(15, 23, 42, 0.06);\n    }\n\n    .confirm-item__label {\n        font-size: 0.85rem;\n        color: var(--text-primary);\n    }\n\n    .discipline-bar {\n        display: flex;\n        align-items: center;\n        gap: 0.75rem;\n    }\n\n    .discipline-bar__track {\n        flex: 1;\n        max-width: 140px;\n        height: 7px;\n        background: rgba(255, 255, 255, 0.08);\n        border-radius: 4px;\n        overflow: hidden;\n    }\n\n    html[data-theme=\"light\"] .discipline-bar__track {\n        background: rgba(15, 23, 42, 0.08);\n    }\n\n    .discipline-bar__fill {\n        height: 100%;\n        border-radius: 4px;\n        background: linear-gradient(\n            90deg,\n            var(--accent),\n            var(--accent-light)\n        );\n    }\n\n    .discipline-bar__value {\n        font-family: var(--font-mono);\n        font-size: 0.9rem;\n        font-weight: 600;\n    }\n\n    .meta-footer {\n        margin-top: 1.5rem;\n        padding-top: 1rem;\n        border-top: 1px solid var(--border);\n        display: flex;\n        flex-wrap: wrap;\n        gap: 1.5rem;\n        font-size: 0.78rem;\n        color: var(--text-muted);\n    }\n\n    .footer {\n        margin-top: 2rem;\n        text-align: center;\n        font-size: 0.75rem;\n        color: var(--text-muted);\n        letter-spacing: 0.04em;\n    }\n\n    @media (max-width: 768px) {\n        .detail-grid,\n        .detail-grid--3,\n        .summary__kpis {\n            grid-template-columns: 1fr 1fr;\n        }\n\n        .header {\n            flex-direction: column;\n            align-items: stretch;\n        }\n\n        .header__actions {\n            width: 100%;\n        }\n\n        .header__actions .btn {\n            flex: 1;\n        }\n    }\n\n    @media (max-width: 640px) {\n        .page {\n            padding: 1.25rem 1rem 2rem;\n        }\n\n        .detail-grid,\n        .detail-grid--3,\n        .summary__kpis {\n            grid-template-columns: 1fr;\n        }\n\n        .header__actions {\n            flex-direction: column;\n        }\n\n        .header__actions .btn {\n            width: 100%;\n        }\n    }\n    </style>\n<script id=\"browser-logger-active\">\n(function() {\n    const ENDPOINT = 'http://127.0.0.1:8000/_boost/browser-logs';\n    const logQueue = [];\n    let flushTimeout = null;\n    const captureTypes = [\"error\",\"warning\",\"info\",\"log\",\"debug\",\"table\"];\n\n    console.log('🔍 Browser logger active (MCP server detected). Posting to: ' + ENDPOINT);\n\n    // Store original console methods\n    const originalConsole = {\n        log: console.log,\n        debug: console.debug,\n        info: console.info,\n        error: console.error,\n        warn: console.warn,\n        table: console.table\n    };\n\n    // Helper to safely stringify values\n    function safeStringify(obj) {\n        const seen = new WeakSet();\n        return JSON.stringify(obj, (key, value) => {\n            if (typeof value === 'object' && value !== null) {\n                if (seen.has(value)) return '[Circular]';\n                seen.add(value);\n            }\n            if (value instanceof Error) {\n                return {\n                    name: value.name,\n                    message: value.message,\n                    stack: value.stack\n                };\n            }\n            return value;\n        });\n    }\n\n    // Normalize log type for consistency (e.g., 'warn' to 'warning')\n    function normalizeType(type) {\n        return type === 'warn' ? 'warning' : type;\n    }\n\n    // Determine if a log type should be captured based on configured levels\n    function shouldCapture(type) {\n        return captureTypes.includes(normalizeType(type));\n    }\n\n    // Batch and send logs\n    function flushLogs() {\n        if (logQueue.length === 0) return;\n\n        const batch = logQueue.splice(0, logQueue.length);\n\n        fetch(ENDPOINT, {\n            method: 'POST',\n            headers: {\n                'Content-Type': 'application/json',\n                'X-Requested-With': 'XMLHttpRequest'\n            },\n            body: JSON.stringify({ logs: batch })\n        }).catch(err => {\n            // Silently fail to avoid infinite loops\n            originalConsole.error('Failed to send logs:', err);\n        });\n    }\n\n    // Debounced flush (100ms)\n    function scheduleFlush() {\n        if (flushTimeout) clearTimeout(flushTimeout);\n        flushTimeout = setTimeout(flushLogs, 100);\n    }\n\n    // Intercept console methods\n    ['log', 'debug', 'info', 'error', 'warn', 'table'].forEach(method => {\n        console[method] = function(...args) {\n            // Call original method\n            originalConsole[method].apply(console, args);\n\n            // Capture log data\n            try {\n                if (!shouldCapture(method)) {\n                    return;\n                }\n\n                logQueue.push({\n                    type: method,\n                    timestamp: new Date().toISOString(),\n                    data: args.map(arg => {\n                        try {\n                            return typeof arg === 'object' ? JSON.parse(safeStringify(arg)) : arg;\n                        } catch (e) {\n                            return String(arg);\n                        }\n                    }),\n                    url: window.location.href,\n                    userAgent: navigator.userAgent\n                });\n\n                scheduleFlush();\n            } catch (e) {\n                // Fail silently\n            }\n        };\n    });\n\n    // Global error handlers for uncaught errors\n    const originalOnError = window.onerror;\n    window.onerror = function boostErrorHandler(errorMsg, url, lineNumber, colNumber, error) {\n        try {\n            if (shouldCapture('error')) {\n                logQueue.push({\n                    type: 'uncaught_error',\n                    timestamp: new Date().toISOString(),\n                    data: [{\n                        message: errorMsg,\n                        filename: url,\n                        lineno: lineNumber,\n                        colno: colNumber,\n                        error: error ? {\n                            name: error.name,\n                            message: error.message,\n                            stack: error.stack\n                        } : null\n                    }],\n                    url: window.location.href,\n                    userAgent: navigator.userAgent\n                });\n\n                scheduleFlush();\n            }\n\n        } catch (e) {\n            // Fail silently\n        }\n\n        // Call original handler if it exists\n        if (originalOnError && typeof originalOnError === 'function') {\n            return originalOnError(errorMsg, url, lineNumber, colNumber, error);\n        }\n\n        // Let the error continue to propagate\n        return false;\n    }\n    window.addEventListener('error', (event) => {\n        try {\n            if (!shouldCapture('error')) {\n                return false;\n            }\n\n            logQueue.push({\n                type: 'window_error',\n                timestamp: new Date().toISOString(),\n                data: [{\n                    message: event.message,\n                    filename: event.filename,\n                    lineno: event.lineno,\n                    colno: event.colno,\n                    error: event.error ? {\n                        name: event.error.name,\n                        message: event.error.message,\n                        stack: event.error.stack\n                    } : null\n                }],\n                url: window.location.href,\n                userAgent: navigator.userAgent\n            });\n\n            scheduleFlush();\n        } catch (e) {\n            // Fail silently\n        }\n\n        // Let the error continue to propagate\n        return false;\n    });\n    window.addEventListener('unhandledrejection', (event) => {\n        try {\n            if (!shouldCapture('error')) {\n                return false;\n            }\n\n            logQueue.push({\n                type: 'error',\n                timestamp: new Date().toISOString(),\n                data: [{\n                    message: 'Unhandled Promise Rejection',\n                    reason: event.reason instanceof Error ? {\n                        name: event.reason.name,\n                        message: event.reason.message,\n                        stack: event.reason.stack\n                    } : event.reason\n                }],\n                url: window.location.href,\n                userAgent: navigator.userAgent\n            });\n\n            scheduleFlush();\n        } catch (e) {\n            // Fail silently\n        }\n\n        // Let the rejection continue to propagate\n        return false;\n    });\n\n    // Flush on page unload\n    window.addEventListener('beforeunload', () => {\n        if (logQueue.length > 0) {\n            navigator.sendBeacon(ENDPOINT, JSON.stringify({ logs: logQueue }));\n        }\n    });\n})();\n</script>\n</head>\n\n<body>\n\n<header class=\"app-topbar\">\n\n    <a\n        href=\"http://127.0.0.1:8000/trades\"\n        class=\"app-brand\"\n    >\n        <span class=\"app-brand__name\">\n            ICT Performance Lab\n        </span>\n\n        <span class=\"app-brand__author\">\n            by Jul\n        </span>\n    </a>\n\n    <div\n        class=\"theme-selector\"\n        aria-label=\"Thème de l'application\"\n    >\n\n        <button\n            type=\"button\"\n            class=\"theme-button\"\n            data-theme-choice=\"dark\"\n        >\n            ☾ Sombre\n        </button>\n\n        <button\n            type=\"button\"\n            class=\"theme-button\"\n            data-theme-choice=\"light\"\n        >\n            ☀ Clair\n        </button>\n\n    </div>\n\n</header>\n\n<main class=\"app-content\">\n    \n\n<div class=\"page\">\n\n    <header class=\"header\">\n\n        <div class=\"header__brand\">\n            <span class=\"header__eyebrow\">\n                ICT Performance Lab by Jul\n            </span>\n\n            <h1 class=\"header__title\">\n                Fiche trade\n            </h1>\n\n            <p class=\"header__subtitle\">\n                Analyse complète du setup ICT\n            </p>\n        </div>\n\n        <div class=\"header__actions\">\n\n            <a\n                href=\"http://127.0.0.1:8000/trades\"\n                class=\"btn btn--ghost\"\n            >\n                ← Retour au journal\n            </a>\n\n                                                <span\n                        class=\"btn btn--disabled\"\n                        title=\"Impossible d'ajouter un add-in : cette idée est déjà clôturée.\"\n                    >\n                        <span class=\"btn__icon\">＋</span>\n                        Add-in indisponible · idée clôturée\n                    </span>\n                            \n            <a\n                href=\"http://127.0.0.1:8000/trades/27/edit\"\n                class=\"btn btn--edit\"\n            >\n                <span class=\"btn__icon\">✎</span>\n                Modifier le trade\n            </a>\n\n        </div>\n\n    </header>\n\n    <div class=\"summary\">\n\n        <div class=\"summary__top\">\n\n            <div>\n\n                <div class=\"summary__asset\">\n                    TEST-TARGET\n                </div>\n\n                <div class=\"summary__meta\">\n\n                    \n                        <span class=\"badge badge--short\">\n                            Short\n                        </span>\n\n                    \n                    \n                    \n                        <span class=\"badge badge--neutral\">\n                            TP\n                        </span>\n\n                    \n                </div>\n\n            </div>\n\n            <div class=\"summary__date\">\n                29/08/2026\n\n                                    — 09:00\n                            </div>\n\n        </div>\n\n        <div class=\"summary__kpis\">\n\n            <div class=\"kpi\">\n                <div class=\"kpi__label\">Risque recommandé</div>\n\n                <div class=\"kpi__value\">\n                    0,75%\n                </div>\n            </div>\n\n            <div class=\"kpi\">\n                <div class=\"kpi__label\">RR réalisé</div>\n\n                <div class=\"kpi__value kpi__value--positive\">\n                                            +6.00R\n                                    </div>\n            </div>\n\n            <div class=\"kpi\">\n                <div class=\"kpi__label\">RR planifié</div>\n\n                <div class=\"kpi__value\">\n                    —\n                </div>\n            </div>\n\n            <div class=\"kpi\">\n                <div class=\"kpi__label\">Discipline</div>\n\n                <div class=\"kpi__value\">\n                    —\n                </div>\n            </div>\n\n        </div>\n\n    </div>\n\n    <div class=\"detail-card\">\n\n        <section class=\"detail-section\">\n            <div class=\"detail-section__header\">\n                <h2 class=\"detail-section__title\">Identification</h2>\n            </div>\n\n            <div class=\"detail-section__body\">\n                <div class=\"detail-grid\">\n\n                    <div class=\"detail-field\">\n                        <span class=\"detail-field__label\">Date</span>\n                        <span class=\"detail-field__value\">\n                            29/08/2026\n                        </span>\n                    </div>\n\n                    <div class=\"detail-field\">\n                        <span class=\"detail-field__label\">Heure d'entrée</span>\n                        <span class=\"detail-field__value detail-field__value--mono\">\n                                                            09:00\n                                                    </span>\n                    </div>\n\n                    <div class=\"detail-field\">\n                        <span class=\"detail-field__label\">Actif</span>\n                        <span class=\"detail-field__value detail-field__value--mono\">\n                            TEST-TARGET\n                        </span>\n                    </div>\n\n                    <div class=\"detail-field\">\n                        <span class=\"detail-field__label\">Direction</span>\n                        <span class=\"detail-field__value\">\n                                                            <span class=\"badge badge--short\">Short</span>\n                                                    </span>\n                    </div>\n\n                </div>\n            </div>\n        </section>\n\n        <section class=\"detail-section\">\n            <div class=\"detail-section__header\">\n                <h2 class=\"detail-section__title\">Contexte ICT</h2>\n            </div>\n\n            <div class=\"detail-section__body\">\n                <div class=\"detail-grid detail-grid--3\">\n\n                    <div class=\"detail-field\">\n                        <span class=\"detail-field__label\">Session</span>\n                        <span class=\"detail-field__value\">\n                            —\n                        </span>\n                    </div>\n\n                    <div class=\"detail-field\">\n                        <span class=\"detail-field__label\">Jour</span>\n                        <span class=\"detail-field__value\">\n                            —\n                        </span>\n                    </div>\n\n                    <div class=\"detail-field\">\n                        <span class=\"detail-field__label\">Zone HTF</span>\n                        <span class=\"detail-field__value\">\n                            —\n                        </span>\n                    </div>\n\n                    <div class=\"detail-field\">\n                        <span class=\"detail-field__label\">Type de liquidité</span>\n                        <span class=\"detail-field__value\">\n                            —\n                        </span>\n                    </div>\n\n                </div>\n            </div>\n        </section>\n\n        <section class=\"detail-section\">\n            <div class=\"detail-section__header\">\n                <h2 class=\"detail-section__title\">Confirmations</h2>\n            </div>\n\n            <div class=\"detail-section__body\">\n\n                <div class=\"confirm-grid\">\n\n                    \n                        \n                        <div\n                            class=\"\n                                confirm-item\n                                confirm-item--inactive\n                            \"\n                        >\n\n                            <span class=\"confirm-item__icon\">\n                                —\n                            </span>\n\n                            <span class=\"confirm-item__label\">\n                                HTF Bias\n                            </span>\n\n                        </div>\n\n                    \n                        \n                        <div\n                            class=\"\n                                confirm-item\n                                confirm-item--inactive\n                            \"\n                        >\n\n                            <span class=\"confirm-item__icon\">\n                                —\n                            </span>\n\n                            <span class=\"confirm-item__label\">\n                                Liquidité prise\n                            </span>\n\n                        </div>\n\n                    \n                        \n                        <div\n                            class=\"\n                                confirm-item\n                                confirm-item--inactive\n                            \"\n                        >\n\n                            <span class=\"confirm-item__icon\">\n                                —\n                            </span>\n\n                            <span class=\"confirm-item__label\">\n                                Displacement\n                            </span>\n\n                        </div>\n\n                    \n                        \n                        <div\n                            class=\"\n                                confirm-item\n                                confirm-item--inactive\n                            \"\n                        >\n\n                            <span class=\"confirm-item__icon\">\n                                —\n                            </span>\n\n                            <span class=\"confirm-item__label\">\n                                MSS\n                            </span>\n\n                        </div>\n\n                    \n                        \n                        <div\n                            class=\"\n                                confirm-item\n                                confirm-item--inactive\n                            \"\n                        >\n\n                            <span class=\"confirm-item__icon\">\n                                —\n                            </span>\n\n                            <span class=\"confirm-item__label\">\n                                FVG 15m\n                            </span>\n\n                        </div>\n\n                    \n                        \n                        <div\n                            class=\"\n                                confirm-item\n                                confirm-item--inactive\n                            \"\n                        >\n\n                            <span class=\"confirm-item__icon\">\n                                —\n                            </span>\n\n                            <span class=\"confirm-item__label\">\n                                Breaker\n                            </span>\n\n                        </div>\n\n                    \n                        \n                        <div\n                            class=\"\n                                confirm-item\n                                confirm-item--inactive\n                            \"\n                        >\n\n                            <span class=\"confirm-item__icon\">\n                                —\n                            </span>\n\n                            <span class=\"confirm-item__label\">\n                                BISI 30m\n                            </span>\n\n                        </div>\n\n                    \n                        \n                        <div\n                            class=\"\n                                confirm-item\n                                confirm-item--inactive\n                            \"\n                        >\n\n                            <span class=\"confirm-item__icon\">\n                                —\n                            </span>\n\n                            <span class=\"confirm-item__label\">\n                                News\n                            </span>\n\n                        </div>\n\n                    \n                </div>\n\n                <div class=\"detail-grid\" style=\"margin-top: 1.25rem;\">\n                    <div class=\"detail-field\">\n                        <span class=\"detail-field__label\">Type de news</span>\n                        <span class=\"detail-field__value\">\n                            —\n                        </span>\n                    </div>\n                </div>\n\n            </div>\n        </section>\n\n        <section class=\"detail-section\">\n            <div class=\"detail-section__header\">\n                <h2 class=\"detail-section__title\">Risk Manager & résultat</h2>\n            </div>\n\n            <div class=\"detail-section__body\">\n\n                <div class=\"detail-grid detail-grid--3\">\n\n                    <div class=\"detail-field\">\n                        <span class=\"detail-field__label\">Risque recommandé</span>\n                        <span class=\"detail-field__value detail-field__value--mono\">\n                            0,75%\n                        </span>\n                    </div>\n\n                    <div class=\"detail-field\">\n                        <span class=\"detail-field__label\">Risque utilisé</span>\n                        <span class=\"detail-field__value detail-field__value--mono\">\n                            0,75%\n                        </span>\n                    </div>\n\n                    <div class=\"detail-field\">\n                        <span class=\"detail-field__label\">Niveau Risk Manager</span>\n                        <span class=\"detail-field__value\">\n                            <span class=\"badge badge--success\">\n                                Risque standard\n                            </span>\n                        </span>\n                    </div>\n\n                    <div class=\"detail-field\">\n                        <span class=\"detail-field__label\">Performance du cycle à l'entrée</span>\n                        <span class=\"detail-field__value detail-field__value--mono\">\n                                                            -1,33%\n                                                    </span>\n                    </div>\n\n                    <div class=\"detail-field\">\n                        <span class=\"detail-field__label\">Règle de risque</span>\n                        <span class=\"detail-field__value\">\n                                                            <span class=\"badge badge--success\">Respectée</span>\n                                                    </span>\n                    </div>\n\n                    <div class=\"detail-field\">\n                        <span class=\"detail-field__label\">Objectif du cycle</span>\n                        <span class=\"detail-field__value\">\n                                                            <span class=\"badge badge--success\">\n                                    Atteint — risque standard maintenu\n                                </span>\n                                                    </span>\n                    </div>\n\n                    <div class=\"detail-field\">\n                        <span class=\"detail-field__label\">Résultat</span>\n                        <span class=\"detail-field__value\">\n                            TP\n                        </span>\n                    </div>\n\n                    <div class=\"detail-field\">\n                        <span class=\"detail-field__label\">RR planifié</span>\n                        <span class=\"detail-field__value detail-field__value--mono\">\n                            —\n                        </span>\n                    </div>\n\n                    <div class=\"detail-field\">\n                        <span class=\"detail-field__label\">RR réalisé</span>\n\n                        <span class=\"detail-field__value detail-field__value--mono kpi__value--positive\">\n                                                            +6,00R\n                                                    </span>\n                    </div>\n\n                </div>\n\n            </div>\n        </section>\n\n        </section>\n\n        <section class=\"detail-section\">\n            <div class=\"detail-section__header\">\n                <h2 class=\"detail-section__title\">Discipline</h2>\n            </div>\n\n            <div class=\"detail-section__body\">\n\n                <div class=\"confirm-grid\" style=\"margin-bottom: 1.25rem;\">\n\n                    <div\n                        class=\"\n                            confirm-item\n                            confirm-item--active\n                        \"\n                    >\n                        <span class=\"confirm-item__icon\">\n                            ✓\n                        </span>\n\n                        <span class=\"confirm-item__label\">\n                            Pas d'anticipation\n                        </span>\n                    </div>\n\n                    <div\n                        class=\"\n                            confirm-item\n                            confirm-item--active\n                        \"\n                    >\n                        <span class=\"confirm-item__icon\">\n                            ✓\n                        </span>\n\n                        <span class=\"confirm-item__label\">\n                            1 trade / jour\n                        </span>\n                    </div>\n\n                </div>\n\n                <div class=\"detail-grid\">\n\n                    <div class=\"detail-field\">\n                        <span class=\"detail-field__label\">Score discipline</span>\n\n                                                    <span class=\"detail-field__value\">—</span>\n                                            </div>\n\n                    <div class=\"detail-field\">\n                        <span class=\"detail-field__label\">Setup Grade</span>\n\n                        <span class=\"detail-field__value\">\n                                                            —\n                                                    </span>\n                    </div>\n\n                </div>\n\n            </div>\n        </section>\n\n        <section class=\"detail-section\">\n            <div class=\"detail-section__header\">\n                <h2 class=\"detail-section__title\">Psychologie / analyse</h2>\n            </div>\n\n            <div class=\"detail-section__body\">\n\n                <div class=\"detail-grid detail-grid--1\">\n\n                    <div class=\"detail-field\">\n                        <span class=\"detail-field__label\">Émotion avant le trade</span>\n                        <span class=\"detail-field__value\">\n                            —\n                        </span>\n                    </div>\n\n                    <div class=\"detail-field\">\n                        <span class=\"detail-field__label\">Notes</span>\n\n                        <div class=\"detail-field__value detail-field__value--text is-empty\">\n                            \n                        </div>\n                    </div>\n\n                    <div class=\"detail-field\">\n                        <span class=\"detail-field__label\">Ce qui a bien fonctionné</span>\n\n                        <div class=\"detail-field__value detail-field__value--text is-empty\">\n                            \n                        </div>\n                    </div>\n\n                    <div class=\"detail-field\">\n                        <span class=\"detail-field__label\">À améliorer</span>\n\n                        <div class=\"detail-field__value detail-field__value--text is-empty\">\n                            \n                        </div>\n                    </div>\n\n                </div>\n\n            </div>\n        </section>\n\n        <section class=\"detail-section\">\n            <div class=\"detail-section__header\">\n                <h2 class=\"detail-section__title\">MT5 / FTMO</h2>\n            </div>\n\n            <div class=\"detail-section__body\">\n\n                <div class=\"detail-grid\">\n\n                    <div class=\"detail-field\">\n                        <span class=\"detail-field__label\">Ticket MT5</span>\n                        <span class=\"detail-field__value detail-field__value--mono\">\n                            —\n                        </span>\n                    </div>\n\n                    <div class=\"detail-field\">\n                        <span class=\"detail-field__label\">Compte MT5</span>\n                        <span class=\"detail-field__value detail-field__value--mono\">\n                            —\n                        </span>\n                    </div>\n\n                </div>\n\n                <div class=\"meta-footer\">\n                    <span>\n                        Créé le\n                        13/08/2026 à 13:10\n                    </span>\n\n                    <span>\n                        Modifié le\n                        13/08/2026 à 13:10\n                    </span>\n\n                    <span>\n                        Trade #27\n                    </span>\n                </div>\n\n            </div>\n        </section>\n\n    </div>\n\n    <footer class=\"footer\">\n        ICT Performance Lab by Jul —\n        2026\n    </footer>\n\n</div>\n\n</main>\n\n<script>\n    (() => {\n        const buttons =\n            document.querySelectorAll('[data-theme-choice]');\n\n        function applyTheme(theme) {\n            document.documentElement.dataset.theme = theme;\n\n            localStorage.setItem(\n                'ict-theme',\n                theme\n            );\n\n            buttons.forEach(button => {\n                const active =\n                    button.dataset.themeChoice === theme;\n\n                button.classList.toggle(\n                    'is-active',\n                    active\n                );\n\n                button.setAttribute(\n                    'aria-pressed',\n                    active ? 'true' : 'false'\n                );\n            });\n        }\n\n        const savedTheme =\n            localStorage.getItem('ict-theme') || 'dark';\n\n        applyTheme(savedTheme);\n\n        buttons.forEach(button => {\n            button.addEventListener('click', () => {\n                applyTheme(\n                    button.dataset.themeChoice\n                );\n            });\n        });\n    })();\n</script>\n\n\n</body>\n</html>"}},"props":[],"propValues":[],"route":{"name":"trades.show","uri":"/trades/{trade}","action":"App\\Http\\Controllers\\TradeController@show","actionSource":{"file":"/Users/jul/Documents/ICT-Performance-Lab/app/Http/Controllers/TradeController.php","line":563}},"renderSource":null,"componentPath":null}