diff --git a/resources/css/app.css b/resources/css/app.css
index 371c9e5..6834036 100644
--- a/resources/css/app.css
+++ b/resources/css/app.css
@@ -104,6 +104,61 @@ html.qr-mobile-page body {
width: calc(66.666667% - 0.5rem);
}
+@layer components {
+ .btn-primary {
+ display: inline-flex;
+ align-items: center;
+ justify-content: center;
+ gap: 0.5rem;
+ border-radius: 9999px;
+ background-image: linear-gradient(to right, rgb(79 70 229), rgb(124 58 237));
+ padding: 0.5rem 1rem;
+ font-size: 0.875rem;
+ line-height: 1.25rem;
+ font-weight: 600;
+ color: #fff;
+ box-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05);
+ transition: filter 0.15s ease;
+ }
+
+ .btn-primary:hover {
+ filter: brightness(0.92);
+ }
+
+ .btn-primary:disabled {
+ opacity: 0.6;
+ pointer-events: none;
+ }
+
+ .btn-primary-sm {
+ padding: 0.375rem 0.75rem;
+ font-size: 0.75rem;
+ line-height: 1rem;
+ }
+
+ .btn-primary-lg {
+ padding: 0.625rem 1.25rem;
+ }
+
+ .btn-fab {
+ display: inline-flex;
+ height: 2.75rem;
+ width: 2.75rem;
+ align-items: center;
+ justify-content: center;
+ border-radius: 9999px;
+ background-image: linear-gradient(to right, rgb(79 70 229), rgb(124 58 237));
+ color: #fff;
+ box-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1);
+ transition: filter 0.15s ease;
+ }
+
+ .btn-fab:hover {
+ filter: brightness(0.92);
+ }
+}
+
+
@media (min-width: 640px) {
.mobile-stats-card {
width: auto;
diff --git a/resources/views/components/btn/create.blade.php b/resources/views/components/btn/create.blade.php
new file mode 100644
index 0000000..caa7d06
--- /dev/null
+++ b/resources/views/components/btn/create.blade.php
@@ -0,0 +1,17 @@
+@props([
+ 'href' => null,
+ 'type' => 'button',
+])
+
+@php
+ $tag = $href ? 'a' : 'button';
+@endphp
+
+<{{ $tag }}
+ @if ($href) href="{{ $href }}" @endif
+ @if ($tag === 'button') type="{{ $type }}" @endif
+ {{ $attributes->class(['btn-primary']) }}
+>
+
+ {{ $slot }}
+{{ $tag }}>
diff --git a/resources/views/components/btn/primary.blade.php b/resources/views/components/btn/primary.blade.php
new file mode 100644
index 0000000..b9cb905
--- /dev/null
+++ b/resources/views/components/btn/primary.blade.php
@@ -0,0 +1,16 @@
+@props([
+ 'href' => null,
+ 'type' => 'button',
+])
+
+@php
+ $tag = $href ? 'a' : 'button';
+@endphp
+
+<{{ $tag }}
+ @if ($href) href="{{ $href }}" @endif
+ @if ($tag === 'button') type="{{ $type }}" @endif
+ {{ $attributes->class(['btn-primary']) }}
+>
+ {{ $slot }}
+{{ $tag }}>
diff --git a/resources/views/components/user/service-topup-modal.blade.php b/resources/views/components/user/service-topup-modal.blade.php
index 8a80cd0..f9a5675 100644
--- a/resources/views/components/user/service-topup-modal.blade.php
+++ b/resources/views/components/user/service-topup-modal.blade.php
@@ -113,7 +113,7 @@
Cancel
diff --git a/resources/views/email/account/developers.blade.php b/resources/views/email/account/developers.blade.php
index ea2649a..d7fa0cd 100644
--- a/resources/views/email/account/developers.blade.php
+++ b/resources/views/email/account/developers.blade.php
@@ -30,7 +30,7 @@
class="mt-1 w-full rounded-lg border border-slate-200 bg-slate-50 px-3 py-2 text-sm focus:border-indigo-300 focus:bg-white focus:outline-none focus:ring-2 focus:ring-indigo-100">
@error('name')
{{ $message }}
@enderror
-
+
diff --git a/resources/views/email/account/settings.blade.php b/resources/views/email/account/settings.blade.php
index 54b854a..8d4e4b1 100644
--- a/resources/views/email/account/settings.blade.php
+++ b/resources/views/email/account/settings.blade.php
@@ -63,7 +63,7 @@
@error('mailbox_address'){{ $message }}
@enderror
-
+
@endif
@@ -104,7 +104,7 @@
-
+
@endsection
diff --git a/resources/views/email/account/team.blade.php b/resources/views/email/account/team.blade.php
index 70c9fef..c1baeaa 100644
--- a/resources/views/email/account/team.blade.php
+++ b/resources/views/email/account/team.blade.php
@@ -23,7 +23,7 @@
-
+
Admins can manage mailboxes and the team. Members can manage mailboxes. Invitees join by signing in with that email.
diff --git a/resources/views/email/dashboard.blade.php b/resources/views/email/dashboard.blade.php
index d48d16b..34d9b43 100644
--- a/resources/views/email/dashboard.blade.php
+++ b/resources/views/email/dashboard.blade.php
@@ -7,7 +7,7 @@
Overview
Your mailboxes at a glance.
- New mailbox
+ New mailbox
@if($error){{ $error }}
@endif
diff --git a/resources/views/email/domains/index.blade.php b/resources/views/email/domains/index.blade.php
index 6ae7e6c..7ff52db 100644
--- a/resources/views/email/domains/index.blade.php
+++ b/resources/views/email/domains/index.blade.php
@@ -9,7 +9,7 @@
@if(!empty($domains))
diff --git a/resources/views/email/domains/show.blade.php b/resources/views/email/domains/show.blade.php
index 0d4c453..f1c75b5 100644
--- a/resources/views/email/domains/show.blade.php
+++ b/resources/views/email/domains/show.blade.php
@@ -40,7 +40,7 @@
@else
diff --git a/resources/views/email/mailboxes/create.blade.php b/resources/views/email/mailboxes/create.blade.php
index ec3f8ba..e53c52c 100644
--- a/resources/views/email/mailboxes/create.blade.php
+++ b/resources/views/email/mailboxes/create.blade.php
@@ -86,8 +86,10 @@
@error('password'){{ $message }}
@enderror
-
+
@endif
diff --git a/resources/views/email/mailboxes/index.blade.php b/resources/views/email/mailboxes/index.blade.php
index 284eeac..f3a9f24 100644
--- a/resources/views/email/mailboxes/index.blade.php
+++ b/resources/views/email/mailboxes/index.blade.php
@@ -4,7 +4,7 @@
@if($error)
{{ $error }}
@endif
@@ -12,7 +12,7 @@
No mailboxes yet
Verify a domain, then create a mailbox like you@yourdomain.com.
-
Create mailbox
+
Create mailbox
@else
diff --git a/resources/views/email/mailboxes/show.blade.php b/resources/views/email/mailboxes/show.blade.php
index e5ee875..256156a 100644
--- a/resources/views/email/mailboxes/show.blade.php
+++ b/resources/views/email/mailboxes/show.blade.php
@@ -20,7 +20,7 @@
IMAP{{ $host }}:993 (SSL)
SMTP{{ $host }}:587 (STARTTLS)
-
Open Webmail ↗
+
Open Webmail ↗
@php
@@ -46,7 +46,7 @@
@if($quotaMb < $maxMb)
- Upgrade
+ Upgrade
@else
Top plan
@endif
diff --git a/resources/views/email/mailboxes/upgrade.blade.php b/resources/views/email/mailboxes/upgrade.blade.php
index e6c6a4d..ef6211d 100644
--- a/resources/views/email/mailboxes/upgrade.blade.php
+++ b/resources/views/email/mailboxes/upgrade.blade.php
@@ -44,7 +44,7 @@
@error('quota_mb'){{ $message }}
@enderror
-
diff --git a/resources/views/mini/payment-qrs/create.blade.php b/resources/views/mini/payment-qrs/create.blade.php
index fc77885..5ec89a9 100644
--- a/resources/views/mini/payment-qrs/create.blade.php
+++ b/resources/views/mini/payment-qrs/create.blade.php
@@ -39,7 +39,10 @@
-
+
diff --git a/resources/views/mini/payment-qrs/index.blade.php b/resources/views/mini/payment-qrs/index.blade.php
index d8a0021..2ff9122 100644
--- a/resources/views/mini/payment-qrs/index.blade.php
+++ b/resources/views/mini/payment-qrs/index.blade.php
@@ -6,7 +6,7 @@
My Payment QR
Static QRs to print or display — one per till or branch.
- New payment QR
+ New payment QR
@if(session('success'))
{{ session('success') }}
diff --git a/resources/views/mini/payment-qrs/show.blade.php b/resources/views/mini/payment-qrs/show.blade.php
index f74d637..5df9600 100644
--- a/resources/views/mini/payment-qrs/show.blade.php
+++ b/resources/views/mini/payment-qrs/show.blade.php
@@ -61,7 +61,7 @@
is_active) class="rounded border-slate-300 text-indigo-600">
QR is active (accepts payments)
-
+
diff --git a/resources/views/mini/payouts.blade.php b/resources/views/mini/payouts.blade.php
index ea9e61c..9c31a84 100644
--- a/resources/views/mini/payouts.blade.php
+++ b/resources/views/mini/payouts.blade.php
@@ -19,7 +19,7 @@
Withdraw to bank or MoMo from your Ladill account wallet. Ladill Pay integration will add in-app withdrawal history here.
-
+
Open wallet & withdraw
→
diff --git a/resources/views/mini/settings.blade.php b/resources/views/mini/settings.blade.php
index 239ec45..428f899 100644
--- a/resources/views/mini/settings.blade.php
+++ b/resources/views/mini/settings.blade.php
@@ -56,7 +56,7 @@
-