<?php
// Shared <head> assets loaded by every project SPA module.
// Requires $assetsUrl to be set.
$assetsUrl = $assetsUrl ?? '';
?>
<?php include constant('BASE_PATH') . '/core/views/favicon.php'; ?>
<link href="<?= $assetsUrl ?>/bootstrap/css/bootstrap.min.css" rel="stylesheet">
<link href="<?= $assetsUrl ?>/icons/bootstrap-icons.css" rel="stylesheet">
<link href="<?= $assetsUrl ?>/sweetalert2/sweetalert2.min.css" rel="stylesheet">
<link href="<?= $assetsUrl ?>/css/project-shell.css?v=<?= (int) @filemtime(constant('BASE_PATH') . '/public/assets/css/project-shell.css') ?>" rel="stylesheet">
<?php include constant('BASE_PATH') . '/core/views/theme-head.php'; ?>
<link href="<?= $assetsUrl ?>/css/module-guide.css?v=<?= (int) @filemtime(constant('BASE_PATH') . '/public/assets/css/module-guide.css') ?>" rel="stylesheet">
<!-- Phone/tablet layer — every rule inside max-width media queries; desktop untouched. Loads last so it wins by order. -->
<link href="<?= $assetsUrl ?>/css/project-shell-mobile.css?v=<?= (int) @filemtime(constant('BASE_PATH') . '/public/assets/css/project-shell-mobile.css') ?>" rel="stylesheet">

<!-- GrapesJS styles (skipped when the module opts out via $skipGrapes) -->
<?php if (empty($skipGrapes)): ?>
<link rel="stylesheet" href="<?= $assetsUrl ?>/grapesjs/grapes.min.css">
<?php endif; ?>
