/* Witchy Purple Rose - A mystical theme for Gitea */ @font-face { font-family: 'Vampyr'; src: url('https://cdn.nhcarrigan.com/fonts/vampyr.ttf') format('truetype'); } @import url('https://fonts.googleapis.com/css2?family=Kalam:wght@300;400;700&family=Creepster&family=Griffy&family=Henny+Penny&display=swap'); :root { --is-dark-theme: false; --fonts-regular: "Kalam", cursive !important; --fonts-proportional: "Griffy", cursive !important; --fonts-monospace: "Courier New", monospace !important; --fonts-emoji: "Apple Color Emoji", "Segoe UI Emoji" !important; /* Witchy Purple Rose Palette */ --witch-purple: #2B1B3D; --witch-plum: #44275A; --witch-rose: #A8577E; --witch-mauve: #D4A5C7; --witch-lavender: #E8D5E8; --witch-black: #0A0009; --witch-silver: #C0C0C0; --witch-moon: #F5F5F5; --witch-shadow: rgba(10, 0, 9, 0.7); /* Primary (roses) */ --color-primary: #A8577E; --color-primary-dark: #8B4567; --color-primary-light: #D4A5C7; --color-primary-very-light: #F0E0EC; /* Main Text & Background */ --color-text: #2B1B3D; --color-text-light: #44275A; --color-text-dark: #0A0009; --color-body: #F5F5F5; /* UI (mystical purples) */ --color-secondary: #44275A; --color-secondary-dark: #2B1B3D; --color-secondary-light: #6B4C7A; /* State Colors */ --color-success: #5D7A5C; --color-success-dark: #4A614A; --color-success-light: #7A9779; --color-danger: #8B3A3A; --color-danger-dark: #6B2C2C; --color-danger-light: #A85555; --color-warning: #8B6914; --color-warning-dark: #6B5010; --color-warning-light: #B8902B; --color-info: #4C5B8B; --color-info-dark: #3A4669; --color-info-light: #6B7AA8; /* Other UI Elements */ --color-menu: #FBF9FC; --color-card: #FFFFFF; --color-markup-table-row: #F8F5FA; --color-markup-code-block: #FCF8FB; --color-button: #A8577E; --color-border: #E8D5E8; --color-input-border: #D4A5C7; --color-input-background: #FFFFFF; --color-small-accent: #D4A5C7; /* Diff Colors (rose/plum tints) */ --color-diff-add-line: #E8F0E8; --color-diff-add-word: #D0E0D0; --color-diff-del-line: #F8E8F0; --color-diff-del-word: #F0D0E0; --color-diff-section: #F0E8F8; /* Code Syntax Highlighting */ --color-code-keyword: #44275A; --color-code-function: #A8577E; --color-code-string: #8B4567; --color-code-number: #6B4C7A; --color-code-comment: #8A6B78; --color-code-type: #5B4A6B; --vscode-editor-background: #FCF9FB; --color-footer: #2B1B3D; --color-nav-bg: #44275A; /* Editor selection colors - this is what Gitea uses */ --color-editor-line-highlight: var(--witch-lavender); --color-code-bg: #FDF9FC; } /* Custom Cursors */ html { cursor: url('data:image/svg+xml;utf8,') 0 0, auto; font-family: "Kalam", cursive; } a, button, .button, .dropdown, .ui.button, .ui.dropdown { cursor: url('data:image/svg+xml;utf8,') 0 0, pointer !important; } input[type="text"], input[type="email"], input[type="password"], textarea { cursor: url('data:image/svg+xml;utf8,') 12 24, text !important; } /* Body base styling - color NOT set here to preserve syntax highlighting */ body { font-family: "Kalam", cursive !important; font-size: 16px; line-height: 1.6; } /* Set default text color on specific containers, not body/code */ .ui.container:not(.file-view):not(.code-view), .ui.segment:not(.file-view):not(.code-view), .ui.card, .ui.message, .repository-summary, .activity-container { color: var(--witch-purple); } /* Typography */ h1, h2, h3, h4, h5, h6, .ui.header { font-family: "Griffy", cursive !important; font-weight: 400 !important; letter-spacing: 1px !important; color: var(--witch-plum) !important; } /* Ensure all text is readable - but NOT code syntax highlighting */ p, li, label { color: var(--witch-purple); } /* Table cells - but not in code views */ td:not(.lines-code td):not(.lines-num td), th:not(.lines-code th) { color: var(--witch-purple); } a { color: var(--witch-rose) !important; transition: all 0.3s ease; } a:hover { color: var(--witch-plum) !important; text-decoration: underline; } h1, .ui.huge.header { text-shadow: 2px 2px 0px var(--witch-rose), 3px 3px 6px rgba(168, 87, 126, 0.3); } /* Background Effects */ body::before { content: ""; position: fixed; top: 0; left: 0; right: 0; bottom: 0; background: url(https://cdn.nhcarrigan.com/background.png); background-size: cover; background-position: center; z-index: -2; pointer-events: none; } body::after { content: ""; position: fixed; top: 0; left: 0; right: 0; bottom: 0; background: radial-gradient(circle at 20% 50%, rgba(168, 87, 126, 0.15) 0%, transparent 60%), radial-gradient(circle at 80% 80%, rgba(68, 39, 90, 0.15) 0%, transparent 60%), linear-gradient(180deg, rgba(10, 0, 9, 0.3) 0%, rgba(43, 27, 61, 0.1) 50%, rgba(43, 27, 61, 0.2) 100% ); z-index: -1; pointer-events: none; } /* Main Content - with margins for fixed nav/footer */ body { padding-top: 52px !important; padding-bottom: 75px !important; } .page-content, .home, .full.height { background: transparent !important; padding-top: 10px !important; padding-bottom: 10px !important; min-height: calc(100vh - 145px) !important; } /* Main container backgrounds - TRANSLUCENT so background shows */ .ui.container { background: rgba(255, 255, 255, 0.75) !important; backdrop-filter: blur(8px) !important; border-radius: 10px !important; padding: 20px !important; margin-top: 10px !important; margin-bottom: 10px !important; box-shadow: 0 0 40px rgba(168, 87, 126, 0.15) !important; } /* Grid columns should be transparent */ .ui.grid > .column, .ui.grid > .row > .column { background: transparent !important; } /* Repository/user pages */ .repository, .user { background: transparent !important; } /* Header/Navigation - FIXED at top */ #navbar, .ui.top.secondary.menu.navbar { position: fixed !important; top: 0 !important; left: 0 !important; right: 0 !important; z-index: 1000 !important; height: 52px !important; background: linear-gradient(135deg, var(--witch-plum) 0%, var(--witch-purple) 100%) !important; box-shadow: 0 5px 20px var(--witch-shadow) !important; border: none !important; } /* Nav items - LIGHT text on dark background */ #navbar .item, #navbar a.item, .ui.secondary.menu .item, .navbar .item { color: var(--witch-moon) !important; transition: all 0.3s ease; } #navbar .item:hover, #navbar a.item:hover, .ui.secondary.menu .item:hover { background-color: rgba(212, 165, 199, 0.3) !important; color: white !important; } #navbar .active.item, .ui.secondary.menu .active.item { background-color: rgba(212, 165, 199, 0.4) !important; color: white !important; } /* Icons in navbar should also be light */ #navbar .item i, #navbar .item svg, #navbar .item .icon { color: var(--witch-moon) !important; } /* Repository header */ .repository.header { background: linear-gradient(to right, var(--color-menu) 0%, rgba(232, 213, 232, 0.5) 100%); border-bottom: 2px solid var(--witch-mauve); } /* Buttons */ .ui.primary.button, .ui.green.button { background: linear-gradient(135deg, var(--witch-plum) 0%, var(--witch-purple) 100%) !important; color: var(--witch-moon) !important; border: none !important; font-family: "Griffy", cursive !important; letter-spacing: 1px; transition: all 0.3s ease !important; box-shadow: 0 4px 15px rgba(68, 39, 90, 0.3); } .ui.primary.button:hover, .ui.green.button:hover { transform: translateY(-2px) scale(1.05) !important; box-shadow: 0 6px 20px rgba(68, 39, 90, 0.4), 0 0 25px rgba(168, 87, 126, 0.3) !important; } .ui.basic.button { border: 2px solid var(--witch-plum) !important; color: var(--witch-plum) !important; background: transparent !important; transition: all 0.3s ease !important; } .ui.basic.button:hover { background: var(--witch-lavender) !important; color: var(--witch-purple) !important; border-color: var(--witch-rose) !important; transform: translateY(-1px); } /* Cards & Panels */ .ui.card, .ui.segment, .dashboard-card { background: rgba(255, 255, 255, 0.95) !important; border: 1px solid var(--witch-mauve) !important; box-shadow: 0 4px 20px rgba(168, 87, 126, 0.1), 0 0 40px rgba(68, 39, 90, 0.05) !important; transition: all 0.3s ease; } .ui.card:hover, .dashboard-card:hover { transform: translateY(-2px); box-shadow: 0 6px 25px rgba(168, 87, 126, 0.15), 0 0 50px rgba(68, 39, 90, 0.08) !important; } /* Tabs - NOT the main nav styling */ .ui.tabular.menu { background: transparent !important; box-shadow: none !important; } .ui.tabular.menu .item { color: var(--witch-plum) !important; background: transparent !important; font-family: "Kalam", cursive !important; font-weight: 700; transition: all 0.3s ease; } .ui.tabular.menu .item:hover { background: rgba(232, 213, 232, 0.3) !important; color: var(--witch-purple) !important; } .ui.tabular.menu .active.item { background: rgba(255, 255, 255, 0.8) !important; color: var(--witch-purple) !important; border-color: var(--witch-rose) !important; border-bottom: 3px solid var(--witch-rose) !important; } /* Vertical menu should not be dark either */ .ui.vertical.menu { background: rgba(255, 255, 255, 0.85) !important; } .ui.vertical.menu .item { color: var(--witch-purple) !important; } /* Forms */ .ui.input input, .ui.form input, .ui.form textarea { background: rgba(255, 255, 255, 0.95) !important; border: 2px solid var(--witch-mauve) !important; color: var(--witch-purple) !important; font-family: "Kalam", cursive !important; border-radius: 10px !important; transition: all 0.3s ease !important; } .ui.input input:focus, .ui.form input:focus, .ui.form textarea:focus { border-color: var(--witch-rose) !important; box-shadow: 0 0 0 3px rgba(168, 87, 126, 0.2) !important; background: white !important; } /* Labels & Tags */ .ui.label { background: linear-gradient(135deg, var(--witch-mauve) 0%, var(--witch-lavender) 100%) !important; color: var(--witch-purple) !important; font-family: "Kalam", cursive !important; font-weight: 700; border: 1px solid var(--witch-rose); } /* Status Colors */ .ui.green.label { background: linear-gradient(135deg, #7A9779 0%, #5D7A5C 100%) !important; color: white !important; border: 1px solid #5D7A5C; } .ui.red.label { background: linear-gradient(135deg, #A85555 0%, #8B3A3A 100%) !important; color: white !important; border: 1px solid #8B3A3A; } /* Code Blocks - preserve syntax highlighting */ /* IMPORTANT: Do NOT set color on code elements - let Chroma/Monaco handle it */ .code-view, .file-view, .lines-code, .code-inner { color: unset !important; } /* Gitea's code syntax CSS variables */ :root { /* Code highlighting colors (witchy theme) */ --color-code-bg: #FDF9FC; --color-code-fg: #2B1B3D; --color-code-keyword: #44275A; --color-code-constant: #4C5B8B; --color-code-string: #5D7A5C; --color-code-comment: #8A6B78; --color-code-number: #4C5B8B; --color-code-tag: #A8577E; --color-code-attribute: #6B4C7A; --color-code-symbol: #8B4567; --color-code-class: #8B4567; --color-code-function: #A8577E; --color-code-variable: #6B4C7A; --color-code-operator: #44275A; --color-code-builtin: #A8577E; --color-code-inserted: #5D7A5C; --color-code-deleted: #8B3A3A; } /* Monaco editor (code editing) - light background */ .monaco-editor, .monaco-diff-editor, .monaco-component, .monaco-editor .monaco-editor-background, .monaco-editor .margin, .monaco-editor .inputarea.ime-input, .monaco-editor .overflow-guard, .monaco-editor .lines-content, .monaco-editor .view-lines, .monaco-editor .minimap, .monaco-editor .minimap-slider { background: #FDF9FC !important; background-color: #FDF9FC !important; } /* Monaco editor text - do NOT set color, let Monaco handle syntax */ .monaco-editor .view-line { background: transparent !important; } /* Monaco editor CSS variables for syntax highlighting */ .monaco-editor { --vscode-editor-background: #FDF9FC !important; --vscode-editor-foreground: #2B1B3D !important; --vscode-editorLineNumber-foreground: #8A6B78 !important; --vscode-editorLineNumber-activeForeground: #44275A !important; --vscode-editor-selectionBackground: rgba(168, 87, 126, 0.5) !important; --vscode-editor-inactiveSelectionBackground: rgba(168, 87, 126, 0.3) !important; --vscode-editor-lineHighlightBackground: rgba(232, 213, 232, 0.4) !important; --vscode-editorGutter-background: #FDF9FC !important; } /* ======================================== CODE EDITOR SELECTION STYLES Gitea uses CodeMirror, not Monaco! ======================================== */ /* CodeMirror selection - this is what Gitea actually uses */ .CodeMirror-selected, .CodeMirror-focused .CodeMirror-selected, .CodeMirror-line::selection, .CodeMirror-line > span::selection, .CodeMirror-line > span > span::selection { background: #A8577E !important; color: #FFFFFF !important; } /* CodeMirror cursor */ .CodeMirror-cursor { border-left-color: var(--witch-purple) !important; } /* CodeMirror active line */ .CodeMirror-activeline-background { background: var(--witch-lavender) !important; } /* CodeMirror gutter */ .CodeMirror-gutters { background: #FDF9FC !important; border-right-color: var(--witch-mauve) !important; } .CodeMirror-linenumber { color: var(--witch-rose) !important; } /* Monaco editor fallback (in case some views use it) */ .monaco-editor { --vscode-editor-selectionBackground: #A8577E !important; --vscode-editor-inactiveSelectionBackground: rgba(168, 87, 126, 0.5) !important; --vscode-editor-selectionForeground: #FFFFFF !important; --vscode-editor-selectionHighlightBackground: rgba(168, 87, 126, 0.4) !important; } /* Monaco selection overlay */ .monaco-editor .view-overlays .selected-text, .monaco-editor .selected-text { background-color: #A8577E !important; background: #A8577E !important; opacity: 1 !important; } /* Native selection fallback for all editors */ .monaco-editor *::selection, .CodeMirror *::selection, .code-editor *::selection { background-color: #A8577E !important; color: #FFFFFF !important; } /* Fix current line highlight in the main content area */ .monaco-editor .view-overlays .current-line, .monaco-editor .current-line { background-color: rgba(232, 213, 232, 0.4) !important; border: none !important; } /* Fix margin/gutter area - prevent black background on selected line */ .monaco-editor .margin, .monaco-editor .margin-view-overlays { background-color: #FDF9FC !important; } .monaco-editor .margin-view-overlays .current-line-margin, .monaco-editor .current-line-margin { background-color: rgba(232, 213, 232, 0.4) !important; border: none !important; } /* Active line number row background */ .monaco-editor .margin-view-overlays .line-numbers.active-line-number { background-color: rgba(232, 213, 232, 0.4) !important; } /* Monaco syntax token colors */ .monaco-editor .mtk1 { color: #2B1B3D !important; } /* Default text */ .monaco-editor .mtk2 { color: #8A6B78 !important; } /* Comments */ .monaco-editor .mtk3 { color: #5D7A5C !important; } /* Strings */ .monaco-editor .mtk4 { color: #4C5B8B !important; } /* Numbers */ .monaco-editor .mtk5 { color: #44275A !important; } /* Keywords */ .monaco-editor .mtk6 { color: #A8577E !important; } /* Functions */ .monaco-editor .mtk7 { color: #6B4C7A !important; } /* Variables */ .monaco-editor .mtk8 { color: #8B4567 !important; } /* Types/Classes */ .monaco-editor .mtk9 { color: #44275A !important; } /* Operators */ .monaco-editor .mtk10 { color: #A8577E !important; } /* Built-ins */ .monaco-editor .mtk11 { color: #6B4C7A !important; } /* Attributes */ .monaco-editor .mtk12 { color: #5D7A5C !important; } /* String escape */ /* Monaco editor gutter/margin */ .monaco-editor .margin-view-overlays .line-numbers { color: #8A6B78 !important; } .monaco-editor .current-line ~ .line-numbers { color: #44275A !important; } /* Only style inline code in markdown, not code blocks */ .markup code, .markdown code { background: rgba(232, 213, 232, 0.3) !important; color: var(--witch-purple) !important; font-family: 'Courier New', monospace !important; border: 1px solid var(--witch-lavender); border-radius: 5px; padding: 2px 6px; } /* Code view container - add bottom margin for fixed footer */ .code-view, .file-view { background: rgba(255, 255, 255, 0.95) !important; margin-bottom: 80px !important; padding-bottom: 20px !important; } /* File content wrapper needs space too */ .file-content, .view-raw { padding-bottom: 100px !important; } /* ======================================== CHROMA SYNTAX HIGHLIGHTING (Gitea uses this) Witchy purple/rose theme ======================================== */ /* Code block container - let child elements have their own colors */ .chroma { background: rgba(252, 248, 251, 0.95) !important; } /* Lines of code container */ .lines-code, .lines-num, .code-inner, .file-view .code { background: transparent !important; } /* Individual code cells */ .lines-code td, .code-inner code { color: inherit !important; } /* Error */ .chroma .err { color: #8B3A3A !important; } /* Line link, line highlight, line numbers, line table */ .chroma .lnlinks { outline: none; text-decoration: none; color: inherit; } .chroma .lntd { vertical-align: top; padding: 0; margin: 0; border: 0; } .chroma .lntable { border-spacing: 0; padding: 0; margin: 0; border: 0; } .chroma .hl { background-color: rgba(212, 165, 199, 0.3) !important; } .chroma .ln, .chroma .lnt { color: #8A6B78 !important; padding: 0 8px; } /* Keyword */ .chroma .k { color: #44275A !important; font-weight: bold; } .chroma .kc { color: #44275A !important; font-weight: bold; } /* Keyword.Constant */ .chroma .kd { color: #44275A !important; font-weight: bold; } /* Keyword.Declaration */ .chroma .kn { color: #44275A !important; font-weight: bold; } /* Keyword.Namespace */ .chroma .kp { color: #44275A !important; } /* Keyword.Pseudo */ .chroma .kr { color: #44275A !important; font-weight: bold; } /* Keyword.Reserved */ .chroma .kt { color: #5B4A6B !important; } /* Keyword.Type */ /* Name */ .chroma .n { color: var(--witch-purple) !important; } .chroma .na { color: #6B4C7A !important; } /* Name.Attribute */ .chroma .nb { color: #A8577E !important; } /* Name.Builtin */ .chroma .nc { color: #8B4567 !important; font-weight: bold; } /* Name.Class */ .chroma .no { color: #6B4C7A !important; } /* Name.Constant */ .chroma .nd { color: #A8577E !important; } /* Name.Decorator */ .chroma .ni { color: var(--witch-purple) !important; font-weight: bold; } /* Name.Entity */ .chroma .ne { color: #8B3A3A !important; font-weight: bold; } /* Name.Exception */ .chroma .nf { color: #A8577E !important; } /* Name.Function */ .chroma .nl { color: var(--witch-purple) !important; } /* Name.Label */ .chroma .nn { color: #44275A !important; } /* Name.Namespace */ .chroma .nt { color: #44275A !important; font-weight: bold; } /* Name.Tag */ .chroma .nv { color: #6B4C7A !important; } /* Name.Variable */ .chroma .bp { color: #A8577E !important; } /* Name.Builtin.Pseudo */ .chroma .vc { color: #6B4C7A !important; } /* Name.Variable.Class */ .chroma .vg { color: #6B4C7A !important; } /* Name.Variable.Global */ .chroma .vi { color: #6B4C7A !important; } /* Name.Variable.Instance */ .chroma .vm { color: #6B4C7A !important; } /* Name.Variable.Magic */ /* Literal */ .chroma .l { color: #8B4567 !important; } .chroma .ld { color: #5D7A5C !important; } /* Literal.Date */ .chroma .s { color: #5D7A5C !important; } /* String */ .chroma .sa { color: #5D7A5C !important; } /* String.Affix */ .chroma .sb { color: #5D7A5C !important; } /* String.Backtick */ .chroma .sc { color: #5D7A5C !important; } /* String.Char */ .chroma .dl { color: #5D7A5C !important; } /* String.Delimiter */ .chroma .sd { color: #5D7A5C !important; font-style: italic; } /* String.Doc */ .chroma .s2 { color: #5D7A5C !important; } /* String.Double */ .chroma .se { color: #8B4567 !important; font-weight: bold; } /* String.Escape */ .chroma .sh { color: #5D7A5C !important; } /* String.Heredoc */ .chroma .si { color: #8B4567 !important; } /* String.Interpol */ .chroma .sx { color: #5D7A5C !important; } /* String.Other */ .chroma .sr { color: #A8577E !important; } /* String.Regex */ .chroma .s1 { color: #5D7A5C !important; } /* String.Single */ .chroma .ss { color: #A8577E !important; } /* String.Symbol */ /* Number */ .chroma .m { color: #4C5B8B !important; } /* Number */ .chroma .mb { color: #4C5B8B !important; } /* Number.Bin */ .chroma .mf { color: #4C5B8B !important; } /* Number.Float */ .chroma .mh { color: #4C5B8B !important; } /* Number.Hex */ .chroma .mi { color: #4C5B8B !important; } /* Number.Integer */ .chroma .il { color: #4C5B8B !important; } /* Number.Integer.Long */ .chroma .mo { color: #4C5B8B !important; } /* Number.Oct */ /* Operator */ .chroma .o { color: #44275A !important; } /* Operator */ .chroma .ow { color: #44275A !important; font-weight: bold; } /* Operator.Word */ /* Punctuation */ .chroma .p { color: var(--witch-purple) !important; } /* Comment */ .chroma .c { color: #8A6B78 !important; font-style: italic; } .chroma .ch { color: #8A6B78 !important; font-style: italic; } /* Comment.Hashbang */ .chroma .cm { color: #8A6B78 !important; font-style: italic; } /* Comment.Multiline */ .chroma .cp { color: #6B4C7A !important; } /* Comment.Preproc */ .chroma .cpf { color: #8A6B78 !important; font-style: italic; } /* Comment.PreprocFile */ .chroma .c1 { color: #8A6B78 !important; font-style: italic; } /* Comment.Single */ .chroma .cs { color: #8A6B78 !important; font-style: italic; font-weight: bold; } /* Comment.Special */ /* Generic */ .chroma .gd { color: #8B3A3A !important; background-color: rgba(255, 200, 200, 0.3); } /* Generic.Deleted */ .chroma .ge { font-style: italic; } /* Generic.Emph */ .chroma .gr { color: #8B3A3A !important; } /* Generic.Error */ .chroma .gh { color: #44275A !important; font-weight: bold; } /* Generic.Heading */ .chroma .gi { color: #5D7A5C !important; background-color: rgba(200, 255, 200, 0.3); } /* Generic.Inserted */ .chroma .go { color: #8A6B78 !important; } /* Generic.Output */ .chroma .gp { color: #A8577E !important; font-weight: bold; } /* Generic.Prompt */ .chroma .gs { font-weight: bold; } /* Generic.Strong */ .chroma .gu { color: #6B4C7A !important; font-weight: bold; } /* Generic.Subheading */ .chroma .gt { color: #8B3A3A !important; } /* Generic.Traceback */ .chroma .gl { text-decoration: underline; } /* Generic.Underline */ /* Also style highlight.js classes in case Gitea uses those */ .hljs { background: rgba(252, 248, 251, 0.95) !important; } .hljs-keyword, .hljs-selector-tag, .hljs-literal { color: #44275A !important; font-weight: bold; } .hljs-string, .hljs-doctag { color: #5D7A5C !important; } .hljs-number, .hljs-literal { color: #4C5B8B !important; } .hljs-comment { color: #8A6B78 !important; font-style: italic; } .hljs-function, .hljs-title { color: #A8577E !important; } .hljs-class, .hljs-type { color: #8B4567 !important; font-weight: bold; } .hljs-variable, .hljs-attr { color: #6B4C7A !important; } .hljs-built_in, .hljs-builtin-name { color: #A8577E !important; } /* Gitea's code-lines styling */ .code-line { background: transparent !important; } /* Make sure span elements INSIDE code views inherit color from parent */ .code-view span, .file-view span, .lines-code span, .chroma span, .hljs span { color: inherit; } /* Tables */ .ui.table { border: 1px solid var(--witch-mauve) !important; } .ui.table thead th { background: linear-gradient(to right, var(--witch-lavender) 0%, rgba(232, 213, 232, 0.7) 100%) !important; color: var(--witch-purple) !important; font-family: "Griffy", cursive !important; font-weight: 400; letter-spacing: 1px; } .ui.table tbody tr:hover { background: rgba(212, 165, 199, 0.1) !important; } /* Scrollbars */ ::-webkit-scrollbar { width: 12px; height: 12px; } ::-webkit-scrollbar-track { background: var(--witch-lavender); border-radius: 6px; } ::-webkit-scrollbar-thumb { background: linear-gradient(to bottom, var(--witch-rose) 0%, var(--witch-plum) 100%); border-radius: 6px; border: 2px solid var(--witch-lavender); } ::-webkit-scrollbar-thumb:hover { background: var(--witch-purple); } /* Selection */ ::selection { background: var(--witch-rose) !important; color: var(--witch-moon) !important; } /* Footer - FIXED at bottom */ footer, .page-footer { position: fixed !important; bottom: 0 !important; left: 0 !important; right: 0 !important; z-index: 1000 !important; height: 75px !important; display: flex !important; align-items: center !important; justify-content: space-between !important; padding: 0 20px !important; background: linear-gradient(135deg, var(--witch-purple) 0%, var(--witch-plum) 100%) !important; color: var(--witch-moon) !important; border-top: 2px solid var(--witch-mauve) !important; box-shadow: 0 -5px 20px rgba(168, 87, 126, 0.3) !important; } footer *, .page-footer * { color: var(--witch-moon) !important; } footer a, .page-footer a { color: var(--witch-mauve) !important; transition: all 0.3s ease; } footer a:hover, .page-footer a:hover { color: white !important; text-shadow: 0 0 10px rgba(212, 165, 199, 0.5); } /* Footer links container */ footer .ui.container, .page-footer .ui.container { background: transparent !important; box-shadow: none !important; padding: 0 !important; margin: 0 !important; display: flex !important; align-items: center !important; justify-content: space-between !important; width: 100% !important; max-width: 100% !important; } /* Fun animations */ @keyframes float { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-10px); } } .repository .icon { animation: float 6s ease-in-out infinite; } /* Special hover effects */ .ui.menu .item::after { content: ''; position: absolute; bottom: 0; left: 50%; width: 0; height: 2px; background: var(--witch-rose); transition: all 0.3s ease; transform: translateX(-50%); } .ui.menu .item:hover::after { width: 80%; } /* Modal overlays */ .ui.modal { background: rgba(255, 255, 255, 0.98) !important; border: 2px solid var(--witch-mauve) !important; box-shadow: 0 0 60px rgba(168, 87, 126, 0.4), 0 20px 40px rgba(68, 39, 90, 0.3) !important; } .ui.dimmer { background: rgba(10, 0, 9, 0.8) !important; backdrop-filter: blur(5px); } /* Sidebar/Vertical Menu - already styled above, just active state */ .ui.vertical.menu .active.item { background: var(--witch-lavender) !important; color: var(--witch-plum) !important; border-left: 3px solid var(--witch-rose) !important; } /* Dropdown menus - INCLUDING navbar dropdowns */ .ui.dropdown .menu, #navbar .ui.dropdown .menu, .ui.top.secondary.menu .ui.dropdown .menu { background: rgba(255, 255, 255, 0.98) !important; border: 1px solid var(--witch-mauve) !important; box-shadow: 0 4px 20px rgba(168, 87, 126, 0.2) !important; } .ui.dropdown .menu .item, #navbar .ui.dropdown .menu .item, .ui.top.secondary.menu .ui.dropdown .menu .item { color: var(--witch-purple) !important; background: transparent !important; } .ui.dropdown .menu .item:hover, #navbar .ui.dropdown .menu .item:hover, .ui.top.secondary.menu .ui.dropdown .menu .item:hover { background: var(--witch-lavender) !important; color: var(--witch-plum) !important; } /* Dropdown menu text must be dark */ .ui.dropdown .menu .item *, #navbar .ui.dropdown .menu .item * { color: var(--witch-purple) !important; } .ui.dropdown .menu .item:hover *, #navbar .ui.dropdown .menu .item:hover * { color: var(--witch-plum) !important; } /* Message/alert boxes */ .ui.message { background: rgba(255, 255, 255, 0.95) !important; border: 1px solid var(--witch-mauve) !important; color: var(--witch-purple) !important; } .ui.info.message { background: rgba(232, 213, 232, 0.5) !important; border-color: var(--witch-rose) !important; } .ui.warning.message { background: rgba(255, 243, 205, 0.8) !important; border-color: var(--color-warning) !important; } .ui.error.message, .ui.negative.message { background: rgba(255, 230, 230, 0.8) !important; border-color: var(--color-danger) !important; } .ui.success.message, .ui.positive.message { background: rgba(230, 255, 230, 0.8) !important; border-color: var(--color-success) !important; } /* List items */ .ui.list .item, .ui.list .item .content { color: var(--witch-purple) !important; } /* Breadcrumbs */ .ui.breadcrumb { color: var(--witch-plum) !important; } .ui.breadcrumb a { color: var(--witch-rose) !important; } .ui.breadcrumb .divider { color: var(--witch-mauve) !important; }