feat: owner login landing + Sales POS + Sales in nav
This commit is contained in:
parent
80ff669cac
commit
6dd893fd01
@ -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>
|
||||
|
||||
Loading…
Reference in New Issue
Block a user