@import "tailwindcss"; @import "@nuxt/ui"; /* Ubuntu font import */ @import url("https://fonts.googleapis.com/css2?family=Ubuntu:wght@300;400;500;700&family=Ubuntu+Mono:wght@400;700&display=swap"); [data-theme="dark"] { html { @apply bg-white text-neutral-900; } html.dark { @apply bg-neutral-950 text-neutral-100; } } /* Disable all animations, transitions, and smooth scrolling app-wide */ html, body { scroll-behavior: auto !important; } *, *::before, *::after { animation: none !important; transition: none !important; } /* ========================= TEMPLATE DOCUMENT LAYOUT ========================= */ /* Template wrapper and document styling */ .template-wrapper { @apply min-h-screen relative; } .document-page { @apply max-w-full mx-auto relative p-8 border-1 border-neutral-900 dark:border-neutral-100; } /* ========================= SECTION STYLING ========================= */ .section-card { @apply border border-neutral-200 dark:border-neutral-800 rounded-lg p-5 mb-8; } .section-card::before { content: ""; position: absolute; top: 4px; left: 4px; right: -4px; bottom: -4px; background: black; background-image: radial-gradient(white 1px, transparent 1px); background-size: 2px 2px; z-index: -1; } .section-title { font-size: 1.75rem; font-weight: 800; color: inherit; margin: 0 0 1rem 0; } .subsection-title { font-size: 1.25rem; font-weight: 600; color: #374151; margin: 0 0 0.75rem 0; text-decoration: none; border-bottom: 1px solid #e5e7eb; padding-bottom: 0.25rem; } /* ========================= FORM STYLING ========================= */ .form-group-large { margin-bottom: 1.5rem; width: 100%; } .form-group-large > * { width: 100%; } /* Ensure consistent alignment for all form fields */ .form-group-large :deep(textarea), .form-group-large :deep(input), .form-group-large :deep(select), .form-group-large :deep(.ui-select), .form-group-large :deep(.ui-input), .form-group-large :deep(.ui-textarea) { margin-left: 0 !important; padding-left: 0.75rem !important; } /* Additional targeting for UInput, USelect, UTextarea components */ .form-group-large :deep(.u-input), .form-group-large :deep(.u-select), .form-group-large :deep(.u-textarea), .form-group-large :deep([data-headlessui-state]), .form-group-large :deep(.relative) { margin-left: 0 !important; } .form-group-large :deep(.u-input input), .form-group-large :deep(.u-select select), .form-group-large :deep(.u-textarea textarea) { margin-left: 0 !important; padding-left: 0.75rem !important; } .form-group-large .large-field { @apply block w-full mt-2 text-lg rounded-md border-none transition-colors duration-150 ease-in-out; } .form-group-large .large-field:focus { background: #f3f4f6; box-shadow: none; outline: 2px solid #3b82f6; outline-offset: -2px; } .inline-field { display: inline-block; margin: 0 0.25rem; min-width: 120px; border: none; background: #f9fafb; padding: 0.25rem 0.5rem; border-radius: 0.25rem; } .inline-field:focus { background: #f3f4f6; outline: 1px solid #3b82f6; outline-offset: -1px; } .number-field { min-width: 80px !important; text-align: center; } .wide-field { min-width: 250px !important; } .form-group-block .block-field { display: block; width: 100%; margin-top: 0.25rem; border: none; background: #f9fafb; padding: 0.5rem; border-radius: 0.25rem; } .form-group-block .block-field:focus { background: #f3f4f6; outline: 1px solid #3b82f6; outline-offset: -1px; } /* ========================= CONTENT STYLING ========================= */ .content-paragraph { margin-bottom: 0.75rem; line-height: 1.6; text-align: left; } .content-list { margin: 0.5rem 0; padding-left: 1.5rem; } .content-list li { margin-bottom: 0.5rem; line-height: 1.5; display: list-item; list-style-position: outside; } .content-list.numbered { list-style-type: decimal; counter-reset: list-counter; } .content-list.numbered li { list-style-type: decimal; display: list-item; } .content-list:not(.numbered) { list-style-type: disc; } .content-list:not(.numbered) li { list-style-type: disc; display: list-item; } /* Ensure bullets are visible even with flex items */ .content-list li.flex { display: list-item; } .content-list li .flex { display: flex; width: 100%; } /* Fix flex list items to show bullets */ .content-list li[class*="flex"] { display: list-item !important; list-style-position: outside !important; } /* Ensure numbered lists show numbers even with flex */ .content-list.numbered li[class*="flex"] { list-style-type: decimal !important; } /* Ensure bullet lists show bullets even with flex */ .content-list:not(.numbered) li[class*="flex"] { list-style-type: disc !important; } /* ========================= CHECKBOX AND VALUES GRID ========================= */ .checkbox-item { @apply flex; } .checkbox-group { @apply flex flex-col space-y-3; } .values-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 0.75rem; margin-top: 10px; } /* ========================= DITHERED SHADOW EFFECTS ========================= */ .dither-shadow { background: black; background-image: radial-gradient(white 1px, transparent 1px); background-size: 2px 2px; } html.dark .dither-shadow { background: white; background-image: radial-gradient(black 1px, transparent 1px); } /* ========================= BUTTON STYLING ========================= */ .export-btn { @apply bg-white border border-black text-black font-mono uppercase font-normal tracking-wide; padding: 0.5rem 0.75rem; font-size: 0.875rem; font-weight: 500; display: inline-flex; align-items: center; gap: 0.5rem; cursor: pointer; text-decoration: none; min-width: fit-content; } .export-btn:hover { @apply bg-black text-white -translate-x-px -translate-y-px; } .export-btn.primary { @apply bg-black text-white; } .export-btn.primary:hover { @apply bg-black -translate-x-px -translate-y-px; } .export-btn svg { flex-shrink: 0; width: 16px; height: 16px; } .export-btn.large svg { width: 20px; height: 20px; } /* Dark mode export buttons */ html.dark .export-btn { @apply bg-neutral-950 border-white text-white; } html.dark .export-btn:hover { @apply bg-white text-black; } html.dark .export-btn.primary { @apply bg-white text-black; } html.dark .export-btn.primary:hover { @apply bg-white text-black; } /* General buttons with bitmap styling */ button:not(.export-btn) { background: white !important; border: 1px solid black !important; color: black !important; font-family: "Ubuntu Mono", monospace !important; text-transform: uppercase !important; font-weight: bold !important; letter-spacing: 0.5px !important; cursor: pointer !important; } button:not(.export-btn):hover { background: black !important; color: white !important; transform: translateY(-1px) translateX(-1px) !important; } /* Dark mode buttons */ html.dark button:not(.export-btn) { background: #0a0a0a !important; border: 1px solid white !important; color: white !important; } html.dark button:not(.export-btn):hover { background: white !important; color: black !important; } /* ========================= BITMAP AESTHETIC OVERRIDES ========================= */ /* Remove all rounded corners */ * { border-radius: 0 !important; font-family: "Ubuntu", monospace !important; } /* Form fields with bitmap styling */ input, textarea, select { border: 1px solid black !important; background: white !important; color: black !important; font-family: "Ubuntu Mono", monospace !important; } input:focus, textarea:focus, select:focus { outline: 2px solid black !important; outline-offset: -2px !important; background: white !important; } /* Dark mode form fields */ html.dark input, html.dark textarea, html.dark select { border: 1px solid white !important; background: #0a0a0a !important; color: white !important; } html.dark input:focus, html.dark textarea:focus, html.dark select:focus { outline: 2px solid white !important; background: #0a0a0a !important; } /* Checkbox and radio button styling */ input[type="checkbox"], input[type="radio"] { border: 2px solid black !important; background: white !important; } input[type="checkbox"]:checked, input[type="radio"]:checked { background: black !important; color: white !important; } html.dark input[type="checkbox"], html.dark input[type="radio"] { border: 2px solid white !important; background: #0a0a0a !important; } html.dark input[type="checkbox"]:checked, html.dark input[type="radio"]:checked { background: white !important; color: black !important; } /* Document titles */ h1, h2, h3, h4, h5, h6 { font-family: "Ubuntu", monospace !important; color: inherit !important; } /* All text */ p, span, div { color: inherit !important; font-family: "Ubuntu", monospace !important; } /* ========================= HIDE ELEMENTS FROM PRINT ========================= */ .no-print, .no-pdf { display: block; } /* ========================= PRINT STYLES ========================= */ @media print { .no-print, .no-pdf { display: none !important; } .template-wrapper { background: white !important; padding: 0 !important; min-height: auto !important; } .document-page { max-width: none !important; width: 100% !important; margin: 0 !important; box-shadow: none !important; border-radius: 0 !important; padding: 0 !important; } .document-page::before { content: ""; display: block; height: 0.5in; } .section-title { font-size: 14pt; page-break-after: avoid; } .section-card { break-inside: avoid; margin-bottom: 1rem; padding: 0.5rem; border: 1px solid #ccc; box-shadow: none; } .checkbox-item { font-size: 10pt; margin: 2pt 0; } .inline-field, .large-field, .block-field { background: none !important; border: none !important; border-bottom: 1pt solid #000 !important; padding: 2pt !important; } .signature-space { border: 1px solid #000; background: none; min-height: 3rem; padding: 1rem; } } /* ========================= MOBILE RESPONSIVENESS ========================= */ @media (max-width: 768px) { .template-wrapper { padding: 1rem; } .values-grid { grid-template-columns: 1fr; } .export-content { flex-direction: column; align-items: stretch; gap: 1rem; } /* Make principle cards full width on mobile */ .principle-grid { grid-template-columns: 1fr; } /* Stack constraint buttons vertically on mobile */ .constraint-buttons { flex-direction: column; align-items: stretch; } .constraint-buttons button { width: 100%; justify-content: center; } }