<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>{% block title %}Image & GLB Tool{% endblock %}</title>
<link rel="icon" href="data:image/svg+xml,<svg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 128 128%22><text y=%221.2em%22 font-size=%2296%22>⚫️</text></svg>">
{# Run `composer require symfony/webpack-encore-bundle` to start using Symfony UX #}
{% block stylesheets %}
<link href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-QWTKZyjpPEjISv5WaRU9OFeRpok6YctnYmDr5pNlyT2bRjXh0JMhjY6hW+ALEwIH" crossorigin="anonymous">
<style>
body {
background: #0f172a;
color: #e5e7eb;
min-height: 100vh;
display: flex;
flex-direction: column;
}
.app-shell {
flex: 1;
display: flex;
flex-direction: column;
}
.app-header {
border-bottom: 1px solid rgba(148, 163, 184, 0.2);
background: rgba(15, 23, 42, 0.95);
backdrop-filter: blur(12px);
}
.app-logo {
font-weight: 600;
letter-spacing: 0.08em;
text-transform: uppercase;
font-size: 0.85rem;
}
.app-main {
flex: 1;
padding: 2.5rem 1rem;
}
.app-card {
background: radial-gradient(circle at top left, #1f2937 0, #020617 55%);
border-radius: 1rem;
border: 1px solid rgba(148, 163, 184, 0.4);
box-shadow: 0 18px 45px rgba(15, 23, 42, 0.9);
}
.app-card-header {
border-bottom: 1px solid rgba(148, 163, 184, 0.3);
}
.app-muted {
color: #9ca3af;
}
a {
color: #38bdf8;
}
a:hover {
color: #0ea5e9;
}
.btn-primary {
background: linear-gradient(90deg, #4f46e5, #0ea5e9);
border: none;
}
.btn-primary:hover {
background: linear-gradient(90deg, #4338ca, #0284c7);
}
</style>
{% endblock %}
{% block javascripts %}
<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/bootstrap.bundle.min.js" integrity="sha384-YvpcrYf0tY3lHB60NNkmXc5s9fDVZLESaAA55NDzOxhy9GkcIdslK1eN7N6jIeHz" crossorigin="anonymous"></script>
{% endblock %}
</head>
<body>
<div class="app-shell">
<header class="app-header py-3 mb-3">
<div class="container d-flex justify-content-between align-items-center">
<div>
<div class="app-logo text-uppercase text-secondary">Image & GLB Pipeline</div>
<div class="small app-muted">Upload, import, resize and preview assets for your projects.</div>
</div>
<nav class="d-flex align-items-center gap-3 small">
{% if app.user %}
<a href="{{ path('instance_index') }}" class="text-decoration-none app-muted">Dashboard</a>
<a href="{{ path('app_profile') }}" class="text-decoration-none app-muted">Profile</a>
<span class="app-muted d-none d-md-inline">{{ app.user.email }}</span>
<a href="{{ path('app_logout') }}" class="btn btn-outline-light btn-sm">Logout</a>
{% else %}
<a href="{{ path('app_login') }}" class="btn btn-outline-light btn-sm">Login</a>
<a href="{{ path('app_register') }}" class="btn btn-primary btn-sm">Register</a>
{% endif %}
</nav>
</div>
</header>
<main class="app-main">
<div class="container">
{% block body %}{% endblock %}
</div>
</main>
</div>
</body>
</html>