@extends('portal.layouts.master') @section('title', Str::limit($market['question'], 60) . ' — Prediction Market') @section('page-title', 'Prediction Market') @section('extra-css') .pm-market-layout { display: grid; grid-template-columns: 1fr 340px; gap: 1.25rem; } @media (max-width: 900px) { .pm-market-layout { grid-template-columns: 1fr; } } /* Outcome gauge */ .pm-gauge-wrap { background: var(--bg-card); border: 1px solid var(--border); border-radius: 10px; padding: 1.25rem; } .pm-gauge-question { font-size: 1.05rem; font-weight: 700; line-height: 1.4; margin-bottom: 1rem; } .pm-gauge-meta { display: flex; gap: 1rem; flex-wrap: wrap; margin-bottom: 1rem; } .pm-gauge-stat { } .pm-gauge-stat .lbl { font-size: .68rem; text-transform: uppercase; letter-spacing: .05em; color: var(--text-muted); } .pm-gauge-stat .val { font-size: .95rem; font-weight: 700; margin-top: .1rem; } .pm-outcome-row { display: flex; gap: .75rem; margin-bottom: .75rem; } .pm-outcome-chip { flex: 1; border-radius: 8px; padding: .85rem 1rem; display: flex; flex-direction: column; align-items: center; gap: .15rem; border: 2px solid transparent; } .pm-outcome-chip--yes { background: rgba(74,222,128,.1); border-color: rgba(74,222,128,.3); } .pm-outcome-chip--no { background: rgba(248,113,113,.1); border-color: rgba(248,113,113,.3); } .pm-outcome-chip .oc-label { font-size: .7rem; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; } .pm-outcome-chip--yes .oc-label { color: #4ade80; } .pm-outcome-chip--no .oc-label { color: #f87171; } .pm-outcome-chip .oc-price { font-size: 1.6rem; font-weight: 800; font-variant-numeric: tabular-nums; } .pm-outcome-chip--yes .oc-price { color: #4ade80; } .pm-outcome-chip--no .oc-price { color: #f87171; } .pm-outcome-chip .oc-sub { font-size: .68rem; color: var(--text-muted); } .pm-big-bar { height: 10px; border-radius: 5px; background: rgba(248,113,113,.35); overflow: hidden; margin-bottom: .5rem; } .pm-big-bar-fill { height: 100%; border-radius: 5px; background: linear-gradient(90deg, #4ade80, #22d3ee); transition: width .5s; } .pm-bar-axis { display: flex; justify-content: space-between; font-size: .68rem; color: var(--text-muted); } .pm-live-dot { display: inline-block; width: 6px; height: 6px; background: #4ade80; border-radius: 50%; margin-right: .35rem; animation: pulse 1.5s infinite; } @keyframes pulse { 0%,100%{opacity:1}50%{opacity:.3} } /* Trade panel */ .pm-trade-panel { background: var(--bg-card); border: 1px solid var(--border); border-radius: 10px; position: sticky; top: 70px; } .pm-trade-header { padding: .85rem 1rem; border-bottom: 1px solid var(--border); font-weight: 700; font-size: .9rem; } .pm-outcome-toggle { display: flex; border-bottom: 1px solid var(--border); } .pm-ot-btn { flex: 1; padding: .6rem; text-align: center; font-weight: 700; font-size: .85rem; cursor: pointer; border: none; background: transparent; border-bottom: 3px solid transparent; transition: all .15s; color: var(--text-secondary); } .pm-ot-btn.sel-yes { color: #4ade80; border-bottom-color: #4ade80; background: rgba(74,222,128,.06); } .pm-ot-btn.sel-no { color: #f87171; border-bottom-color: #f87171; background: rgba(248,113,113,.06); } .pm-side-toggle { display: flex; border-bottom: 1px solid var(--border); } .pm-side-btn { flex: 1; padding: .55rem; text-align: center; font-weight: 600; font-size: .82rem; cursor: pointer; border: none; background: transparent; border-bottom: 2px solid transparent; color: var(--text-secondary); transition: all .15s; } .pm-side-btn.sel-buy { color: var(--green); border-bottom-color: var(--green); } .pm-side-btn.sel-sell { color: var(--red); border-bottom-color: var(--red); } .pm-form { padding: 1rem; } .pm-form .form-label { font-size: .75rem; font-weight: 600; text-transform: uppercase; letter-spacing: .04em; color: var(--text-secondary); } .pm-form .form-control { font-size: .9rem; } .pm-summary { background: var(--bg-secondary); border-radius: 6px; padding: .75rem; margin-top: .75rem; } .pm-sum-row { display: flex; justify-content: space-between; font-size: .82rem; padding: .2rem 0; } .pm-sum-row .lbl { color: var(--text-secondary); } .pm-sum-row .val { font-weight: 600; } .pm-submit-btn { width: 100%; margin-top: .9rem; padding: .65rem; font-weight: 700; font-size: .92rem; } /* Open positions */ .pm-position-badge { background: var(--bg-secondary); border: 1px solid var(--border); border-radius: 8px; padding: .75rem 1rem; display: flex; align-items: center; gap: .75rem; margin-bottom: .75rem; } .pm-pos-outcome { font-size: .7rem; font-weight: 800; text-transform: uppercase; padding: .25rem .7rem; border-radius: 20px; } .pm-pos-outcome--yes { background: rgba(74,222,128,.15); color: #4ade80; } .pm-pos-outcome--no { background: rgba(248,113,113,.15); color: #f87171; } /* Trades table */ .pm-badge-buy { background: rgba(74,222,128,.15); color: #4ade80; padding: .15rem .6rem; border-radius: 4px; font-size: .72rem; font-weight: 700; } .pm-badge-sell { background: rgba(248,113,113,.15); color: #f87171; padding: .15rem .6rem; border-radius: 4px; font-size: .72rem; font-weight: 700; } .pm-badge-yes { background: rgba(74,222,128,.15); color: #4ade80; padding: .15rem .5rem; border-radius: 4px; font-size: .7rem; font-weight: 700; } .pm-badge-no { background: rgba(248,113,113,.15); color: #f87171; padding: .15rem .5rem; border-radius: 4px; font-size: .7rem; font-weight: 700; } @endsection @section('content') {{-- Back link --}}
{{-- Flash messages --}} @if(session('success')){{ Str::limit($market['description'], 600) }}
| Date | Side | Outcome | Shares | Price | Cost | CCY |
|---|---|---|---|---|---|---|
| {{ $t->traded_at->format('d M H:i') }} | {{ strtoupper($t->side) }} | {{ $t->outcome }} | {{ rtrim(rtrim(number_format($t->shares, 4), '0'), '.') }} | {{ number_format($t->price * 100, 1) }}¢ | {{ number_format($t->total_cost, 2) }} | {{ $t->currency }} |