:root { /* Primitive Color Tokens */ --color-white: rgba(255, 255, 255, 1); --color-black: rgba(0, 0, 0, 1); --color-cream-50: rgba(252, 252, 249, 1); --color-cream-100: rgba(255, 255, 253, 1); --color-gray-200: rgba(245, 245, 245, 1); --color-gray-300: rgba(167, 169, 169, 1); --color-gray-400: rgba(119, 124, 124, 1); --color-slate-500: rgba(98, 108, 113, 1); --color-brown-600: rgba(94, 82, 64, 1); --color-charcoal-700: rgba(31, 33, 33, 1); --color-charcoal-800: rgba(38, 40, 40, 1); --color-slate-900: rgba(19, 52, 59, 1); --color-teal-300: rgba(50, 184, 198, 1); --color-teal-400: rgba(45, 166, 178, 1); --color-teal-500: rgba(33, 128, 141, 1); --color-teal-600: rgba(29, 116, 128, 1); --color-teal-700: rgba(26, 104, 115, 1); --color-teal-800: rgba(41, 150, 161, 1); --color-red-400: rgba(255, 84, 89, 1); --color-red-500: rgba(192, 21, 47, 1); --color-orange-400: rgba(230, 129, 97, 1); --color-orange-500: rgba(168, 75, 47, 1); /* RGB versions for opacity control */ --color-brown-600-rgb: 94, 82, 64; --color-teal-500-rgb: 33, 128, 141; --color-slate-900-rgb: 19, 52, 59; --color-slate-500-rgb: 98, 108, 113; --color-red-500-rgb: 192, 21, 47; --color-red-400-rgb: 255, 84, 89; --color-orange-500-rgb: 168, 75, 47; --color-orange-400-rgb: 230, 129, 97; /* Background color tokens (Light Mode) */ --color-bg-1: rgba(59, 130, 246, 0.08); /* Light blue */ --color-bg-2: rgba(245, 158, 11, 0.08); /* Light yellow */ --color-bg-3: rgba(34, 197, 94, 0.08); /* Light green */ --color-bg-4: rgba(239, 68, 68, 0.08); /* Light red */ --color-bg-5: rgba(147, 51, 234, 0.08); /* Light purple */ --color-bg-6: rgba(249, 115, 22, 0.08); /* Light orange */ --color-bg-7: rgba(236, 72, 153, 0.08); /* Light pink */ --color-bg-8: rgba(6, 182, 212, 0.08); /* Light cyan */ /* Semantic Color Tokens (Light Mode) */ --color-background: var(--color-cream-50); --color-surface: var(--color-cream-100); --color-text: var(--color-slate-900); --color-text-secondary: var(--color-slate-500); --color-primary: var(--color-teal-500); --color-primary-hover: var(--color-teal-600); --color-primary-active: var(--color-teal-700); --color-secondary: rgba(var(--color-brown-600-rgb), 0.12); --color-secondary-hover: rgba(var(--color-brown-600-rgb), 0.2); --color-secondary-active: rgba(var(--color-brown-600-rgb), 0.25); --color-border: rgba(var(--color-brown-600-rgb), 0.2); --color-btn-primary-text: var(--color-cream-50); --color-card-border: rgba(var(--color-brown-600-rgb), 0.12); --color-card-border-inner: rgba(var(--color-brown-600-rgb), 0.12); --color-error: var(--color-red-500); --color-success: var(--color-teal-500); --color-warning: var(--color-orange-500); --color-info: var(--color-slate-500); --color-focus-ring: rgba(var(--color-teal-500-rgb), 0.4); --color-select-caret: rgba(var(--color-slate-900-rgb), 0.8); /* Common style patterns */ --focus-ring: 0 0 0 3px var(--color-focus-ring); --focus-outline: 2px solid var(--color-primary); --status-bg-opacity: 0.15; --status-border-opacity: 0.25; --select-caret-light: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23134252' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E"); --select-caret-dark: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23f5f5f5' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E"); /* RGB versions for opacity control */ --color-success-rgb: 33, 128, 141; --color-error-rgb: 192, 21, 47; --color-warning-rgb: 168, 75, 47; --color-info-rgb: 98, 108, 113; /* Typography */ --font-family-base: "FKGroteskNeue", "Geist", "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif; --font-family-mono: "Berkeley Mono", ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace; --font-size-xs: 11px; --font-size-sm: 12px; --font-size-base: 14px; --font-size-md: 14px; --font-size-lg: 16px; --font-size-xl: 18px; --font-size-2xl: 20px; --font-size-3xl: 24px; --font-size-4xl: 30px; --font-weight-normal: 400; --font-weight-medium: 500; --font-weight-semibold: 550; --font-weight-bold: 600; --line-height-tight: 1.2; --line-height-normal: 1.5; --letter-spacing-tight: -0.01em; /* Spacing */ --space-0: 0; --space-1: 1px; --space-2: 2px; --space-4: 4px; --space-6: 6px; --space-8: 8px; --space-10: 10px; --space-12: 12px; --space-16: 16px; --space-20: 20px; --space-24: 24px; --space-32: 32px; /* Border Radius */ --radius-sm: 6px; --radius-base: 8px; --radius-md: 10px; --radius-lg: 12px; --radius-full: 9999px; /* Shadows */ --shadow-xs: 0 1px 2px rgba(0, 0, 0, 0.02); --shadow-sm: 0 1px 3px rgba(0, 0, 0, 0.04), 0 1px 2px rgba(0, 0, 0, 0.02); --shadow-md: 0 4px 6px -1px rgba(0, 0, 0, 0.04), 0 2px 4px -1px rgba(0, 0, 0, 0.02); --shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, 0.04), 0 4px 6px -2px rgba(0, 0, 0, 0.02); --shadow-inset-sm: inset 0 1px 0 rgba(255, 255, 255, 0.15), inset 0 -1px 0 rgba(0, 0, 0, 0.03); /* Animation */ --duration-fast: 150ms; --duration-normal: 250ms; --ease-standard: cubic-bezier(0.16, 1, 0.3, 1); /* Layout */ --container-sm: 640px; --container-md: 768px; --container-lg: 1024px; --container-xl: 1280px; } /* Dark mode colors */ @media (prefers-color-scheme: dark) { :root { /* RGB versions for opacity control (Dark Mode) */ --color-gray-400-rgb: 119, 124, 124; --color-teal-300-rgb: 50, 184, 198; --color-gray-300-rgb: 167, 169, 169; --color-gray-200-rgb: 245, 245, 245; /* Background color tokens (Dark Mode) */ --color-bg-1: rgba(29, 78, 216, 0.15); /* Dark blue */ --color-bg-2: rgba(180, 83, 9, 0.15); /* Dark yellow */ --color-bg-3: rgba(21, 128, 61, 0.15); /* Dark green */ --color-bg-4: rgba(185, 28, 28, 0.15); /* Dark red */ --color-bg-5: rgba(107, 33, 168, 0.15); /* Dark purple */ --color-bg-6: rgba(194, 65, 12, 0.15); /* Dark orange */ --color-bg-7: rgba(190, 24, 93, 0.15); /* Dark pink */ --color-bg-8: rgba(8, 145, 178, 0.15); /* Dark cyan */ /* Semantic Color Tokens (Dark Mode) */ --color-background: var(--color-charcoal-700); --color-surface: var(--color-charcoal-800); --color-text: var(--color-gray-200); --color-text-secondary: rgba(var(--color-gray-300-rgb), 0.7); --color-primary: var(--color-teal-300); --color-primary-hover: var(--color-teal-400); --color-primary-active: var(--color-teal-800); --color-secondary: rgba(var(--color-gray-400-rgb), 0.15); --color-secondary-hover: rgba(var(--color-gray-400-rgb), 0.25); --color-secondary-active: rgba(var(--color-gray-400-rgb), 0.3); --color-border: rgba(var(--color-gray-400-rgb), 0.3); --color-error: var(--color-red-400); --color-success: var(--color-teal-300); --color-warning: var(--color-orange-400); --color-info: var(--color-gray-300); --color-focus-ring: rgba(var(--color-teal-300-rgb), 0.4); --color-btn-primary-text: var(--color-slate-900); --color-card-border: rgba(var(--color-gray-400-rgb), 0.2); --color-card-border-inner: rgba(var(--color-gray-400-rgb), 0.15); --shadow-inset-sm: inset 0 1px 0 rgba(255, 255, 255, 0.1), inset 0 -1px 0 rgba(0, 0, 0, 0.15); --button-border-secondary: rgba(var(--color-gray-400-rgb), 0.2); --color-border-secondary: rgba(var(--color-gray-400-rgb), 0.2); --color-select-caret: rgba(var(--color-gray-200-rgb), 0.8); /* Common style patterns - updated for dark mode */ --focus-ring: 0 0 0 3px var(--color-focus-ring); --focus-outline: 2px solid var(--color-primary); --status-bg-opacity: 0.15; --status-border-opacity: 0.25; --select-caret-light: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23134252' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E"); --select-caret-dark: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23f5f5f5' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E"); /* RGB versions for dark mode */ --color-success-rgb: var(--color-teal-300-rgb); --color-error-rgb: var(--color-red-400-rgb); --color-warning-rgb: var(--color-orange-400-rgb); --color-info-rgb: var(--color-gray-300-rgb); } } /* Data attribute for manual theme switching */ [data-color-scheme="dark"] { /* RGB versions for opacity control (dark mode) */ --color-gray-400-rgb: 119, 124, 124; --color-teal-300-rgb: 50, 184, 198; --color-gray-300-rgb: 167, 169, 169; --color-gray-200-rgb: 245, 245, 245; /* Colorful background palette - Dark Mode */ --color-bg-1: rgba(29, 78, 216, 0.15); /* Dark blue */ --color-bg-2: rgba(180, 83, 9, 0.15); /* Dark yellow */ --color-bg-3: rgba(21, 128, 61, 0.15); /* Dark green */ --color-bg-4: rgba(185, 28, 28, 0.15); /* Dark red */ --color-bg-5: rgba(107, 33, 168, 0.15); /* Dark purple */ --color-bg-6: rgba(194, 65, 12, 0.15); /* Dark orange */ --color-bg-7: rgba(190, 24, 93, 0.15); /* Dark pink */ --color-bg-8: rgba(8, 145, 178, 0.15); /* Dark cyan */ /* Semantic Color Tokens (Dark Mode) */ --color-background: var(--color-charcoal-700); --color-surface: var(--color-charcoal-800); --color-text: var(--color-gray-200); --color-text-secondary: rgba(var(--color-gray-300-rgb), 0.7); --color-primary: var(--color-teal-300); --color-primary-hover: var(--color-teal-400); --color-primary-active: var(--color-teal-800); --color-secondary: rgba(var(--color-gray-400-rgb), 0.15); --color-secondary-hover: rgba(var(--color-gray-400-rgb), 0.25); --color-secondary-active: rgba(var(--color-gray-400-rgb), 0.3); --color-border: rgba(var(--color-gray-400-rgb), 0.3); --color-error: var(--color-red-400); --color-success: var(--color-teal-300); --color-warning: var(--color-orange-400); --color-info: var(--color-gray-300); --color-focus-ring: rgba(var(--color-teal-300-rgb), 0.4); --color-btn-primary-text: var(--color-slate-900); --color-card-border: rgba(var(--color-gray-400-rgb), 0.15); --color-card-border-inner: rgba(var(--color-gray-400-rgb), 0.15); --shadow-inset-sm: inset 0 1px 0 rgba(255, 255, 255, 0.1), inset 0 -1px 0 rgba(0, 0, 0, 0.15); --color-border-secondary: rgba(var(--color-gray-400-rgb), 0.2); --color-select-caret: rgba(var(--color-gray-200-rgb), 0.8); /* Common style patterns - updated for dark mode */ --focus-ring: 0 0 0 3px var(--color-focus-ring); --focus-outline: 2px solid var(--color-primary); --status-bg-opacity: 0.15; --status-border-opacity: 0.25; --select-caret-light: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23134252' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E"); --select-caret-dark: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23f5f5f5' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E"); /* RGB versions for dark mode */ --color-success-rgb: var(--color-teal-300-rgb); --color-error-rgb: var(--color-red-400-rgb); --color-warning-rgb: var(--color-orange-400-rgb); --color-info-rgb: var(--color-gray-300-rgb); } [data-color-scheme="light"] { /* RGB versions for opacity control (light mode) */ --color-brown-600-rgb: 94, 82, 64; --color-teal-500-rgb: 33, 128, 141; --color-slate-900-rgb: 19, 52, 59; /* Semantic Color Tokens (Light Mode) */ --color-background: var(--color-cream-50); --color-surface: var(--color-cream-100); --color-text: var(--color-slate-900); --color-text-secondary: var(--color-slate-500); --color-primary: var(--color-teal-500); --color-primary-hover: var(--color-teal-600); --color-primary-active: var(--color-teal-700); --color-secondary: rgba(var(--color-brown-600-rgb), 0.12); --color-secondary-hover: rgba(var(--color-brown-600-rgb), 0.2); --color-secondary-active: rgba(var(--color-brown-600-rgb), 0.25); --color-border: rgba(var(--color-brown-600-rgb), 0.2); --color-btn-primary-text: var(--color-cream-50); --color-card-border: rgba(var(--color-brown-600-rgb), 0.12); --color-card-border-inner: rgba(var(--color-brown-600-rgb), 0.12); --color-error: var(--color-red-500); --color-success: var(--color-teal-500); --color-warning: var(--color-orange-500); --color-info: var(--color-slate-500); --color-focus-ring: rgba(var(--color-teal-500-rgb), 0.4); /* RGB versions for light mode */ --color-success-rgb: var(--color-teal-500-rgb); --color-error-rgb: var(--color-red-500-rgb); --color-warning-rgb: var(--color-orange-500-rgb); --color-info-rgb: var(--color-slate-500-rgb); } /* Base styles */ html { font-size: var(--font-size-base); font-family: var(--font-family-base); line-height: var(--line-height-normal); color: var(--color-text); background-color: var(--color-background); -webkit-font-smoothing: antialiased; box-sizing: border-box; } body { margin: 0; padding: 0; } *, *::before, *::after { box-sizing: inherit; } /* Typography */ h1, h2, h3, h4, h5, h6 { margin: 0; font-weight: var(--font-weight-semibold); line-height: var(--line-height-tight); color: var(--color-text); letter-spacing: var(--letter-spacing-tight); } h1 { font-size: var(--font-size-4xl); } h2 { font-size: var(--font-size-3xl); } h3 { font-size: var(--font-size-2xl); } h4 { font-size: var(--font-size-xl); } h5 { font-size: var(--font-size-lg); } h6 { font-size: var(--font-size-md); } p { margin: 0 0 var(--space-16) 0; } a { color: var(--color-primary); text-decoration: none; transition: color var(--duration-fast) var(--ease-standard); } a:hover { color: var(--color-primary-hover); } code, pre { font-family: var(--font-family-mono); font-size: calc(var(--font-size-base) * 0.95); background-color: var(--color-secondary); border-radius: var(--radius-sm); } code { padding: var(--space-1) var(--space-4); } pre { padding: var(--space-16); margin: var(--space-16) 0; overflow: auto; border: 1px solid var(--color-border); } pre code { background: none; padding: 0; } /* Buttons */ .btn { display: inline-flex; align-items: center; justify-content: center; padding: var(--space-8) var(--space-16); border-radius: var(--radius-base); font-size: var(--font-size-base); font-weight: 500; line-height: 1.5; cursor: pointer; transition: all var(--duration-normal) var(--ease-standard); border: none; text-decoration: none; position: relative; } .btn:focus-visible { outline: none; box-shadow: var(--focus-ring); } .btn--primary { background: var(--color-primary); color: var(--color-btn-primary-text); } .btn--primary:hover { background: var(--color-primary-hover); } .btn--primary:active { background: var(--color-primary-active); } .btn--secondary { background: var(--color-secondary); color: var(--color-text); } .btn--secondary:hover { background: var(--color-secondary-hover); } .btn--secondary:active { background: var(--color-secondary-active); } .btn--outline { background: transparent; border: 1px solid var(--color-border); color: var(--color-text); } .btn--outline:hover { background: var(--color-secondary); } .btn--sm { padding: var(--space-4) var(--space-12); font-size: var(--font-size-sm); border-radius: var(--radius-sm); } .btn--lg { padding: var(--space-10) var(--space-20); font-size: var(--font-size-lg); border-radius: var(--radius-md); } .btn--full-width { width: 100%; } .btn:disabled { opacity: 0.5; cursor: not-allowed; } /* Form elements */ .form-control { display: block; width: 100%; padding: var(--space-8) var(--space-12); font-size: var(--font-size-md); line-height: 1.5; color: var(--color-text); background-color: var(--color-surface); border: 1px solid var(--color-border); border-radius: var(--radius-base); transition: border-color var(--duration-fast) var(--ease-standard), box-shadow var(--duration-fast) var(--ease-standard); } textarea.form-control { font-family: var(--font-family-base); font-size: var(--font-size-base); } select.form-control { padding: var(--space-8) var(--space-12); -webkit-appearance: none; -moz-appearance: none; appearance: none; background-image: var(--select-caret-light); background-repeat: no-repeat; background-position: right var(--space-12) center; background-size: 16px; padding-right: var(--space-32); } /* Add a dark mode specific caret */ @media (prefers-color-scheme: dark) { select.form-control { background-image: var(--select-caret-dark); } } /* Also handle data-color-scheme */ [data-color-scheme="dark"] select.form-control { background-image: var(--select-caret-dark); } [data-color-scheme="light"] select.form-control { background-image: var(--select-caret-light); } .form-control:focus { border-color: var(--color-primary); outline: var(--focus-outline); } .form-label { display: block; margin-bottom: var(--space-8); font-weight: var(--font-weight-medium); font-size: var(--font-size-sm); } .form-group { margin-bottom: var(--space-16); } /* Card component */ .card { background-color: var(--color-surface); border-radius: var(--radius-lg); border: 1px solid var(--color-card-border); box-shadow: var(--shadow-sm); overflow: hidden; transition: box-shadow var(--duration-normal) var(--ease-standard); } .card:hover { box-shadow: var(--shadow-md); } .card__body { padding: var(--space-16); } .card__header, .card__footer { padding: var(--space-16); border-bottom: 1px solid var(--color-card-border-inner); } /* Status indicators - simplified with CSS variables */ .status { display: inline-flex; align-items: center; padding: var(--space-6) var(--space-12); border-radius: var(--radius-full); font-weight: var(--font-weight-medium); font-size: var(--font-size-sm); } .status--success { background-color: rgba( var(--color-success-rgb, 33, 128, 141), var(--status-bg-opacity) ); color: var(--color-success); border: 1px solid rgba(var(--color-success-rgb, 33, 128, 141), var(--status-border-opacity)); } .status--error { background-color: rgba( var(--color-error-rgb, 192, 21, 47), var(--status-bg-opacity) ); color: var(--color-error); border: 1px solid rgba(var(--color-error-rgb, 192, 21, 47), var(--status-border-opacity)); } .status--warning { background-color: rgba( var(--color-warning-rgb, 168, 75, 47), var(--status-bg-opacity) ); color: var(--color-warning); border: 1px solid rgba(var(--color-warning-rgb, 168, 75, 47), var(--status-border-opacity)); } .status--info { background-color: rgba( var(--color-info-rgb, 98, 108, 113), var(--status-bg-opacity) ); color: var(--color-info); border: 1px solid rgba(var(--color-info-rgb, 98, 108, 113), var(--status-border-opacity)); } /* Container layout */ .container { width: 100%; margin-right: auto; margin-left: auto; padding-right: var(--space-16); padding-left: var(--space-16); } @media (min-width: 640px) { .container { max-width: var(--container-sm); } } @media (min-width: 768px) { .container { max-width: var(--container-md); } } @media (min-width: 1024px) { .container { max-width: var(--container-lg); } } @media (min-width: 1280px) { .container { max-width: var(--container-xl); } } /* Utility classes */ .flex { display: flex; } .flex-col { flex-direction: column; } .items-center { align-items: center; } .justify-center { justify-content: center; } .justify-between { justify-content: space-between; } .gap-4 { gap: var(--space-4); } .gap-8 { gap: var(--space-8); } .gap-16 { gap: var(--space-16); } .m-0 { margin: 0; } .mt-8 { margin-top: var(--space-8); } .mb-8 { margin-bottom: var(--space-8); } .mx-8 { margin-left: var(--space-8); margin-right: var(--space-8); } .my-8 { margin-top: var(--space-8); margin-bottom: var(--space-8); } .p-0 { padding: 0; } .py-8 { padding-top: var(--space-8); padding-bottom: var(--space-8); } .px-8 { padding-left: var(--space-8); padding-right: var(--space-8); } .py-16 { padding-top: var(--space-16); padding-bottom: var(--space-16); } .px-16 { padding-left: var(--space-16); padding-right: var(--space-16); } .block { display: block; } .hidden { display: none; } /* Accessibility */ .sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border-width: 0; } :focus-visible { outline: var(--focus-outline); outline-offset: 2px; } /* Dark mode specifics */ [data-color-scheme="dark"] .btn--outline { border: 1px solid var(--color-border-secondary); } @font-face { font-family: 'FKGroteskNeue'; src: url('https://r2cdn.perplexity.ai/fonts/FKGroteskNeue.woff2') format('woff2'); } /* END PERPLEXITY DESIGN SYSTEM */ /* Custom properties for Blubooks brand */ :root { --blubooks-dark-1: #090F14; --blubooks-dark-2: #0D1720; --blubooks-light-1: #82B5C1; --blubooks-light-2: #BCE6F5; --blubooks-white: #FFFFFF; --blubooks-gray: #F8F9FA; --blubooks-text-light: rgba(255, 255, 255, 0.9); /* Override design system colors with brand colors */ --color-primary: var(--blubooks-light-1); --color-primary-hover: #6BA4B1; --color-primary-active: #5A93A0; --color-text: var(--blubooks-dark-1); --color-background: var(--blubooks-white); --color-surface: var(--blubooks-gray); } /* Header Styles */ .header { background: linear-gradient(135deg, var(--blubooks-dark-1) 0%, var(--blubooks-dark-2) 100%); color: var(--blubooks-white); padding: var(--space-16) 0; position: sticky; top: 0; z-index: 100; box-shadow: var(--shadow-md); } .header__content { display: flex; justify-content: space-between; align-items: center; } .header__logo .logo { font-size: var(--font-size-3xl); font-weight: var(--font-weight-bold); color: var(--blubooks-light-2); margin: 0; letter-spacing: -0.02em; cursor: pointer; } .header__logo .tagline { font-size: var(--font-size-sm); color: rgba(188, 230, 245, 0.8); margin: var(--space-4) 0 0 0; font-weight: var(--font-weight-normal); } .nav__list { display: flex; list-style: none; margin: 0; padding: 0; gap: var(--space-32); } .nav__link { color: var(--blubooks-text-light); text-decoration: none; font-weight: var(--font-weight-medium); font-size: var(--font-size-md); transition: color var(--duration-fast) var(--ease-standard); } .nav__link:hover { color: var(--blubooks-light-2); } .nav__toggle { display: none; flex-direction: column; gap: var(--space-4); background: none; border: none; cursor: pointer; padding: var(--space-8); z-index: 101; } .nav__toggle span { width: 24px; height: 2px; background: var(--blubooks-white); transition: all var(--duration-normal) var(--ease-standard); border-radius: 2px; } /* Hero Section */ .hero { background: linear-gradient(135deg, var(--blubooks-light-2) 0%, rgba(188, 230, 245, 0.3) 100%); padding: var(--space-32) 0; } .hero__content { max-width: 800px; margin: 0 auto; text-align: center; } .hero__meta { display: flex; justify-content: center; gap: var(--space-16); margin-bottom: var(--space-24); font-size: var(--font-size-sm); color: var(--color-text-secondary); } .hero__title { font-size: var(--font-size-4xl); line-height: var(--line-height-tight); margin-bottom: var(--space-24); color: var(--blubooks-dark-1); font-weight: var(--font-weight-bold); } .hero__subtitle { font-size: var(--font-size-xl); color: var(--color-text-secondary); line-height: var(--line-height-normal); margin: 0; } /* Featured Image */ .featured-image { padding: var(--space-32) 0; background: var(--color-surface); } .featured-image__container { max-width: 900px; margin: 0 auto; border-radius: var(--radius-lg); overflow: hidden; box-shadow: var(--shadow-lg); } .featured-image__img { width: 100%; height: auto; display: block; } /* Blog Content */ .blog-content { padding: var(--space-32) 0; } .blog-content__wrapper { max-width: 750px; margin: 0 auto; } .blog-content__text { font-size: var(--font-size-lg); line-height: 1.7; color: var(--color-text); } .blog-content__text p { margin-bottom: var(--space-24); } .blog-content__text h2 { font-size: var(--font-size-2xl); color: var(--blubooks-dark-1); margin: var(--space-32) 0 var(--space-16) 0; border-left: 4px solid var(--blubooks-light-1); padding-left: var(--space-16); } .blog-content__text h3 { font-size: var(--font-size-xl); color: var(--blubooks-dark-1); margin: var(--space-24) 0 var(--space-12) 0; } .intro-text { font-size: var(--font-size-xl); font-weight: var(--font-weight-medium); color: var(--blubooks-dark-1); border-left: 4px solid var(--blubooks-light-1); padding-left: var(--space-20); margin-bottom: var(--space-32) !important; background: rgba(188, 230, 245, 0.1); padding: var(--space-20); border-radius: var(--radius-base); } .services-list { list-style: none; padding: 0; margin: var(--space-24) 0; } .services-list li { padding: var(--space-16); margin-bottom: var(--space-12); background: var(--color-surface); border-radius: var(--radius-base); border-left: 4px solid var(--blubooks-light-1); } /* CTA Sections */ .cta-section { background: linear-gradient(135deg, var(--blubooks-light-1) 0%, var(--blubooks-light-2) 100%); padding: var(--space-32); border-radius: var(--radius-lg); text-align: center; margin: var(--space-32) 0; color: var(--blubooks-white); } .cta-section h3 { color: var(--blubooks-white); margin-bottom: var(--space-16); font-size: var(--font-size-2xl); } .cta-section p { font-size: var(--font-size-lg); margin-bottom: var(--space-24); color: rgba(255, 255, 255, 0.9); } .final-cta { background: var(--blubooks-gray); padding: var(--space-32); border-radius: var(--radius-lg); text-align: center; margin: var(--space-32) 0; border: 2px solid var(--blubooks-light-2); } .final-cta h2 { color: var(--blubooks-dark-1); margin-bottom: var(--space-16); border: none; padding: 0; } .cta-buttons { display: flex; gap: var(--space-16); justify-content: center; margin-top: var(--space-24); flex-wrap: wrap; } /* Content Images */ .content-image { margin: var(--space-32) 0; text-align: center; } .content-image__img { width: 100%; max-width: 600px; height: auto; border-radius: var(--radius-lg); box-shadow: var(--shadow-md); } .content-image__caption { font-size: var(--font-size-sm); color: var(--color-text-secondary); font-style: italic; margin-top: var(--space-12); } /* About Section */ .about { background: var(--color-surface); padding: var(--space-32) 0; } .about__content { max-width: 800px; margin: 0 auto; text-align: center; } .about__content h2 { font-size: var(--font-size-3xl); color: var(--blubooks-dark-1); margin-bottom: var(--space-24); } .about__content p { font-size: var(--font-size-lg); line-height: var(--line-height-normal); color: var(--color-text-secondary); margin-bottom: var(--space-16); } /* Button Overrides */ .btn { font-weight: var(--font-weight-semibold); text-transform: none; letter-spacing: normal; transition: all var(--duration-normal) var(--ease-standard); } .btn--primary { background: var(--blubooks-light-1); color: var(--blubooks-white); } .btn--primary:hover { background: var(--color-primary-hover); transform: translateY(-2px); box-shadow: var(--shadow-md); } .btn--outline { border-color: var(--blubooks-light-1); color: var(--blubooks-light-1); } .btn--outline:hover { background: var(--blubooks-light-1); color: var(--blubooks-white); transform: translateY(-2px); box-shadow: var(--shadow-md); } /* Services Section */ .services { background: var(--blubooks-white); padding: var(--space-32) 0; } .services__header { text-align: center; margin-bottom: var(--space-32); max-width: 600px; margin-left: auto; margin-right: auto; } .services__header h2 { font-size: var(--font-size-3xl); color: var(--blubooks-dark-1); margin-bottom: var(--space-16); } .services__header p { font-size: var(--font-size-lg); color: var(--color-text-secondary); } .services__grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: var(--space-24); max-width: 1200px; margin: 0 auto; } .service-card { background: var(--blubooks-white); padding: var(--space-24); border-radius: var(--radius-lg); box-shadow: var(--shadow-sm); transition: all var(--duration-normal) var(--ease-standard); border-top: 4px solid var(--blubooks-light-1); border: 1px solid rgba(130, 181, 193, 0.2); } .service-card:hover { transform: translateY(-4px); box-shadow: var(--shadow-lg); border-color: var(--blubooks-light-1); } .service-card h3 { color: var(--blubooks-dark-1); font-size: var(--font-size-xl); margin-bottom: var(--space-12); } .service-card p { color: var(--color-text-secondary); line-height: var(--line-height-normal); margin: 0; } /* Footer */ .footer { background: linear-gradient(135deg, var(--blubooks-dark-1) 0%, var(--blubooks-dark-2) 100%); color: var(--blubooks-white); padding: var(--space-32) 0 var(--space-16) 0; } .footer__content { display: grid; grid-template-columns: 2fr 1fr; gap: var(--space-32); margin-bottom: var(--space-32); } .footer__logo { font-size: var(--font-size-2xl); color: var(--blubooks-light-2); margin-bottom: var(--space-8); } .footer__tagline { font-size: var(--font-size-md); color: rgba(188, 230, 245, 0.8); margin-bottom: var(--space-16); font-weight: var(--font-weight-medium); } .footer__brand p { color: var(--blubooks-text-light); line-height: var(--line-height-normal); } .footer__contact h4 { color: var(--blubooks-light-2); margin-bottom: var(--space-16); } .contact-info p { margin-bottom: var(--space-8); color: var(--blubooks-text-light); } .contact-info a { color: var(--blubooks-light-2); text-decoration: none; } .contact-info a:hover { color: var(--blubooks-white); text-decoration: underline; } .footer__bottom { text-align: center; padding-top: var(--space-16); border-top: 1px solid rgba(130, 181, 193, 0.3); color: rgba(255, 255, 255, 0.7); font-size: var(--font-size-sm); } /* Responsive Design */ @media (max-width: 768px) { .nav__list { display: none; position: absolute; top: 100%; left: 0; right: 0; background: var(--blubooks-dark-2); flex-direction: column; padding: var(--space-16); gap: var(--space-16); box-shadow: var(--shadow-lg); } .nav__list.active { display: flex; } .nav__toggle { display: flex; } .hero__title { font-size: var(--font-size-3xl); } .hero__subtitle { font-size: var(--font-size-lg); } .blog-content__text { font-size: var(--font-size-md); } .intro-text { font-size: var(--font-size-lg); } .cta-buttons { flex-direction: column; align-items: center; } .footer__content { grid-template-columns: 1fr; gap: var(--space-24); } .services__grid { grid-template-columns: 1fr; } .hero__meta { flex-direction: column; gap: var(--space-8); } } @media (max-width: 480px) { .hero { padding: var(--space-24) 0; } .hero__title { font-size: var(--font-size-2xl); } .cta-section { padding: var(--space-24); } .final-cta { padding: var(--space-24); } .service-card { padding: var(--space-16); } .blog-content { padding: var(--space-24) 0; } .featured-image { padding: var(--space-24) 0; } .services { padding: var(--space-24) 0; } .about { padding: var(--space-24) 0; } } /* Smooth scrolling */ html { scroll-behavior: smooth; } /* Focus styles for accessibility */ .btn:focus-visible { box-shadow: var(--focus-ring); } .nav__link:focus-visible { outline: 2px solid var(--blubooks-light-2); outline-offset: 2px; border-radius: var(--radius-sm); } /* Progress bar for scroll indicator */ .scroll-progress { position: fixed; top: 0; left: 0; width: 0%; height: 3px; background: linear-gradient(90deg, var(--blubooks-light-1), var(--blubooks-light-2)); z-index: 9999; transition: width 0.3s ease; } /* Loading animation for images */ img { transition: opacity 0.3s ease; }

Introduction

The IRS requires anyone who owns 25% or more of a foreign entity to file a 5472 form as part of their tax return. This includes corporations and LLCs, but it also includes real estate and other investments such as gold.

What is the 5472 form?

The 5472 Form is a form that businesses and organizations in the United States use to disclose their activities and relationships with foreign financial institutions. The form was created by the Financial Crimes Enforcement Network (FinCEN), which is a bureau of the United States Department of Treasury.

The 5472 Form has three main uses:

  • To establish whether or not a business or organization is required to complete FinCEN Form 114, Report of Foreign Bank and Financial Accounts (FBAR). If you are required to file an FBAR, then you must also complete this form as well.
  • To fulfill foreign filing requirements for an exempt account holder who does not have any income attributable to their exempt account(s) if they are required to file another type of report with FinCEN instead of an FBAR.
  • For wire transfers from certain types of accounts where there were more than two remittances per month during the calendar year within either domestic or international locations

Why do you need to fill out the 5472 form?

You might be wondering, "Why do I need to fill out the 5472 form?" The IRS requires all U.S. shareholders of a foreign corporation to complete and submit Form 5472 (Information Return of U.S. Persons with Respect to Certain Foreign Corporations) by filing it with the Internal Revenue Service (IRS). This form is used to report certain information about ownership interests in foreign corporations, including income received from that foreign corporation, assets owned by that foreign corporation, and other pertinent details about your relationship with that entity—information which may affect your tax liability as an owner or investor in this company.

You will have been sent a copy of Form 5472 by the company itself if you are considered one of its owners or investors (typically through being registered on some type of corporate document). If you own stock in a publicly-traded company and do not receive this form directly from them within two weeks after they file their documents with their local government office, contact them immediately and ask them why they haven't sent it yet; they should be able to send another copy straight away once they know what's going on

How is your foreign-owned US corporation affected by the 5472 Form?

If your foreign-owned US corporation is required to file Form 5472, you'll need to complete the form and submit it with your tax return. The information that you report on this form will help IRS determine if any income was earned by the foreign entity and whether that income was then passed through to its shareholders in the form of dividends.

When is the Filing Requirement for US Corporations Owned By Foreign Entities due?

The 5472 form is a tax form that must be filed with the IRS by June 30 of the year following the year of the transaction, when you own or control a US corporation that is owned or controlled by a foreign entity.

The form should be submitted by each foreign corporation and also by each local US corporation owned or controlled by it.

Conclusion

We’ve provided you with everything you need to know about requirements for filing a 5472 form. If you have any questions or need support in submitting this form. Reach out to us today via the 'Get Started' link and a member of the Blubooks team will be ready to point you in the right direction!

Your Business is Global. Your Accounting should be too.

Sign up today to speak with one of our accountants and learn how we can take take care of your financials.

Get started