Files
rar-autopass/app/web/templates/landing_static.html
Claude Agent 251666feb6 feat(landing): pagini publice Termeni/GDPR/Documentatie API + fix link-uri moarte
Antet/footer/stil extrase in include-uri comune (_lp_*.html) folosite de
landing si de shell-ul paginilor statice (landing_static.html). Butoanele
'Vezi cum functioneaza' si 'Vezi documentatia API' devin link-uri reale;
footer-ul si consimtamantul de la inregistrare leaga paginile noi;
Contact indica spre romfast.ro/menu/contact.html.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-09 14:01:56 +00:00

73 lines
4.8 KiB
HTML

<!DOCTYPE html>
<html lang="ro">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>{% block titlu %}ROA AUTOPASS{% endblock %} — ROA AUTOPASS</title>
<meta name="description" content="{% block descriere %}ROA AUTOPASS — gateway de declarare a prestatiilor la RAR Auto-Pass.{% endblock %}">
{% include "_lp_style.html" %}
<style>
/* Prose pentru paginile statice (termeni, GDPR, contact, documentatie API). */
.lp-prose{max-width:820px;margin:0 auto;padding:56px 40px 80px;}
.lp-prose h1{font:700 34px/1.15 var(--font-ui);letter-spacing:-.02em;margin:0 0 8px;color:var(--text,#e6e9ef);}
.lp-prose .lp-sub{font:400 14px var(--font-ui);color:var(--mut,#5c6473);margin:0 0 36px;}
.lp-prose h2{font:700 20px/1.3 var(--font-ui);letter-spacing:-.01em;margin:36px 0 10px;color:var(--text,#e6e9ef);}
.lp-prose p,.lp-prose li{font:400 15px/1.7 var(--font-ui);color:var(--sub,#8b93a7);}
.lp-prose p{margin:0 0 12px;}
.lp-prose ul{margin:0 0 12px;padding-left:22px;}
.lp-prose li{margin-bottom:6px;}
.lp-prose strong{color:var(--text,#e6e9ef);font-weight:600;}
.lp-prose a{color:var(--accent,#2E74D6);}
.lp-prose code{font:400 13px var(--font-mono);color:var(--text,#e6e9ef);background:var(--card,#181c24);border:1px solid var(--line,#262b36);border-radius:4px;padding:1px 5px;}
.lp-prose pre{background:var(--card,#181c24);border:1px solid var(--line,#262b36);border-radius:8px;padding:16px;overflow-x:auto;margin:0 0 12px;}
.lp-prose pre code{background:none;border:none;padding:0;font:400 13px/1.6 var(--font-mono);}
.lp-prose table{width:100%;border-collapse:collapse;margin:0 0 12px;}
.lp-prose th,.lp-prose td{text-align:left;padding:8px 10px;border-bottom:1px solid var(--line,#262b36);font:400 14px/1.5 var(--font-ui);color:var(--sub,#8b93a7);}
.lp-prose th{color:var(--text,#e6e9ef);font-weight:600;}
.lp-prose .lp-card{background:var(--card,#181c24);border:1px solid var(--line,#262b36);border-radius:10px;padding:18px 20px;margin:0 0 12px;}
@media (max-width:700px){.lp-prose{padding:36px 20px 48px;}}
</style>
</head>
<body data-theme="grafit">
<script>try{var _t=localStorage.getItem('theme');var _V={light:1,dark:1,petrol:1,grafit:1,cobalt:1,cupru:1,hartie:1,auto:1};if(_t&&_V[_t]){var _r=_t==='auto'?(window.matchMedia('(prefers-color-scheme: light)').matches?'light':'dark'):_t;document.body.setAttribute('data-theme',_r);}}catch(e){}</script>
<main class="page">
{% with lp_root = "/" %}{% include "_lp_header.html" %}{% endwith %}
<div class="lp-prose">
{% block continut %}{% endblock %}
</div>
{% include "_lp_footer.html" %}
</main>
<script>
(function(){
// Aceeasi rotatie de teme si cheie 'theme' ca landing/base.html.
var THEMES=[['light','Light'],['dark','Dark'],['petrol','Petrol'],['grafit','Grafit'],['cobalt','Cobalt'],['cupru','Cupru'],['hartie','Hârtie'],['auto','Auto']];
var VALID=THEMES.reduce(function(a,t){a[t[0]]=1;return a;},{});
var body=document.body;
function resolve(id){return id==='auto'?(window.matchMedia('(prefers-color-scheme: light)').matches?'light':'dark'):id;}
function storedId(){try{var v=localStorage.getItem('theme');return (v&&VALID[v])?v:null;}catch(e){return null;}}
function curIndex(){var t=storedId()||body.getAttribute('data-theme')||'grafit';for(var i=0;i<THEMES.length;i++){if(THEMES[i][0]===t)return i;}return 3;}
function label(i){var l=document.getElementById('theme-label');if(l)l.textContent=THEMES[i][1];}
function applyTheme(i){i=((i%THEMES.length)+THEMES.length)%THEMES.length;var id=THEMES[i][0];body.setAttribute('data-theme',resolve(id));label(i);try{localStorage.setItem('theme',id);}catch(e){}}
(function(){var i=curIndex();body.setAttribute('data-theme',resolve(THEMES[i][0]));label(i);})();
function parseStyle(str){var o={};str.split(';').forEach(function(p){var idx=p.indexOf(':');if(idx>0)o[p.slice(0,idx).trim()]=p.slice(idx+1).trim();});return o;}
document.querySelectorAll('[style-hover]').forEach(function(el){
var hov=parseStyle(el.getAttribute('style-hover'));var keys=Object.keys(hov);var saved={};
el.addEventListener('mouseenter',function(){keys.forEach(function(k){saved[k]=el.style.getPropertyValue(k);el.style.setProperty(k,hov[k]);});});
el.addEventListener('mouseleave',function(){keys.forEach(function(k){el.style.setProperty(k,saved[k]);});});
});
// Pe paginile statice nu exista formularul #inregistrare: butonul de auth duce pe landing.
document.addEventListener('click',function(e){
var t=e.target.closest('[data-act]');if(!t)return;
var act=t.getAttribute('data-act');
if(act==='theme'){applyTheme(curIndex()+1);}
else if(act==='auth'){e.preventDefault();window.location.href='/#inregistrare';}
});
})();
</script>
</body>
</html>