/* * Base Template Styles * Common styles and variables for all invoice templates */ :root { /* Colors */ --color-primary: #4f46e5; --color-primary-light: #eef2ff; --color-secondary: #6b7280; --color-text: #1f2937; --color-text-light: #4b5563; --color-background: #ffffff; --color-background-alt: #f9fafb; --color-border: #e5e7eb; --color-success: #10b981; --color-warning: #f59e0b; --color-error: #ef4444; /* Typography */ --font-primary: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif; --font-size-base: 16px; --font-size-sm: 0.875rem; --font-size-lg: 1.125rem; --font-size-xl: 1.25rem; --font-size-2xl: 1.5rem; --line-height-base: 1.5; --line-height-tight: 1.25; /* Spacing */ --spacing-unit: 1rem; --spacing-sm: 0.5rem; --spacing-md: 1rem; --spacing-lg: 1.5rem; --spacing-xl: 2rem; --spacing-2xl: 2.5rem; /* Border Radius */ --radius-sm: 0.25rem; --radius-md: 0.375rem; --radius-lg: 0.5rem; /* Shadows */ --shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, 0.05); --shadow-md: 0 4px 6px -1px rgba(0, 0, 0, 0.1); --shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, 0.1); /* Breakpoints */ --breakpoint-sm: 640px; --breakpoint-md: 768px; --breakpoint-lg: 1024px; } /* Base Template Styles */ .template-base { font-family: var(--font-primary); font-size: var(--font-size-base); line-height: var(--line-height-base); color: var(--color-text); background-color: var(--color-background); max-width: 800px; margin: 0 auto; padding: var(--spacing-xl); } /* Typography */ .template-base h1 { font-size: var(--font-size-2xl); font-weight: 600; color: var(--color-text); margin-bottom: var(--spacing-lg); } .template-base h2 { font-size: var(--font-size-xl); font-weight: 500; color: var(--color-text); margin-bottom: var(--spacing-md); } /* Tables */ .template-base table { width: 100%; border-collapse: collapse; margin: var(--spacing-lg) 0; } .template-base table thead { background-color: var(--color-background-alt); } .template-base table th { padding: var(--spacing-md); text-align: left; font-weight: 500; color: var(--color-text-light); font-size: var(--font-size-sm); border-bottom: 1px solid var(--color-border); } .template-base table td { padding: var(--spacing-md); border-bottom: 1px solid var(--color-border); vertical-align: top; } /* Invoice Sections */ .template-base .invoice-header { margin-bottom: var(--spacing-xl); } .template-base .invoice-content { margin-bottom: var(--spacing-xl); } .template-base .invoice-totals { margin-top: var(--spacing-xl); text-align: right; } .template-base .invoice-total-row { display: flex; justify-content: flex-end; margin-bottom: var(--spacing-sm); } .template-base .invoice-total-label { width: 150px; font-weight: 500; color: var(--color-text-light); } .template-base .invoice-grand-total { font-weight: 600; font-size: var(--font-size-lg); color: var(--color-text); } .template-base .invoice-footer { margin-top: var(--spacing-xl); padding-top: var(--spacing-md); border-top: 1px solid var(--color-border); color: var(--color-text-light); font-size: var(--font-size-sm); } /* Responsive Design */ @media (max-width: 768px) { .template-base { padding: var(--spacing-md); } .template-base table { display: block; overflow-x: auto; } .template-base .invoice-totals { width: 100%; } } /* Print Styles */ @media print { .template-base { background: none; box-shadow: none; padding: 0; } .template-base .no-print { display: none; } .template-base table { page-break-inside: avoid; } .template-base .invoice-totals { page-break-inside: avoid; } } /* Accessibility */ .template-base a:focus { outline: 2px solid var(--color-primary); outline-offset: 2px; } .template-base button:focus { outline: 2px solid var(--color-primary); outline-offset: 2px; } /* Utility Classes */ .template-base .text-right { text-align: right; } .template-base .text-center { text-align: center; } .template-base .font-bold { font-weight: 600; } .template-base .text-sm { font-size: var(--font-size-sm); } .template-base .text-lg { font-size: var(--font-size-lg); }