OSVauco/static/costguard.html
Chris Christiansen 9fcb9c354a
Some checks are pending
Check Python Version Consistency / Check Python Version (push) Waiting to run
feat(core): Fresh initialization - Deploy v3.6.1 Singularity Architecture
2026-09-03 04:03:09 +00:00

219 lines
6.9 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html>
<html lang="no">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="robots" content="noindex, nofollow">
<title>CostGuard — GCP kostnadsovervåkning</title>
<style>
:root{
--bg:#0a0a0f;
--bg-2:#11131a;
--bg-3:#161922;
--border:rgba(255,255,255,0.08);
--border-2:rgba(255,255,255,0.14);
--text:#e8eaf0;
--text-dim:#8b909c;
--text-faint:#5a5f6b;
--accent:#7c5cff;
--accent-2:#00d4a8;
--green:#3ecf8e;
--radius:12px;
--radius-lg:18px;
--shadow:0 8px 32px rgba(0,0,0,0.4);
--sans:-apple-system,BlinkMacSystemFont,'Inter','SF Pro Display',system-ui,sans-serif;
--mono:'SF Mono',ui-monospace,'JetBrains Mono',Menlo,monospace;
}
*{margin:0;padding:0;box-sizing:border-box}
html,body{
background:var(--bg);color:var(--text);
font-family:var(--sans);line-height:1.6;
-webkit-font-smoothing:antialiased;
min-height:100vh;
}
a{color:inherit;text-decoration:none}
button{font-family:inherit;cursor:pointer;border:none}
.page{
max-width:1040px;margin:0 auto;
padding:28px 20px 40px;
display:flex;flex-direction:column;gap:26px;
}
.top{
display:flex;flex-wrap:wrap;gap:18px;
align-items:flex-start;justify-content:space-between;
}
.brand{
display:flex;align-items:center;gap:12px;
}
.logo{
width:32px;height:32px;border-radius:10px;
background:linear-gradient(135deg,var(--accent),var(--accent-2));
display:flex;align-items:center;justify-content:center;
color:#050509;font-weight:800;font-size:16px;
}
.brand-text-title{
font-weight:800;font-size:18px;letter-spacing:-0.03em;
}
.brand-text-sub{
font-size:13px;color:var(--text-dim);
}
.pill{
display:inline-flex;align-items:center;gap:8px;
padding:6px 12px;border-radius:999px;
border:1px solid var(--border);
background:var(--bg-2);color:var(--text-dim);
font-size:11px;font-weight:500;
}
.pill-dot{
width:8px;height:8px;border-radius:50%;
background:var(--green);
}
.hero{
display:grid;
grid-template-columns:minmax(0,1.1fr) minmax(0,1.1fr);
gap:24px;
}
@media (max-width:820px){
.hero{grid-template-columns:1fr}
}
.hero-card{
padding:24px 22px;
border-radius:var(--radius-lg);
border:1px solid var(--border);
background:radial-gradient(circle at top left,rgba(124,92,255,0.18),transparent 55%),var(--bg-2);
box-shadow:var(--shadow);
}
.hero-title{
font-size:26px;font-weight:800;letter-spacing:-0.03em;
margin-bottom:8px;
}
.hero-sub{
font-size:14px;color:var(--text-dim);max-width:420px;
margin-bottom:16px;
}
.hero-list{
list-style:none;margin:0 0 18px 0;padding:0;
font-size:13.5px;color:var(--text-dim);
}
.hero-list li{
display:flex;align-items:flex-start;gap:8px;margin-bottom:6px;
}
.hero-list li span{
width:14px;flex-shrink:0;color:var(--accent-2);font-size:14px;
}
.cta-row{
display:flex;flex-wrap:wrap;gap:10px;align-items:center;
}
.btn-primary{
padding:9px 16px;border-radius:999px;
background:linear-gradient(135deg,var(--accent),var(--accent-2));
color:#050509;font-weight:600;font-size:14px;
box-shadow:0 10px 30px rgba(0,0,0,0.5);
display:inline-flex;align-items:center;gap:8px;
}
.btn-primary span.icon{
width:18px;height:18px;border-radius:999px;
background:rgba(0,0,0,0.18);
display:flex;align-items:center;justify-content:center;
font-size:12px;
}
.cta-note{
font-size:12px;color:var(--text-faint);
}
.billing-shell{
padding:20px 18px;
border-radius:var(--radius-lg);
border:1px solid var(--border);
background:var(--bg-2);
display:flex;flex-direction:column;gap:10px;
}
.billing-head{
display:flex;align-items:center;justify-content:space-between;
gap:10px;
}
.billing-title{
font-size:14px;font-weight:600;
}
.billing-env{
font-size:11px;font-family:var(--mono);color:var(--text-faint);
padding:3px 8px;border-radius:999px;border:1px solid var(--border);
background:var(--bg-3);
}
.billing-frame{
border-radius:12px;
border:1px solid var(--border-2);
overflow:hidden;
background:#050509;
min-height:420px;
}
.billing-frame iframe{
width:100%;height:420px;border:0;
background:#050509;
}
footer{
margin-top:8px;
font-size:11px;color:var(--text-faint);
display:flex;justify-content:space-between;gap:8px;
flex-wrap:wrap;font-family:var(--mono);
}
</style>
</head>
<body>
<main class="page">
<header class="top">
<div class="brand">
<div class="logo">CG</div>
<div>
<div class="brand-text-title">CostGuard</div>
<div class="brand-text-sub">Kontinuerlig overvåkning av GCPkostnader</div>
</div>
</div>
<div class="pill">
<div class="pill-dot"></div>
<span>us-central1 · osvauco-agent · Gemini&nbsp;2.5&nbsp;Pro</span>
</div>
</header>
<section class="hero">
<article class="hero-card">
<h1 class="hero-title">Få oversikt på minutter, ikke måneder</h1>
<p class="hero-sub">
CostGuard kobler seg til ditt GCPprosjekt, leser faktiske fakturadata og flagger avvik
uten at du trenger å bygge dashboards selv.
</p>
<ul class="hero-list">
<li><span></span><div>Leser BigQueryeksport av fakturaen og grupperer kostnader etter prosjekt, label og tjeneste.</div></li>
<li><span></span><div>AIanomalideteksjon fanger opp uvanlige spikes før måneden er over.</div></li>
<li><span></span><div>Bygd for norske bedrifter beløp i NOK, klar til å tas med til CFO.</div></li>
</ul>
<div class="cta-row">
<button class="btn-primary" onclick="window.location.href='https://opax.vauco.no/auth/login';">
<span class="icon">G</span>
<span>Logg inn med Google</span>
</button>
<span class="cta-note">Krever GCPadmin med tilgang til billingkonto.</span>
</div>
</article>
<aside class="billing-shell">
<div class="billing-head">
<div class="billing-title">Live kostnadsoversikt (demo)</div>
<div class="billing-env">static/billing-dashboard.html</div>
</div>
<div class="billing-frame">
<iframe src="/static/billing-dashboard.html" title="CostGuard billing dashboard"></iframe>
</div>
</aside>
</section>
<footer>
<span>Vauco AS · CostGuard Modul&nbsp;1</span>
<span>Driftes via osvauco-agent · opax.vauco.no</span>
</footer>
</main>
</body>
</html>