<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Codex Cost</title>
<link rel="stylesheet" href="/styles.css" />
</head>
<body>
<main class="app-shell">
<header class="topbar">
<div>
<h1>Codex Cost</h1>
<p id="generatedAt">Loading local session data...</p>
</div>
<button id="refreshButton" class="icon-button" type="button" title="Refresh data" aria-label="Refresh data">
<span aria-hidden="true">↻</span>
</button>
</header>
<section class="kpis" aria-label="Usage totals">
<article>
<span>All time</span>
<strong id="allTimeTokens">0</strong>
</article>
<article>
<span>Today</span>
<strong id="todayTokens">0</strong>
</article>
<article>
<span>Last 7 days</span>
<strong id="lastSevenTokens">0</strong>
</article>
<article>
<span>Events</span>
<strong id="eventCount">0</strong>
</article>
</section>
<section class="workspace">
<aside class="filters" aria-label="Filters">
<label>
Dimension
<select id="dimensionSelect">
<option value="projects">Project</option>
<option value="models">Model</option>
<option value="threads">Thread</option>
<option value="efforts">Effort</option>
<option value="context_windows">Context window</option>
</select>
</label>
<label>
Project
<select id="projectFilter">
<option value="">All projects</option>
</select>
</label>
<label>
Model
<select id="modelFilter">
<option value="">All models</option>
</select>
</label>
<label>
Search
<input id="searchInput" type="search" placeholder="Thread or path" />
</label>
<div class="range-readout">
<span>Selected range</span>
<strong id="rangeReadout">All data</strong>
</div>
<div id="warnings" class="warnings" hidden></div>
</aside>
<section class="content">
<section class="panel timeline-panel" aria-label="Token timeline">
<div class="panel-heading">
<h2>Timeline</h2>
<div class="segmented" role="group" aria-label="Time presets">
<button type="button" data-preset="all" class="active">All</button>
<button type="button" data-preset="7d">7d</button>
<button type="button" data-preset="today">Today</button>
</div>
</div>
<svg id="timelineChart" viewBox="0 0 900 260" role="img" aria-label="Token usage over time"></svg>
</section>
<section class="grid">
<section class="panel" aria-label="Distribution chart">
<div class="panel-heading">
<h2 id="distributionTitle">Project distribution</h2>
</div>
<div id="distributionChart" class="bar-chart"></div>
</section>
<section class="panel" aria-label="Token type breakdown">
<div class="panel-heading">
<h2>Token types</h2>
</div>
<div id="breakdownChart" class="breakdown"></div>
</section>
</section>
<section class="panel table-panel" aria-label="Usage events">
<div class="panel-heading">
<h2>Events</h2>
<span id="tableCount">0 rows</span>
</div>
<div class="table-wrap">
<table>
<thead>
<tr>
<th>Time</th>
<th>Project</th>
<th>Thread</th>
<th>Model</th>
<th>Effort</th>
<th>Window</th>
<th>Tokens</th>
</tr>
</thead>
<tbody id="eventsBody"></tbody>
</table>
</div>
</section>
</section>
</section>
<div id="chartTooltip" class="chart-tooltip" role="tooltip" hidden></div>
</main>
<script src="/number-format.js" defer></script>
<script src="/app.js" defer></script>
</body>
</html>