@import url('https://fonts.googleapis.com/css2?family=M+PLUS+Rounded+1c:wght@300;400;500;700&display=swap'); /* Base Styles */ body { background: #EEF2FF; font-family: arial,helvetica,sans-serif; font-size: 10pt; max-width: 800px; margin: 0 auto; padding: 8px; } a { color: #34345C; } a:hover { color: #ff0000; } /* Header & Navigation - Combined */ .header-section { background: transparent; border: 1px solid transparent; padding: 8px; margin: 4px 0; } .header-section h1 { text-align: center; margin-bottom: 8px; color: #AF0A0F; text-shadow: 0 1px 2px rgba(0, 0, 0, 0.1); font-family: Tahoma, Arial, sans-serif; font-weight: bold; font-size: 28pt; } .header-section .subtitle { text-align: center; margin-bottom: 12px; font-weight: bold; color: #000000; font-size: 14pt; } .header-section .navigation { text-align: center; padding-top: 8px; border-top: 1px solid transparent; margin-top: 8px; } /* Announcement Box */ .announcement-box { background: #F0E0D6; border: 1px solid #D9BFB7; padding: 10px; margin: 8px 0 4px 0; border-radius: 3px; } .announcement-box-title { font-weight: bold; color: #800; margin-bottom: 5px; font-size: 13px; } .announcement-box-content { white-space: pre-wrap; font-size: 13px; color: #000; } /* Common Elements */ h3 { color: #34345C; font-size: 11pt; margin: 4px 0; } .button { display: inline-block; background: #D6DAF0; border: 1px solid #B7C5D9; color: #34345C; padding: 2px 4px; text-decoration: none; font-size: 10pt; margin: 2px; } .button:hover { background: #B7C5D9; } /* Thread & Post Styles */ .notes-section { background: #D6DAF0; border: 1px solid #B7C5D9; padding: 8px; margin: 4px 0; } .note { background: #D6DAF0; border: 1px solid #B7C5D9; padding: 8px; margin: 4px 0; position: relative; } .note-container { position: relative; overflow: hidden; padding: 4px; } .note-main { flex: 1; min-width: 0; /* Prevents flex item from overflowing */ } .note-header { color: #34345C; font-size: 10pt; word-wrap: break-word; padding: 4px; background: #D6DAF0; margin-bottom: 4px; } .header-top { display: flex; align-items: center; gap: 4px; flex-wrap: wrap; } .note-sender { font-weight: bold; color: #117743; } .note-time { color: #34345C; font-size: 9pt; } .note-content { flex: 1; min-width: 0; /* Prevents content from overflowing */ word-wrap: break-word; white-space: pre-wrap; line-height: 1.4; font-size: 10pt; margin: 0; } .greentext { color: #789922 !important; display: inline-block; width: 100%; white-space: pre-wrap; } /* Post Form */ .create-thread-section { background: #EEF2FF; border: 1px solid #B7C5D9; margin: 0 auto 12px auto; max-width: 800px; } .create-thread-header { background: #98E; border: 1px solid #B7C5D9; padding: 6px 8px; color: #fff; cursor: pointer; user-select: none; text-align: center; } .create-thread-header:hover { background: #89D; } .post-form { padding: 4px; } .post-table { width: 100%; border-spacing: 0; border-collapse: collapse; } .post-label { width: 60px; text-align: right; padding: 2px 6px 2px 0; font-size: 9pt; color: #333; vertical-align: middle; white-space: nowrap; } /* Form Inputs */ .post-table input[type="text"], .post-table textarea { width: 100%; max-width: 400px; font-family: arial, helvetica, sans-serif; font-size: 9pt; padding: 2px 4px; border: 1px solid #AAA; border-radius: 2px; margin: 1px 0; } .post-table textarea { min-height: 80px; resize: vertical; } .file-input { margin: 1px 0; font-size: 9pt; } /* Image Handling */ .note-image { max-width: 100%; margin-bottom: 8px; } .note-image img { display: block; cursor: pointer; transition: all 0.2s ease-out; /* Add smooth transition */ } .thumbnail { max-width: 125px; max-height: 125px; } .expanded { max-width: 100%; height: auto; margin: 4px 0; } .file-info { font-size: 9pt; color: #666666; margin-top: 2px; } .file-info a { color: #34345C; text-decoration: underline; } /* Quote System */ .quotelink { color: #34345C !important; text-decoration: underline; cursor: pointer; display: inline !important; /* Make quote links inline */ } .quotelink:hover { color: #ff0000 !important; } .post-preview { position: fixed; background: #EEF2FF; border: 1px solid #B7C5D9; padding: 8px; max-width: 500px; max-height: 400px; overflow-y: auto; box-shadow: 0 2px 4px rgba(0,0,0,0.1); z-index: 1000; font-size: 9pt; border-radius: 2px; } .post-preview .note-header { background: transparent; padding: 2px 0; margin-bottom: 6px; border-bottom: 1px solid #B7C5D9; } .post-preview .header-top { margin-bottom: 2px; } .post-preview .note-sender { font-weight: bold; color: #117743; } .post-preview .note-time { font-size: 9pt; color: #666; } .post-preview .note-content { padding: 4px 0; line-height: 1.4; } .post-preview .note-image { float: left; margin: 0 8px 4px 0; } .post-preview .thumbnail { max-width: 125px; max-height: 125px; display: block; } .post-preview .file-info { font-size: 8pt; color: #666; margin: 2px 0; } /* Hide unnecessary elements in preview */ .post-preview .reply-form, .post-preview form, .post-preview .button, .post-preview .submit-btn, .post-preview .delete-link, .post-preview .reply-link { display: none !important; } /* Mobile adjustments */ @media (max-width: 600px) { body { padding: 4px; } .note { padding: 6px; } .note-container { flex-direction: column; gap: 8px; } .note-image { width: auto; align-self: flex-start; } .thumbnail { max-width: 125px; max-height: 125px; } .note-header { padding: 2px; } .note-time, .file-info { font-size: 8pt; } .post-table td { display: block; } .post-label { text-align: left; padding: 4px 0; } .post-preview { max-width: 300px; max-height: 300px; font-size: 8pt; } .post-preview .thumbnail { max-width: 75px; max-height: 75px; } } /* Pagination */ .pagination { text-align: center; margin: 20px 0; } .pagination .button { margin: 0 2px; padding: 2px 8px; } .pagination .current { font-weight: bold; margin: 0 4px; } /* Footer */ .footer { text-align: center; color: #666666; font-size: 8pt; margin: 20px 0; } /* Update the global footer style as well */ div[style*='text-align: center; color: #666666; margin: 20px 0;'] { font-size: 8pt !important; } /* Flash Messages */ .flash-message { background: #F0E0D6; border: 1px solid #D9BFB7; color: #B86; padding: 10px 20px; margin: 4px auto 8px auto; max-width: 800px; border-radius: 4px; position: relative; animation: slideDown 0.5s ease-out; } .flash-message a { color: #34345C; text-decoration: none; margin-left: 8px; font-weight: bold; } .flash-message a:hover { color: #ff0000; text-decoration: underline; } /* Modal */ .modal { display: none; position: fixed; z-index: 1000; padding-top: 50px; left: 0; top: 0; width: 100%; height: 100%; background-color: rgba(0, 0, 0, 0.9); cursor: pointer; } .modal-content { margin: auto; display: block; max-width: 90%; max-height: 90vh; object-fit: contain; } .modal-close { position: absolute; right: 35px; top: 15px; color: #f1f1f1; font-size: 40px; font-weight: bold; cursor: pointer; } .thumbnail-img { cursor: pointer; } .thumbnail-img:hover { opacity: 0.9; } /* Reply Styling */ .reply { margin-left: 20px; border-left: 2px solid #B7C5D9; padding-left: 8px; } /* Thread view specific styles */ .thread-view .note-container { display: flex; } .thread-view .note-image { width: auto; } .thread-view .thumbnail { max-width: 200px; max-height: 200px; } /* Thread view specific styles */ .thread-content, .reply-content { position: relative; overflow: hidden; /* Creates block formatting context */ padding: 4px; } .thread-content .note-image, .reply-content .note-image { float: left; margin: 0 12px 4px 0; } .thread-content .thumbnail { max-width: 200px; max-height: 200px; display: block; } .reply-content .thumbnail { max-width: 150px; max-height: 150px; display: block; } .thread-content .note-content, .reply-content .note-content { overflow: visible; word-wrap: break-word; white-space: pre-wrap; line-height: 1.4; margin: 0; } /* Clear floats */ .thread-content::after, .reply-content::after { content: ''; display: table; clear: both; } /* Mobile styles - maintain float layout but adjust sizes */ @media (max-width: 600px) { .thread-content .note-image, .reply-content .note-image { float: left; /* Keep float on mobile */ margin: 0 8px 4px 0; /* Slightly reduced margin */ } .thread-content .thumbnail, .reply-content .thumbnail { max-width: 125px; max-height: 125px; } .note { padding: 6px; } .note-header { padding: 2px; } .note-time { font-size: 8pt; } .file-info { font-size: 8pt; } } /* Thread & Post Styles - Common */ .note { background: #D6DAF0; border: 1px solid #B7C5D9; padding: 8px; margin: 4px 0; position: relative; } /* Content Layout - Board and Thread */ .note-container { position: relative; overflow: hidden; /* Creates block formatting context */ padding: 4px; } /* Image Styles - Common */ .note-container .note-image { float: left; margin: 0 12px 4px 0; } /* Thumbnail sizes */ .note-container .thumbnail { max-width: 125px; max-height: 125px; display: block; border: 1px solid #B7C5D9; } /* Content Styles */ .note-container .note-content { overflow: visible; word-wrap: break-word; white-space: pre-wrap; line-height: 1.4; margin: 0; } /* Clear floats */ .note-container::after { content: ''; display: table; clear: both; } /* Mobile Responsiveness */ @media (max-width: 600px) { .note { padding: 6px; } .note-container .note-image { float: left; margin: 0 8px 4px 0; } .note-container .thumbnail { max-width: 125px; max-height: 125px; } .note-header { padding: 2px; } .note-time { font-size: 8pt; } .file-info { font-size: 8pt; } } /* File Info */ .file-info { color: #666666; font-size: 9pt; margin: 4px 0; } /* Mobile Responsiveness */ @media (max-width: 600px) { .note { padding: 6px; } .note-container .note-image, .thread-content .note-image, .reply-content .note-image { float: left; margin: 0 8px 4px 0; } .note-container .thumbnail, .thread-content .thumbnail, .reply-content .thumbnail { max-width: 125px; max-height: 125px; } .note-header { padding: 2px; } .note-time { font-size: 8pt; } .file-info { font-size: 8pt; } } /* Catalog styles */ .catalog-container { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 8px; padding: 8px; background: var(--thread-bg, #D6DAF0); border: 1px solid var(--header-border, #B7C5D9); border-radius: 2px; } .catalog-item { background: var(--content-bg, #EEF2FF); border: 1px solid var(--header-border, #B7C5D9); padding: 8px; cursor: pointer; font-size: 9pt; transition: all 0.2s ease; border-radius: 2px; } .catalog-item:hover { background: var(--thread-bg, #D6DAF0); transform: translateY(-1px); box-shadow: 0 2px 4px rgba(0,0,0,0.1); } .catalog-header { display: flex; justify-content: space-between; align-items: center; padding-bottom: 4px; margin-bottom: 4px; border-bottom: 1px solid var(--header-border, #B7C5D9); font-size: 8pt; color: var(--text-color, #666); } .catalog-image { text-align: center; margin: 4px 0; } .catalog-thumb { max-width: 125px; max-height: 125px; margin: 0 auto; border: 1px solid var(--header-border, #B7C5D9); border-radius: 2px; } .catalog-preview { color: var(--text-color, #000000); word-break: break-word; line-height: 1.2; max-height: 75px; overflow: hidden; margin: 4px 0; } .catalog-footer { font-size: 8pt; color: var(--text-color, #666); margin-top: 4px; text-align: right; } .current-page { color: var(--text-color, #34345C); font-weight: bold; padding: 2px 6px; } /* Theme-specific catalog styles */ .theme-purple .catalog-item { border-color: var(--header-border) !important; } .theme-purple .catalog-item:hover { background: var(--thread-bg) !important; border-color: var(--link-color) !important; } .theme-dracula .catalog-container { background: var(--current-line) !important; border-color: var(--comment) !important; } .theme-dracula .catalog-item { background: var(--bg-color) !important; border-color: var(--comment) !important; } .theme-dracula .catalog-item:hover { background: var(--current-line) !important; border-color: var(--purple) !important; } .theme-dracula .catalog-thumb { border-color: var(--comment) !important; } /* Mobile responsiveness */ @media (max-width: 600px) { .catalog-container { grid-template-columns: repeat(auto-fill, minmax(120px, 1fr)); gap: 4px; padding: 4px; } .catalog-thumb { max-width: 100px; max-height: 100px; } .catalog-preview { max-height: 60px; font-size: 8pt; } } /* Landing page styles */ .welcome-box { background: #D6DAF0; border: 1px solid #B7C5D9; padding: 15px; margin: 10px 0; text-align: center; } .welcome-box h1 { color: #34345C; font-size: 20px; margin: 0 0 5px 0; font-family: arial, helvetica, sans-serif; } .welcome-box .subtitle { color: #666666; font-size: 11pt; margin-bottom: 10px; } .boards-container { background: #D6DAF0; border: 1px solid #B7C5D9; padding: 4px; margin: 10px 0; } .boards-table { width: 100%; border-collapse: collapse; background: #EEF2FF; font-size: 9pt; } .boards-table th, .boards-table td { padding: 4px 8px; text-align: left; border: 1px solid #B7C5D9; } .boards-table th { background: #D6DAF0; color: #34345C; font-weight: bold; } .boards-table tr:hover { background: #D6DAF0; } .boards-table a { text-decoration: none; font-weight: bold; } .boards-table a:hover { color: #ff0000; } /* Mobile Responsiveness */ @media (max-width: 600px) { .catalog-container { grid-template-columns: repeat(auto-fill, minmax(120px, 1fr)); gap: 2px; padding: 2px; } .catalog-item { font-size: 8pt; } .catalog-thumb { max-width: 100px; max-height: 100px; } .catalog-preview { max-height: 60px; font-size: 7pt; } .welcome-box { padding: 10px; } .welcome-box h1 { font-size: 16px; } .welcome-box .subtitle { font-size: 10pt; } .boards-table th, .boards-table td { padding: 3px 6px; font-size: 8pt; } } /* Add highlight animation */ @keyframes highlight-fade { 0% { background-color: #F0E0D6; } /* Changed to announcement color */ 70% { background-color: #F0E0D6; } /* Hold the color */ 100% { background-color: #EEF2FF; } /* Fade back to normal */ } /* Add highlighted class */ .highlighted { animation: highlight-fade 5s ease-out; } /* Update preview styling to match thread styling */ .post-preview .note-header { background: transparent; padding: 2px 0; margin-bottom: 6px; border-bottom: 1px solid #B7C5D9; } .post-preview .header-top { margin-bottom: 2px; } .post-preview .note-sender { font-weight: bold; color: #117743; } .post-preview .note-time { font-size: 9pt; color: #666; } .post-preview .note-content { padding: 4px 0; line-height: 1.4; } .post-preview .note-image { float: left; margin: 0 8px 4px 0; } .post-preview .thumbnail { max-width: 125px; max-height: 125px; display: block; } .post-preview .file-info { font-size: 8pt; color: #666; margin: 2px 0; } /* Hide unnecessary elements in preview */ .post-preview .reply-form, .post-preview form, .post-preview .button, .post-preview .submit-btn, .post-preview .delete-link, .post-preview .reply-link { display: none !important; } /* Mobile adjustments */ @media (max-width: 600px) { .post-preview { max-width: 300px; max-height: 300px; font-size: 8pt; } .post-preview .thumbnail { max-width: 75px; max-height: 75px; } } /* Update content styles to handle quotes properly */ .note-content { overflow: visible; word-wrap: break-word; white-space: pre-wrap; line-height: 1.4; margin: 0; } .note-content a, .note-content .quotelink, .note-content > span { display: inline !important; /* Force inline display for links and quotes */ white-space: normal !important; /* Allow text to wrap */ width: auto !important; /* Remove fixed width */ } /* Remove any block-level styling from quotes */ .note-content > .quotelink, .note-content > a { display: inline !important; width: auto !important; margin: 0 !important; padding: 0 !important; } /* Ensure text flows around images */ .thread-content, .reply-content { position: relative; overflow: hidden; } .thread-content .note-content, .reply-content .note-content { overflow: visible; } /* Image expansion styles */ .thumbnail { max-width: 125px; max-height: 125px; transition: all 0.3s ease; } .expanded { max-width: 100%; max-height: none; margin: 4px 0; transition: all 0.3s ease; } .note-image { max-width: 100%; overflow: hidden; } .note-image img { display: block; } /* Thread specific image sizes */ .thread-content .thumbnail { max-width: 200px; max-height: 200px; } .reply-content .thumbnail { max-width: 150px; max-height: 150px; } /* Remove modal styles */ .modal, .modal-content, .modal-close { display: none; } /* Add these styles for flash messages */ .flash-message { padding: 10px 20px; margin: 10px auto; max-width: 800px; border-radius: 4px; position: relative; animation: slideDown 0.5s ease-out; } .flash-message.success { background-color: #DFF2BF; color: #4F8A10; border: 1px solid #4F8A10; } .flash-message.error { background-color: #FFD2D2; color: #D8000C; border: 1px solid #D8000C; } .close-flash { position: absolute; right: 10px; top: 50%; transform: translateY(-50%); cursor: pointer; font-weight: bold; } @keyframes slideDown { from { transform: translateY(-100%); opacity: 0; } to { transform: translateY(0); opacity: 1; } } /* Auto-hide flash messages after 5 seconds */ .flash-message { animation: slideDown 0.5s ease-out, fadeOut 0.5s ease-out 4.5s forwards; } @keyframes fadeOut { from { opacity: 1; } to { opacity: 0; display: none; } } /* Feedback Form Styles - Updated */ .feedback-container { max-width: 800px; margin: 4px auto; padding: 0; background: #D6DAF0; border: 1px solid #B7C5D9; } .feedback-header { background: #98E; color: white; padding: 8px; border-bottom: 1px solid #B7C5D9; } .feedback-header h3 { color: white; margin: 0 0 4px 0; font-size: 14px; } .feedback-description { color: rgba(255, 255, 255, 0.9); font-size: 11px; margin: 0; } .feedback-form { padding: 8px; background: #EEF2FF; } .form-group { margin-bottom: 12px; position: relative; } .feedback-form label { display: block; margin-bottom: 4px; color: #34345C; font-size: 10pt; } .feedback-input { width: 100%; padding: 4px 6px; border: 1px solid #B7C5D9; border-radius: 2px; font-family: arial, helvetica, sans-serif; font-size: 10pt; background: white; box-sizing: border-box; } .captcha-group { background: #F0E0D6; padding: 8px; border-radius: 2px; border: 1px solid #D9BFB7; margin-bottom: 12px; } .submit-group { display: flex; gap: 8px; justify-content: flex-end; margin: 8px; } .submit-btn, .cancel-btn { display: inline-block; padding: 4px 12px; border-radius: 2px; cursor: pointer; font-size: 10pt; text-align: center; text-decoration: none; border: 1px solid transparent; } .submit-btn { background: #98E; color: white; } .submit-btn:hover { background: #89D; } .cancel-btn { background: #D6DAF0; color: #34345C; border-color: #B7C5D9; } .cancel-btn:hover { background: #B7C5D9; } /* Mobile Responsiveness */ @media (max-width: 600px) { .feedback-container { margin: 4px; } .feedback-form { padding: 8px; } .submit-group { flex-direction: column; margin: 8px; gap: 8px; } .submit-btn, .cancel-btn { width: 100%; box-sizing: border-box; padding: 6px 12px; margin: 0; } } /* Admin Feedback Management Styles */ .feedback-header-stats { display: flex; justify-content: space-between; align-items: center; background: #D6DAF0; padding: 10px; border: 1px solid #B7C5D9; border-radius: 4px; margin-bottom: 15px; } .stats-group { display: flex; gap: 15px; } .stat-item { display: flex; align-items: center; gap: 5px; font-size: 11pt; } .stat-badge { padding: 2px 8px; border-radius: 12px; font-weight: bold; min-width: 24px; text-align: center; } .stat-badge.unread { background: #FF6B6B; color: white; } .stat-badge.read { background: #4CAF50; color: white; } .stat-badge.total { background: #98E; color: white; } .filter-select { padding: 4px 8px; border: 1px solid #B7C5D9; border-radius: 3px; background: white; font-size: 10pt; } .feedback-list { display: flex; flex-direction: column; gap: 8px; } .feedback-item { background: #EEF2FF; border: 1px solid #B7C5D9; border-radius: 4px; overflow: hidden; } .feedback-item.unread { background: #F0E0D6; border-color: #D9BFB7; } .feedback-item-header { display: flex; justify-content: space-between; align-items: center; padding: 8px 12px; background: rgba(0,0,0,0.03); border-bottom: 1px solid #B7C5D9; } .feedback-meta { display: flex; align-items: center; gap: 8px; } .feedback-time { color: #666; font-size: 9pt; } .feedback-content { padding: 8px 12px; } .feedback-subject { font-weight: bold; color: #34345C; font-size: 10pt; cursor: pointer; display: flex; justify-content: space-between; align-items: center; } .feedback-message { margin-top: 8px; padding: 8px; background: rgba(255,255,255,0.5); border-radius: 3px; font-size: 10pt; white-space: pre-wrap; line-height: 1.4; } .feedback-actions { display: flex; gap: 4px; } .action-btn { border: none; width: 24px; height: 24px; border-radius: 3px; cursor: pointer; font-size: 14px; display: flex; align-items: center; justify-content: center; transition: all 0.2s; } .read-btn { background: #4CAF50; color: white; } .delete-btn { background: #FF6B6B; color: white; } .action-btn:hover { opacity: 0.8; } .toggle-icon { font-size: 8pt; color: #666; } /* Mobile Responsiveness */ @media (max-width: 600px) { .feedback-header-stats { flex-direction: column; gap: 10px; } .stats-group { justify-content: space-around; width: 100%; } .filter-group { width: 100%; } .filter-select { width: 100%; } } /* Admin Header Badge */ .admin-nav .button { position: relative; } .admin-nav .badge { position: absolute; top: -8px; right: -8px; background: #FF6B6B; color: white; border-radius: 10px; padding: 2px 6px; font-size: 8pt; min-width: 15px; text-align: center; border: 1px solid #fff; font-weight: bold; } /* Add these styles for the main page announcements */ .announcements-container { margin: 10px 0; padding: 5px; } .announcement-item { background: #F0E0D6; border: 1px solid #D9BFB7; border-radius: 2px; padding: 8px; margin-bottom: 5px; } .announcement-content { white-space: pre-wrap; margin-bottom: 4px; font-size: 13px; color: #800000; } .announcement-meta { font-size: 11px; color: #666666; text-align: right; } .announcement-meta .timestamp { font-style: italic; } .footer-link { color: #34345C; text-decoration: none; margin: 0 4px; } .footer-link:hover { text-decoration: underline; } /* Mobile adjustments */ @media (max-width: 600px) { body { font-size: 11pt; } .note-content { font-size: 11pt; } .note-header { font-size: 10pt; } .note-time { font-size: 9pt; } .note-sender { font-size: 10pt; } .file-info { font-size: 9pt; } .announcement-box-content { font-size: 13px; } .announcement-box-title { font-size: 13px; } .announcement-content { font-size: 13px; } .announcement-meta { font-size: 11px; } .button { font-size: 10pt; padding: 4px 8px; } .post-table input[type="text"], .post-table textarea { font-size: 11pt; } .post-label { font-size: 10pt; } .file-input { font-size: 10pt; } } /* Super Announcement Box */ .super-announcement-box { background: #FFE4E1; border: 2px solid #FF6B6B; padding: 16px; margin: 8px 0 4px 0; border-radius: 3px; box-shadow: 0 2px 4px rgba(0,0,0,0.1); text-align: center; } .super-announcement-box-content { white-space: pre-wrap; font-size: 1.5em; /* h2 equivalent size */ color: #800000; line-height: 1.4; font-weight: bold; } /* Mobile adjustments */ @media (max-width: 600px) { .super-announcement-box { padding: 12px; margin: 6px 0 3px 0; } .super-announcement-box-content { font-size: 1.3em; } } /* Dracula Theme */ .theme-dracula { /* Base Dracula colors - keeping original but ensuring consistency */ --bg-color: #282a36; /* Background */ --current-line: #383a59; /* Slightly lighter for better contrast */ --selection: #44475a; /* Selection */ --foreground: #f8f8f2; /* Brighter white text */ --comment: #6272a4; /* Comment */ --cyan: #8be9fd; /* Cyan */ --green: #50fa7b; /* Green */ --orange: #ffb86c; /* Orange */ --pink: #ff79c6; /* Pink */ --purple: #bd93f9; /* Purple */ --red: #ff5555; /* Red */ --yellow: #f1fa8c; /* Yellow */ /* Additional theme variables for consistency */ --content-bg: #2d2f3d; /* Slightly lighter than bg-color for content areas */ --hover-bg: #44475a; /* For hover states */ --border-color: #6272a4; /* Consistent border color */ /* Apply base background color to body */ background-color: var(--bg-color) !important; } /* Ensure main container has dark background */ .theme-dracula body, .theme-dracula #main-container, .theme-dracula .container { background-color: var(--bg-color) !important; } /* Update content areas to maintain dark theme */ .theme-dracula .notes-section, .theme-dracula .create-thread-section, .theme-dracula .catalog-container, .theme-dracula .about-description, .theme-dracula .section { background: var(--content-bg) !important; border: 1px solid var(--border-color) !important; } /* Update catalog items */ .theme-dracula .catalog-item { background: var(--bg-color) !important; border: 1px solid var(--border-color) !important; } .theme-dracula .catalog-item:hover { background: var(--content-bg) !important; } /* Update about page sections */ .theme-dracula .about-description, .theme-dracula .about-stats, .theme-dracula .section { background: var(--content-bg) !important; border: 1px solid var(--border-color) !important; color: var(--foreground) !important; } /* Update thread containers */ .theme-dracula .thread-container { background: var(--bg-color) !important; } /* Update note backgrounds */ .theme-dracula .note { background: var(--content-bg) !important; border: 1px solid var(--border-color) !important; } /* Update header sections */ .theme-dracula .header-section { background: var(--bg-color) !important; color: var(--foreground) !important; } /* Update form elements */ .theme-dracula input, .theme-dracula textarea, .theme-dracula select { background: var(--bg-color) !important; color: var(--foreground) !important; border: 1px solid var(--border-color) !important; } /* Header styles for Dracula */ .theme-dracula .header-section h1 { color: var(--purple); text-shadow: 0 1px 2px rgba(0, 0, 0, 0.3); } .theme-dracula .header-section .subtitle { color: var(--cyan); } .theme-dracula .header-section .button { background: transparent; color: var(--foreground); border: 1px solid var(--comment); } .theme-dracula .header-section .button:hover { color: var(--pink); border-color: var(--pink); } /* Content areas */ .theme-dracula .notes-section, .theme-dracula .note, .theme-dracula .create-thread-section, .theme-dracula .catalog-container, .theme-dracula .about-description, .theme-dracula .section { background: var(--content-bg); border: 1px solid var(--border-color); color: var(--foreground); } /* Text and links */ .theme-dracula a { color: var(--cyan); } .theme-dracula a:hover { color: var(--pink); } .theme-dracula .note-sender { color: var(--green); } .theme-dracula .note-time { color: var(--comment); } .theme-dracula .note-content { color: var(--foreground); } /* Quotes and special text */ .theme-dracula .greentext { color: var(--green) !important; } .theme-dracula .quotelink { color: var(--orange) !important; } /* Announcement box */ .theme-dracula .announcement-box { background: var(--current-line); border-color: var(--purple); } .theme-dracula .announcement-box-title { color: var(--purple); } .theme-dracula .announcement-box-content { color: var(--foreground); } /* Form elements */ .theme-dracula input, .theme-dracula textarea, .theme-dracula select { background: var(--bg-color); color: var(--foreground); border: 1px solid var(--border-color); } .theme-dracula input:focus, .theme-dracula textarea:focus, .theme-dracula select:focus { border-color: var(--purple); outline: none; } /* Flash messages */ .theme-dracula .flash-message { background: var(--content-bg); border: 1px solid var(--purple); color: var(--foreground); } .theme-dracula .flash-message.success { border-color: var(--green); } /* Theme switcher */ .theme-dracula .theme-switcher select { background: var(--current-line); color: var(--foreground); border-color: var(--comment); } .theme-dracula .theme-switcher select:hover { background: var(--header-border); } /* Consolidated YouTube styles */ .youtube-embed { position: relative; width: 100%; max-width: 640px; margin: 10px 0; cursor: pointer; } .youtube-container { position: relative; width: 100%; max-width: 560px; margin: 10px 0; padding-bottom: 56.25%; /* 16:9 aspect ratio */ height: 0; overflow: hidden; background: #f0f0f0; border: 1px solid #B7C5D9; border-radius: 4px; clear: both; } .youtube-container iframe { position: absolute; top: 0; left: 0; width: 100%; height: 100%; border: none; } /* YouTube link styles */ .youtube-link { color: #34345C; text-decoration: underline; cursor: pointer; } .youtube-link:hover { color: #ff0000; } /* Mobile responsiveness */ @media (max-width: 600px) { .youtube-container { margin: 8px 0; } .embed-button { font-size: 0.85em; padding: 1px 3px; } } /* YouTube embed button */ .embed-button { display: inline-block; font-size: 0.9em; color: #34345C; text-decoration: none; margin-left: 5px; padding: 0 4px; border: 1px solid #B7C5D9; border-radius: 3px; background: #D6DAF0; cursor: pointer; vertical-align: middle; white-space: nowrap; } .embed-button:hover { background: #B7C5D9; } /* OP indicator styles */ .op-indicator { color: #CC6666; /* Softer red that blends better */ font-weight: normal; margin-left: 4px; } /* Style for [OP] in quotes */ .note-content .quotelink[href*="thread_id"] + .op-tag { color: #CC6666; /* Matching color */ font-weight: normal; margin-left: 4px; } /* Update header button styles */ .header-section .button { display: inline-block; background: #D6DAF0; border: 1px solid #B7C5D9; color: #34345C; padding: 4px 12px; text-decoration: none; font-size: 11pt; margin: 4px; border-radius: 3px; font-weight: bold; } .header-section .button:hover { background: #B7C5D9; transform: translateY(-1px); transition: all 0.2s ease; } .theme-dracula .catalog-item:hover { background: var(--hover-bg); transform: translateY(-1px); box-shadow: 0 2px 4px rgba(0,0,0,0.1); } .theme-dracula .catalog-header { color: var(--purple); } .theme-dracula .catalog-thumb { border-color: var(--header-border); } .theme-dracula .catalog-preview { color: var(--foreground); } .theme-dracula .catalog-footer { color: var(--text-color); } .theme-dracula .section-title { color: var(--link-color); border-bottom: 1px solid var(--header-border); } .theme-dracula .section li { color: var(--text-color); } .theme-dracula .section a { color: var(--link-color); } .theme-dracula .section a:hover { color: var(--link-hover-color); } .theme-dracula .new-thread-btn { color: var(--link-color); } .theme-dracula .new-thread-btn:hover { color: var(--link-hover-color); } .theme-dracula .note-container { background: var(--current-line) !important; color: var(--foreground) !important; border-top: none; margin-top: 4px; padding-top: 4px; } /* Ensure all text within notes uses Dracula colors */ .theme-dracula .note * { color: var(--foreground); } .theme-dracula .note .note-sender { color: var(--green) !important; } .theme-dracula .note .note-time { color: var(--comment) !important; } .theme-dracula .note .greentext { color: var(--green) !important; } .theme-dracula .note .quotelink { color: var(--orange) !important; } /* Update Dracula theme user info and timestamp colors */ .theme-dracula .note-header { background: var(--bg-color) !important; color: var(--foreground) !important; border-color: var(--comment) !important; border-bottom: none !important; padding: 6px !important; } .theme-dracula .header-top { border-bottom: none; padding-bottom: 4px; margin-bottom: 4px; background: var(--bg-color) !important; } .theme-dracula .note-container { background: var(--current-line) !important; color: var(--foreground) !important; border-top: none; margin-top: 4px; padding-top: 4px; } /* Update Dracula theme quote styles */ .theme-dracula .post-preview { background: var(--content-bg) !important; border: 1px solid var(--border-color) !important; box-shadow: 0 2px 4px rgba(0, 0, 0, 0.3) !important; } .theme-dracula .post-preview .note-header { background: var(--bg-color) !important; border-color: var(--comment) !important; } .theme-dracula .post-preview .note-content { color: var(--foreground) !important; } .theme-dracula .post-preview .note-sender { color: var(--green) !important; } .theme-dracula .post-preview .note-time { color: var(--comment) !important; } .theme-dracula .quote { background: var(--content-bg) !important; border: 1px solid var(--border-color) !important; color: var(--foreground) !important; padding: 8px !important; border-radius: 2px !important; } .theme-dracula .quote .note-sender { color: var(--green) !important; } .theme-dracula .quote .note-time { color: var(--comment) !important; } /* Purple Theme (パープル) */ .theme-purple { /* Base colors */ --bg-color: #f4f2ff; /* Light lavender background */ --text-color: #3a3558; /* Dark purple text */ --link-color: #cd6180; /* Rose for links */ --link-hover-color: #e07694; /* Lighter rose for hover */ --header-bg: #b1a1f6; /* Lavender for headers */ --header-border: #9585d9; /* Darker lavender for borders */ --note-bg: #f7e15f30; /* Light yellow with opacity for notes */ --thread-bg: #b1a1f615; /* Very light lavender for thread bg */ --content-bg: #cd618010; /* Very light rose for content */ --note-border: #b1a1f6; /* Original purple for borders */ --thread-border: #f7e15f; /* Yellow for thread borders */ --sender-color: #cd6180; /* Rose for sender names */ --quote-color: #4a9940; /* Dark green for quotes */ --accent-color: #f7e15f; /* Yellow for accents */ --highlight-color: #b8ff9f; /* Light green for highlights */ /* Add font variables */ --main-font: 'M PLUS Rounded 1c', sans-serif; --heading-font: 'M PLUS Rounded 1c', sans-serif; /* Apply theme */ background: var(--bg-color); color: var(--text-color); font-family: var(--main-font); } /* Complete purple theme styles */ .theme-purple .note { background: var(--thread-bg) !important; /* Light lavender background */ border: 1px solid var(--header-border) !important; } .theme-purple .note-header { background: var(--header-bg) !important; /* Lavender header */ color: #ffffff !important; border-bottom: 1px solid var(--header-border) !important; } .theme-purple .notes-section { background: var(--thread-bg) !important; /* Very light lavender background */ border: 1px solid var(--header-border) !important; } .theme-purple h1 { color: var(--link-color) !important; /* Rose colored heading */ } .theme-purple .announcement-box { background: var(--thread-bg) !important; border-color: var(--accent-color) !important; } .theme-purple .super-announcement-box { background: var(--header-bg) !important; border-color: var(--header-border) !important; color: #ffffff !important; } .theme-purple .button { background: #ffffff !important; /* White background */ border: 1px solid transparent !important; color: var(--text-color) !important; /* Dark text color */ padding: 4px 12px !important; /* Increased padding */ border-radius: 3px !important; /* Added slight rounding */ } .theme-purple .button:hover { background: #f4f2ff !important; /* Very light lavender on hover */ border-color: var(--link-color) !important; /* Rose colored border on hover */ transform: translateY(-1px) !important; /* Slight lift effect on hover */ } .theme-purple .pagination .button { background: var(--header-bg) !important; border-color: var(--header-border) !important; color: #ffffff !important; } .theme-purple .create-thread-section { background: var(--thread-bg) !important; border: 1px solid var(--header-border) !important; } .theme-purple .post-table input[type="text"], .theme-purple .post-table textarea { background: #ffffff !important; border: 1px solid var(--header-border) !important; color: var(--text-color) !important; } .theme-purple .post-table input[type="text"]:focus, .theme-purple .post-table textarea:focus { border-color: var(--link-color) !important; outline: none !important; box-shadow: 0 0 0 2px rgba(205, 97, 128, 0.2) !important; } .theme-purple .file-info { color: var(--link-color) !important; } .theme-purple .quotelink { color: var(--link-color) !important; } .theme-purple .quotelink:hover { color: var(--link-hover-color) !important; } .theme-purple .greentext { color: var(--quote-color) !important; } .theme-purple .reply { border-left: 2px solid var(--link-color) !important; } .theme-purple .flash-message { background: var(--thread-bg) !important; border: 1px solid var(--accent-color) !important; } .theme-purple .flash-message.success { background: var(--note-bg) !important; border-color: var(--highlight-color) !important; } .theme-purple .theme-switcher select { background: var(--header-bg) !important; border-color: var(--header-border) !important; color: #ffffff !important; } .theme-purple .theme-switcher select:hover { background: var(--header-border) !important; } /* Update Dracula theme button styles */ .theme-dracula .button, .theme-dracula .embed-button { background: var(--content-bg); border: 1px solid var(--border-color); color: var(--foreground); } .theme-dracula .button:hover, .theme-dracula .embed-button:hover { background: var(--hover-bg); border-color: var(--purple); color: var(--purple); } /* Adjust text brightness for Dracula theme */ /* .theme-dracula { --foreground: #f8f8f2dd; } */ /* About page styles */ .board-title { color: var(--link-color, #AF0A0F); font-size: 24px; font-weight: bold; font-family: Arial, sans-serif; text-align: center; margin-bottom: 12px; } .about-description { font-size: 14px; color: var(--text-color, #000); text-align: center; margin-bottom: 20px; padding: 8px; background: var(--thread-bg, #D6DAF0); border-radius: 2px; } .section { margin-bottom: 20px; background: var(--thread-bg, #D6DAF0); padding: 8px; border-radius: 2px; } .section-title { color: var(--link-color, #0F0C5D); font-size: 16px; font-weight: bold; margin-bottom: 8px; border-bottom: 1px solid var(--header-border, #B7C5D9); padding-bottom: 4px; } .section ul, .section ol { margin: 0; padding-left: 25px; } .section li { color: var(--text-color, #000); font-size: 14px; margin-bottom: 4px; line-height: 1.4; } .new-thread-btn { color: var(--link-color, #34345C); font-weight: bold; cursor: pointer; } .new-thread-btn:hover { color: var(--link-hover-color, #ff0000); } /* Theme-specific overrides */ .theme-purple .board-title { color: var(--link-color) !important; } .theme-dracula .board-title { color: var(--purple) !important; } .theme-dracula .about-description, .theme-dracula .section { background: var(--current-line) !important; border-color: var(--comment) !important; } .theme-dracula .section-title { color: var(--cyan) !important; border-bottom-color: var(--comment) !important; } .theme-dracula .section li { color: var(--foreground) !important; } /* Update theme variables for better consistency */ .theme-dracula { /* Update existing Dracula theme variables */ --note-bg: var(--content-bg); --thread-bg: var(--content-bg); --flash-bg: var(--current-line); --flash-border: var(--purple); --flash-text: var(--foreground); --footer-text: var(--comment); --footer-link: var(--cyan); --footer-link-hover: var(--pink); } .theme-purple { /* Update existing Purple theme variables */ --note-bg: var(--thread-bg); --flash-bg: var(--thread-bg); --flash-border: var(--accent-color); --flash-text: var(--text-color); --footer-text: var(--text-color); --footer-link: var(--link-color); --footer-link-hover: var(--link-hover-color); } /* Update note styles to use theme variables */ .note { background: var(--note-bg, #EEF2FF) !important; border: 1px solid var(--header-border, #B7C5D9) !important; } /* Update flash message styles */ .flash-message { background: var(--flash-bg, #F0E0D6) !important; border: 1px solid var(--flash-border, #D9BFB7) !important; color: var(--flash-text, #B86) !important; } /* Update footer styles */ .footer { color: var(--footer-text, #666666) !important; } .footer-link { color: var(--footer-link, #34345C) !important; } .footer-link:hover { color: var(--footer-link-hover, #ff0000) !important; } /* Update create thread section */ .create-thread-section { background: var(--note-bg, #EEF2FF) !important; border: 1px solid var(--header-border, #B7C5D9) !important; } .create-thread-header { background: var(--header-bg, #98E) !important; color: var(--header-text, #fff) !important; border-bottom: 1px solid var(--header-border, #B7C5D9) !important; } /* Update form inputs */ .post-table input[type="text"], .post-table textarea { background: var(--input-bg, #fff) !important; color: var(--text-color, #000) !important; border: 1px solid var(--header-border, #B7C5D9) !important; } /* Update theme-specific styles for Dracula */ .theme-dracula .post-table input[type="text"], .theme-dracula .post-table textarea { background: var(--bg-color) !important; color: var(--foreground) !important; border-color: var(--comment) !important; } .theme-dracula .create-thread-header { background: var(--current-line) !important; color: var(--foreground) !important; border-color: var(--comment) !important; } /* Update theme-specific styles for Purple */ .theme-purple .post-table input[type="text"], .theme-purple .post-table textarea { background: #ffffff !important; border-color: var(--header-border) !important; } .theme-purple .create-thread-header { background: var(--header-bg) !important; color: #ffffff !important; } /* Update specific elements for Purple theme */ .theme-purple .header-section h1 { font-family: var(--heading-font); font-weight: 700; letter-spacing: -0.5px; } .theme-purple .subtitle { font-family: var(--heading-font); font-weight: 500; letter-spacing: 0.5px; } .theme-purple .button { font-family: var(--main-font); font-weight: 500; letter-spacing: 0.3px; } .theme-purple .note-sender { font-family: var(--main-font); font-weight: 700; } .theme-purple .note-content, .theme-purple .announcement-box-content, .theme-purple .post-table input[type="text"], .theme-purple .post-table textarea { font-family: var(--main-font); font-weight: 400; line-height: 1.6; } .theme-purple .create-thread-header { font-family: var(--heading-font); font-weight: 500; letter-spacing: 0.5px; } .theme-purple .post-label { font-family: var(--main-font); font-weight: 500; } .theme-purple .footer { font-family: var(--main-font); font-weight: 300; letter-spacing: 0.2px; } .theme-purple .announcement-box-title { font-family: var(--heading-font); font-weight: 700; letter-spacing: 0.3px; } /* Update file info and metadata text */ .theme-purple .file-info, .theme-purple .note-time, .theme-purple .user-id { font-family: var(--main-font); font-weight: 400; } /* Update form placeholders */ .theme-purple input::placeholder, .theme-purple textarea::placeholder { font-family: var(--main-font); font-weight: 300; } /* Replace multiple highlight animations with a single, theme-aware animation */ @keyframes highlight-fade { 0%, 70% { background-color: var(--highlight-bg, rgba(255, 0, 0, 0.15)) !important; outline: 2px solid var(--highlight-border, #ff0000) !important; } 100% { background-color: transparent !important; outline: none !important; } } /* Single highlighted class that works for all themes */ .highlighted { position: relative; z-index: 1; animation: highlight-fade 3s ease-out !important; } /* Theme-specific highlight colors */ .theme-purple { --highlight-bg: rgba(255, 0, 0, 0.15); --highlight-border: rgba(255, 0, 0, 0.6); } .theme-dracula { --highlight-bg: rgba(255, 0, 0, 0.15); --highlight-border: rgba(255, 0, 0, 0.6); } /* Update ID label styles */ .note-header .user-id { font-size: 8pt !important; /* Reduce font size */ } .note-header span:has(.user-id) { font-size: 8pt !important; /* Reduce size of the entire ID container */ } /* Ensure consistent styling across themes */ .theme-purple .note-header .user-id, .theme-purple .note-header span:has(.user-id) { font-size: 8pt !important; } .theme-dracula .note-header .user-id, .theme-dracula .note-header span:has(.user-id) { font-size: 8pt !important; }