PRD 5.16 — propagare design finalizata (system font stack, fara IBM Plex self-hostat): - US-001/002/008: tokeni --font-ui/--font-mono (system stack) + scala --fs-*; zero @font-face si zero /static/fonts/; landing aliniat la acelasi stack - US-003: RAR online = dot compact in antet + meniu burger; banda rosie DOAR pe blocat (invariant zero-silent-failures pastrat) - US-010: antet "ROMFAST AUTOPASS" + nume service + /login brandeit 2 coloane + badge plan; meniu burger cu separatoare; gate strict pe is_authenticated - US-011: selector tema pill icon+eticheta (reuse THEMES) - US-004/005/006/007: bug-fix editor prestatii (picker cod+denumire, add_extra in mod operatii, cod ales se salveaza fara "+", Renunta inchide via closest) - US-012/013: landing Autentificare->/login; wizard import colapsat + 4 pasi pe tokeni - fix VERIFY E2E: contoare duplicate pe 390px (inline display:flex batea @media) -> CSS + test-lock PRD 5.17 — tipuri de cont + trial Pro 30z + enforcement DUR: - US-001/002/008: accounts.tier + trial_until (migrare aditiva defensiva); app/plans.py sursa unica (PLANS, FREE_MONTHLY_LIMIT=60, effective_tier(now injectabil), monthly_usage, CONSUMED_STATUSES); create_account trial Pro 30z; CLI set-tier (protejat id=1, audit) - US-003/004/005: enforce volum 60/luna INAINTE de build_key pe ambele canale (PLAN_LIMITA_LUNARA, 3 niveluri + log_event); gate API Pro+ (PLAN_FARA_API 403 actionabil); valideaza/nomenclator raman permise; downgrade lazy; flag AUTOPASS_ENFORCE_PLANS (kill-switch) - US-006: badge plan antet + linie burger + consum N/60 + warn>=80% + 6 stari + copy RO pluralizat + banner one-time trial->Gratuit + pagina Cont Regresie: 1380 passed, 0 failed, 1 deselected (live). E2E browser pe 390/1280 confirmat. Backend trimitere (worker/masina stari/idempotenta/contract RAR) NEATINS. Lucrul 5.18 (corpus kNN) ramane separat, necomis. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
99 lines
5.0 KiB
HTML
99 lines
5.0 KiB
HTML
{% extends "base.html" %}
|
|
{% block title %}Autentificare — ROMFAST AUTOPASS{% endblock %}
|
|
{% block content %}
|
|
{# US-010 (PRD 5.16): /login — layout 2 coloane branduit.
|
|
Stanga: logo + tagline + puncte de incredere.
|
|
Dreapta: formular de autentificare (neschimbat: CSRF, POST /login, link signup).
|
|
Pe mobil (<640px): se stivuiesc, partea dreapta (formular) iese prima. #}
|
|
<div class="login-2col" style="max-width:860px; margin:32px auto;">
|
|
{# Antet minimal deja randat in base.html (fara RAR dot, fara burger, fara account_name) #}
|
|
<div class="login-shell">
|
|
{# === Coloana stanga: brand + trust === #}
|
|
<aside class="login-aside" aria-label="Despre ROMFAST AUTOPASS">
|
|
<div class="login-brand-row">
|
|
<img src="/static/romfast_logo.png" alt="ROMFAST" style="height:36px; width:auto;">
|
|
</div>
|
|
<h2 class="login-headline">ROMFAST <span style="color:var(--accent);">AUTOPASS</span></h2>
|
|
<p class="login-tagline">Declara prestatiile de service-auto la RAR AUTOPASS, automat.
|
|
Conform Legii 142/2023 si OMTI 210/2024.</p>
|
|
<ul class="login-trust">
|
|
<li>
|
|
<svg width="17" height="17" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.2" aria-hidden="true"><path d="M20 6L9 17l-5-5"/></svg>
|
|
Conform Legii 142/2023 si OMTI 210/2024
|
|
</li>
|
|
<li>
|
|
<svg width="17" height="17" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" aria-hidden="true"><rect x="5" y="11" width="14" height="9" rx="1.5"/><path d="M8 11V8a4 4 0 0 1 8 0v3"/></svg>
|
|
Datele criptate, sterse la 3 luni
|
|
</li>
|
|
<li>
|
|
<svg width="17" height="17" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" aria-hidden="true"><path d="M20 6L9 17l-5-5"/></svg>
|
|
Parte din familia ROA — Romfast Applications
|
|
</li>
|
|
</ul>
|
|
</aside>
|
|
|
|
{# === Coloana dreapta: formular (NESCHIMBAT — CSRF, POST /login, link signup) === #}
|
|
<div class="login-form-col">
|
|
<h3 style="font-size:var(--fs-xl); margin:0 0 4px;">Autentificare</h3>
|
|
<p style="font-size:var(--fs-sm); color:var(--muted); margin:0 0 22px;">
|
|
Intra in contul service-ului tau.
|
|
</p>
|
|
|
|
{% if error %}
|
|
<div class="banner" style="margin-bottom:14px; padding:8px 12px;">{{ error }}</div>
|
|
{% endif %}
|
|
|
|
<form method="post" action="/login">
|
|
<input type="hidden" name="csrf_token" value="{{ csrf_token }}">
|
|
<div class="camp-slim">
|
|
<label for="lf-email">Email</label>
|
|
<input id="lf-email" type="email" name="email" required autocomplete="email">
|
|
</div>
|
|
<div class="camp-slim" style="margin-bottom:14px;">
|
|
<label for="lf-parola">Parola</label>
|
|
<input id="lf-parola" type="password" name="parola" required autocomplete="current-password">
|
|
</div>
|
|
<button type="submit" class="btn-primary-full">Intra in cont</button>
|
|
</form>
|
|
|
|
<p class="login-foot">
|
|
Cont nou? <a href="/signup" style="color:var(--accent);">Inregistreaza service-ul</a>
|
|
</p>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<style>
|
|
/* US-010 PRD 5.16: layout /login profesional 2 coloane. */
|
|
.login-shell {
|
|
display:grid; grid-template-columns:1.1fr 0.9fr;
|
|
border:1px solid var(--line); border-radius:16px; overflow:hidden;
|
|
background:var(--card); min-height:480px;
|
|
}
|
|
.login-aside {
|
|
padding:40px 38px;
|
|
background:linear-gradient(160deg, color-mix(in srgb,var(--accent) 12%,var(--card)), var(--card));
|
|
border-right:1px solid var(--line);
|
|
display:flex; flex-direction:column; justify-content:center;
|
|
}
|
|
.login-brand-row { display:flex; align-items:center; gap:10px; margin-bottom:24px; }
|
|
.login-headline { font-size:var(--fs-2xl); line-height:var(--lh-tight); margin:0 0 12px; letter-spacing:-.02em; }
|
|
.login-tagline { font-size:var(--fs-md); color:var(--muted); line-height:1.6; margin:0 0 20px; max-width:340px; }
|
|
.login-trust { list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:10px; }
|
|
.login-trust li { display:flex; align-items:center; gap:9px; font-size:var(--fs-sm); color:var(--ink); }
|
|
.login-trust svg { flex-shrink:0; color:var(--ok); }
|
|
.login-form-col { padding:40px 38px; display:flex; flex-direction:column; justify-content:center; }
|
|
.btn-primary-full { width:100%; min-height:46px; font-family:var(--font-ui); font-size:var(--fs-md);
|
|
font-weight:600; background:var(--accent); color:#fff; border:none;
|
|
border-radius:8px; cursor:pointer; margin-top:4px; }
|
|
.btn-primary-full:hover { filter:brightness(1.08); }
|
|
.login-foot { text-align:center; font-size:var(--fs-sm); color:var(--muted); margin-top:18px; }
|
|
/* Mobil: stivuire verticala, formular sus */
|
|
@media (max-width:640px) {
|
|
.login-shell { grid-template-columns:1fr; grid-template-rows:auto auto; }
|
|
.login-aside { order:2; border-right:none; border-top:1px solid var(--line); padding:28px 22px; }
|
|
.login-form-col { order:1; padding:28px 22px; }
|
|
}
|
|
</style>
|
|
{% endblock %}
|