feat: owner login landing + Sales POS + Sales in nav

This commit is contained in:
type-two 2026-06-22 01:49:00 +10:00
parent 80ff669cac
commit 6dd893fd01

View File

@ -3,49 +3,43 @@
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>RecordGod — the records engine</title>
<title>RecordGod</title>
<style>
:root{--pink:#ff5db1;--ink:#0c0c0e;--mut:#9a9aa6}
:root{--pink:#ff5db1;--ink:#0b0b0d;--line:#26262c;--mut:#8a8a94}
*{box-sizing:border-box}
html,body{margin:0;min-height:100%;background:var(--ink);color:#f0f0f2;font:16px/1.6 system-ui,sans-serif}
.wrap{max-width:860px;margin:0 auto;padding:8vh 24px 6vh}
.tag{letter-spacing:.18em;text-transform:uppercase;color:var(--mut);font-size:13px}
h1{font-size:clamp(40px,9vw,76px);margin:.1em 0 .1em;font-weight:600;line-height:1}
html,body{margin:0;height:100%;background:var(--ink);color:#f0f0f2;font:15px/1.5 system-ui,sans-serif}
.wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px}
.box{width:340px;text-align:center}
h1{font-size:46px;font-weight:600;margin:0 0 4px}
h1 b{color:var(--pink);font-weight:600}
.lede{font-size:20px;color:#d8d8de;max-width:620px}
.row{display:flex;gap:14px;flex-wrap:wrap;margin:34px 0 0}
a.btn{display:inline-flex;align-items:center;gap:8px;padding:13px 22px;border-radius:10px;text-decoration:none;font-weight:500}
a.primary{background:var(--pink);color:#1a0a14}
a.ghost{border:1px solid #333;color:#eee}
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:18px;margin:64px 0 0}
.card{border:1px solid #232327;border-radius:12px;padding:18px;background:#141418}
.card h3{margin:.1em 0;color:var(--pink);font-weight:500;font-size:16px}
.card p{color:var(--mut);font-size:14px;margin:.4em 0 0}
.foot{margin-top:64px;color:#55555f;font-size:13px;border-top:1px solid #1c1c20;padding-top:18px}
.foot b{color:var(--mut);font-weight:500}
.sub{color:var(--mut);letter-spacing:.14em;text-transform:uppercase;font-size:12px;margin-bottom:26px}
input{width:100%;padding:12px;border:1px solid var(--line);border-radius:10px;background:#0e0e11;color:#eee;font:15px system-ui;text-align:center}
button{width:100%;margin-top:10px;padding:12px;border:0;border-radius:10px;background:var(--pink);color:#1a0a14;font:600 15px system-ui;cursor:pointer}
.err{color:#e66;font-size:13px;margin-top:10px;min-height:18px}
.foot{color:#44444c;font-size:12px;margin-top:28px}
</style>
</head>
<body>
<div class="wrap">
<div class="tag">House of the Hustle · the crate</div>
<div class="wrap"><div class="box">
<h1>Record<b>God</b></h1>
<p class="lede">The records back-office engine. Inventory, pricing, the 3D store, and order management —
one custom stack, no WordPress paper box. Powered by Postgres, fed by DealGod.</p>
<div class="row">
<a class="btn primary" href="/store/">Enter the virtual store →</a>
<a class="btn ghost" href="/admin">Control room</a>
<a class="btn ghost" href="/builder">Storefront builder</a>
</div>
<div class="grid">
<div class="card"><h3>The crate</h3><p>Walk the shop in 3D, dig through bins, pull a sleeve to inspect it.</p></div>
<div class="card"><h3>Locate stock</h3><p>Any release → the exact crate and slot it lives in.</p></div>
<div class="card"><h3>Live pricing</h3><p>DealGod's cross-store market value on every shelf.</p></div>
<div class="card"><h3>Orders, your way</h3><p>WooCommerce orders managed here — no wp-admin.</p></div>
</div>
<div class="foot">Run from the VPS, not inside WordPress · talks to <b>DealGod</b> · honours <b>WowPlatter</b>, our founder.</div>
</div>
<div class="sub">store back-office · sign in</div>
<input id="tok" type="password" placeholder="access token" autofocus>
<button onclick="go()">Sign in</button>
<div id="err" class="err"></div>
<div class="foot">owner access only</div>
</div></div>
<script>
const tok = document.getElementById('tok');
async function go(){
const t = tok.value.trim(); if(!t) return;
document.getElementById('err').textContent = 'checking…';
const r = await fetch('/admin/stats', { headers: { 'Authorization': 'Bearer ' + t } });
if(r.ok){ localStorage.setItem('rg_token', t); location.href = '/admin'; }
else document.getElementById('err').textContent = 'invalid token';
}
tok.addEventListener('keydown', e => { if(e.key === 'Enter') go(); });
// already signed in? skip straight to the cockpit
if(localStorage.getItem('rg_token')) location.href = '/admin';
</script>
</body>
</html>