footer .ui.left {
  display: none;
}
.ui.vertical.menu {
  display: none;
}
.david {
  font-family: 'Times New Roman', Times, serif;
  font-weight: 300 !important;
  font-size:18px;
}
.ui .text.black {
  color: #d3d3d3 !important;
}
.ui .info.segment.top {
  background-color: #0b0b0b !important;
}
.ui.card>.image>img, .ui.cards>.card>.image>img {
  display: none;
}
.ui.blue.button, .ui.blue.buttons .button {
  background-color: #33363D !important;
  color: #fff;
  text-shadow: none;
  background-image:none
}
.ui.menu .dropdown.item .menu {
  background:none !important;
}
.ui.pagination.menu .active.item {
  background-color: rgba(0, 0, 0, .05);
  color:#db975c;
}
.editor-toolbar {
  background:#cecece;
}
.ui.repository.list .item:not(:first-child) {
  border-top: 1px solid #eee;
  padding-top: 5px;
}
.ui.repository.list .item {
  padding-bottom: 5px;
}
.ui.repository.list .item .ui.header {
  padding-bottom: 0px;
}
p.has-emoji {
  margin-bottom: 0px;
}

body:not(.full-width) {
  background-color: #484c57;
  background-size: contain;
  background-attachment: fixed;
  color: #97b094;
}

/**** Syntax Highlighting ****/


.repository .diff-file-box .code-diff tbody tr .removed-code {
  background-color: #b4000066 !important;
}
.repository .diff-file-box .code-diff tbody tr .added-code {
  background-color: #49ff003d !important;
}

.following.bar.light {
  background-color: #484c57 !important;
  border-bottom: none;
  box-shadow: none;
  color: bisque !important;
  /* position:fixed / top:0 removed 2026-08-16. Pinning this to the viewport took it out of
     normal flow, so it sat ON TOP of <daw-header> — which is the first child of <body> and
     therefore underneath it. The component header was rendering correctly the whole time.
     In normal flow the two stack: shared chrome first, then Gogs' own bar. Restore the two
     lines if you want the Gogs nav sticky again, but then the component header needs to be
     sticky too or offset by its height. */
  position: static;
}

@media (max-width: 1199px) {
  .ui.container:not(.fluid) {
    width: 85% !important;
  }
}
@media (min-width: 1200px) {
  .ui.container:not(.fluid) {
    width: 75% !important;
  }
}
.tabular .item {
  /* Repo tabs menu */
  color: #89bdff !important;
}

h1,
h2,
h3,
h4,
h5,
.ui.header,
.ui.menu,
.ui.input input,
.ui.button:not(.label) {
  color: #e9c062;
}
span.header.text {
  color: #daefa3 !important;
}
.octicon-lock {
  color: #EA3B2A !important;
}

#file-content h1,
#file-content h2,
#file-content h3,
#file-content h4,
#file-content h5 {
  color: silver;
}

pre.raw,
code.raw {
  background-color: #272c34;
  border: 1px solid #080705;
}

.following.bar {
  color: #197474 !important;
}

.overflow.menu .items .item {
  color: silver;
}

.following.bar .top.menu a.item.brand {
  color: #197474 !important;
}

.following.bar .top.menu a.item:hover,
.following.bar .top.menu .dropdown.item:hover,
.following.bar .top.menu .dropdown.item.active {
  color: rgba(196, 45, 45, 0.95) !important;
}

.following.bar .top.menu a.item:hover {
  color: rgba(196, 45, 45, 0.95) !important;
}

.following.bar .top.menu .menu {
  color: #197474 !important;
}

.following.bar .head.link.item {
  color: #89bdff !important;
}


.ui.left {
  padding-left: 5px;
}

.ui.right {
  padding-right: 5px;
  display: none;
}

.ui .header > i + .content {
  background-color: #080705 !important;
}

footer {
  color: silver !important;
  background-color: #272c34;
}

::selection {
    background-color: #98989866;
    color: inherit !important;
}

.markdown:not(code) {
  background-color: #272c34;
  color: silver;
}

.markdown:not(code) blockquote {
  border-left: 4px solid #272c34;
}

.markdown:not(code) table th,
.markdown:not(code) table td {
  border: 0px solid #197474 !important;
  background-color: #080705;
  color: #3e87e3;
}

.markdown:not(code) span.frame > span {
  border: 1px solid #080705;
}

.markdown:not(code) pre code,
.markdown:not(code) pre tt {
  color: silver;
}

.markdown:not(code) .highlight pre,
.markdown:not(code) pre {
  background-color: #272c34;
}

.home .stackable {
  padding-top: 40px;
}

.ui.attached.header {
  background: #272c34 !important;
  color: #89bdff !important;
  border: none !important;
}

.repository .header-wrapper {
  color: #197474 !important;
  background-color: transparent;
  padding-top: 10px;
}

/* .repository had padding-top: 80px — clearance for the navbar back when
   .following.bar.light was position:fixed. That was un-fixed on 2026-08-16, so the padding
   became 80px of dead space above every repository page. Removed with it; the two belong
   together, and restoring one without the other gives either an overlap or a gap. */

.repository #clone-panel {
  width: 30vw !important;
}

.repository #clone-panel input {
  max-width: 100%;
  background-color: #272c34;
}

.repository.file.list #git-stats {
  background-color: transparent;
}

.repository.file.list #file-content .view-raw {
  border: 0 !important;
}

.repository.file.list #file-content .code-view * {
  font-size: 14px;
  line-height: 20px !important;
}

.repository.file.list #file-content .code-view .lines-num span {
  line-height: 20px !important;
}

.repository.file.list #file-content .code-view table {
  border: 0 !important;
}

.repository.file.list #file-content .code-view .lines-num {
  background-color: #272c34 !important;
  line-height: 20px !important;
  font-size: 12px;
}

.repository.file.list #file-content .code-view .lines-num pre li,
.repository.file.list #file-content .code-view .lines-code pre li,
.repository.file.list #file-content .code-view .lines-num ol li,
.repository.file.list #file-content .code-view .lines-code ol li,
.repository.file.list #file-content .code-view .lines-num .hljs li,
.repository.file.list #file-content .code-view .lines-code .hljs li {
  font-size: 14px;
}

.repository.file.list #file-content .code-view .lines-num pre li.active,
.repository.file.list #file-content .code-view .lines-code pre li.active,
.repository.file.list #file-content .code-view .lines-num ol li.active,
.repository.file.list #file-content .code-view .lines-code ol li.active,
.repository.file.list #file-content .code-view .lines-num .hljs li.active,
.repository.file.list #file-content .code-view .lines-code .hljs li.active,
.hljs-meta .hljs-attribute .hljs-name .hljs-tag .hljs-string .hljs-doctag .hljs-subst .hljs-selector-tag .hljs-keyword .hljs-quote .hljs-comment {
  background: #001;
  color: #8f1 !important;
}

.repository .diff-file-box .file-body.file-code .lines-num {
  background-color: #272c34 !important;
}

.repository .diff-file-box .code-diff tbody tr.del-code td {
  background-color: #6f3a3a !important;
  border-color: #000 !important;
  color: #fff !important;
}

.repository .diff-file-box .code-diff tbody tr.add-code td {
  background-color: #467b60 !important;
  border-color: #c1e9c1 !important;
  color: #fff !important;
}

.repository .diff-file-box .code-diff tbody tr.del-code td.add-code pre {
  background-color: #4c296a !important;
  color: #fff !important;
}

.repository .diff-file-box .code-diff tbody tr.del-code td.add-code {
  background-color: #4c296a !important;
  color: #fff !important;
}

.repository.file.editor .commit-form-wrapper .commit-form {
  border: 1px solid #080705;
}

.repository .diff-detail-box ol li {
  border-bottom: 1px dashed #080705;
}

.repository .diff-file-box .file-body.file-code .lines-num-old {
  border-right: 1px solid #080705;
}

.repository .head .mega-octicon {
  color: #EA3B2A;
}

.mega-octicon.octicon-repo {
  color: steelblue !important;
}

#repo-clone-url {
  color: #89bdff !important;
}

#repo-clone-url::-moz-selection {
  color: rgba(196, 45, 45, 0.95) !important;
  background-color: #272c34;
}

#repo-clone-url::selection {
  color: rgba(196, 45, 45, 0.95) !important;
  background-color: #272c34;
}

.repository.release #release-list {
  border-top: 1px solid #080705;
}

.repository.release #release-list > li .detail {
  border-left: 1px solid #080705;
}

.repository.forks .list .item {
  border-bottom: 1px solid #080705;
}

.repository.settings.collaboration .collaborator.list > .item:not(:last-child) {
  border-bottom: 1px solid #080705;
}

#search-user-box .results .item {
  border-bottom: 1px solid #080705;
}

.ui.vertical.menu .header.item {
  background: #272c34;
  color: silver;
  text-align: center;
  padding-left: 0;
}


.organization.profile #org-avatar {
  width: 90px;
  height: 70px;
  margin-right: 5px;
}

.organization.teams .repositories .item:not(:last-child),
.organization.teams .members .item:not(:last-child) {
  border-bottom: 1px solid #080705;
}


.ui.card {
  background-color: transparent !important;
  color: silver !important;
  border: 0 !important;
}

.user.profile .ui.card .extra.content ul li:not(:last-child) {
  border-bottom: 1px solid #080705;
}


.feeds .list ul li:not(:last-child) {
  border-bottom: none;
}

.feeds .list ul li a .octicon {
  color: steelblue;
}


.ui.repository.list .item .ui.header {
  color: silver;
}

.ui.repository.list .item .ui.header .name {
  color: silver;
}

.ui.repository.list .item .ui.header .name:hover {
  color: rgba(196, 45, 45, 0.95);
}

.ui.repository.list .item:not(:first-child) {
  border-top: none;
}

.ui.header .sub.header {
  color: #197474 !important;
}

.ui.header {
  color: #89bdff !important;
}

.ui.form .inline.field > label,
.ui.form .inline.field > p,
.ui.form .inline.fields .field > label,
.ui.form .inline.fields .field > p,
.ui.form .inline.fields > label {
  color: silver;
}

.secondary {
  background-color: transparent !important;
  color: #197474 !important;
}

.secondary .item {
  color: silver !important;
}

.secondary .item:hover {
  color: silver;
}

.repository.file.list #file-content .code-view .lines-num pre,
.repository.file.list #file-content .code-view .lines-code pre,
.repository.file.list #file-content .code-view .lines-num ol,
.repository.file.list #file-content .code-view .lines-code ol,
.repository.file.list #file-content .code-view .lines-num .hljs,
.repository.file.list #file-content .code-view .lines-code .hljs {
  background-color: #1c2025 !important;
  color: #f8f8f8;
  margin: 0;
  padding: 0 !important;
  border: 0 !important;
}

.feeds .news > .ui.grid {
  margin-left: auto;
  margin-right: auto;
}

#ActionButtons {
  color: silver !important;
  background-color: inherit !important;
  border: 0.5px solid #080705;
}

.CodeMirror-code {
  background-color: #080705 !important;
  color: #9ebdb1 !important;
}

.CodeMirror-gutters {
  background-color: #080705;
  color: #197474;
}

.CodeMirror {
  /* file edditor */
  background: #080705;
  color: #9ebdb1 !important;
}

#repo-desc {
  font-weight: 500;
  color: #7d97cd;
}
#repo-desc a {
  color: #db975c;
}

#repo-clone-ssh {
  color: silver;
}

#repo-clone-https {
  color: silver;
}

#danger_zone_edited {
  background: #272c34;
  border-color: #080705 !important;
}

#basic_sett,
#adv_sett,
#adv_sett_form,
#admin_sec_panel,
#admin_small_panel {
  background: #272c34;
  border-color: #080705 !important;
}

#danger_zone_edited_header {
  background: #197474 !important;
}

#commits-table-head tr th {
  color: silver !important;
}

.ui.table thead th {
  background: #272c34;
  color: silver;
}

.ui.table thead tr:hover th {
  background: #080705;
}

.ui.table tr td {
  border-top: none;
}

.repository.file.list #repo-files-table tr:hover {
  background-color: #080705;
}

tr:hover a {
  color: rgba(196, 45, 45, 0.95);
}

#repo-files-table tr:hover {
  color: rgba(196, 45, 45, 0.95);
}

#repo-files-table tr:hover span {
  /* repo time last changed */
  color: rgba(196, 45, 45, 0.95) !important;
}

.feeds .list ul li.private {
  background-color: #272c34;
}

.feeds .list ul {
  background-color: #272c34;
  background-size: contain;
  background-attachment: fixed;
  background-blend-mode: difference;
}

.repository .diff-file-box .code-diff tbody tr.tag-code td {
  background-color: #272c34 !important;
}

.repository .diff-file-box .header {
  background-color: #197474;
}

/* File Editor */
.editor-toolbar a {
  color: #193c9b !important;
}

.editor-toolbar a.active,
.editor-toolbar a:hover {
  background: #c8c183;
  color: silver;
  border-color: #c8c183;
}

.CodeMirror {
  border: 1px solid #080705;
}

.CodeMirror-gutters {
  background-color: #272c34;
  border-right: none;
  border-left: none;
}




/* Editor Highlight Theme */
.cm-s-default .cm-comment {
  color: #a2a2a26e !important;
  font-weight: 400;
}

.cm-s-default .cm-def {
  color: #9ebdb1;
}

.cm-s-default .cm-builtin {
  color: #0086b3 !important;
}

/* semantic */
.ui.attached.segment {
  border: 0;
}

.ui.segment {
  background: #272c34;
}

.ui.buttons > .ui.dropdown:last-child .menu,
.ui.menu .right.dropdown.item .menu,
.ui.menu .right.menu .dropdown:last-child .menu {
  background-color: #272c34 !important;
}

.ui.menu .ui.dropdown .menu > .item {
  color: #89bdff !important;
  background-color: #272c34 !important;
}

.ui.dropdown .menu > .item:hover {
  color: rgba(196, 45, 45, 0.95);
}

.ui.menu {
  background: #272c34;
}

.ui.menu .ui.dropdown .menu > .selected.item {
  color: rgba(196, 45, 45, 0.95) !important;
}

.ui.menu .ui.dropdown .menu > .active.item {
  color: rgba(196, 45, 45, 0.95) !important;
}

.ui.selection.dropdown .menu > .item {
  border-top: none;
}

.ui.checkbox input:focus ~ label {
  color: silver;
}

.ui.checkbox.checked label:focus {
  color: silver;
}

.ui.checkbox label {
  color: silver;
}

.ui.checkbox.checked label {
  color: silver;
}

.ui.checkbox label.focus {
  color: silver;
}

.ui.checkbox.checked label.focus {
  color: silver;
}

.ui.checkbox label:hover {
  color: silver;
}

.ui.checkbox.checked label:hover {
  color: silver;
}

.ui.checkbox label,
.ui.checkbox + label {
  color: silver;
}

.ui.checkbox label:hover,
.ui.checkbox + label:hover {
  color: silver;
}

.ui.checkbox.checked label,
.ui.checkbox.checked + label {
  color: silver;
}

.ui.checkbox.checked label:hover,
.ui.checkbox.cheked + label:hover {
  color: silver;
}

.ui.link.menu .item,
.ui.menu .dropdown.item,
.ui.menu .link.item,
.ui.menu a.item {
  color: silver;
}

.ui.link.menu .item:hover,
.ui.menu .dropdown.item:hover,
.ui.menu .link.item:hover,
.ui.menu a.item:hover {
  color: rgba(196, 45, 45, 0.95);
}

.ui .dropdown .menu {
  background-color: #272c34;
}

.ui .dropdown .menu a:hover {
  color: #197474 !important;
}

.ui.basic.button,
.ui.basic.buttons .button {
  background: #197474 !important;
  color: silver;
}

.ui.vertical.menu {
  background: #272c34;
  color: #197474;
}

.ui.dropdown .menu .selected.item,
.ui.dropdown.selected {
  background: #272c34;
  color: silver;
}

.ui.vertical.menu .item {
  color: silver;
}

.ui.menu .item {
  font-weight: 600;
  color: silver;
}

.ui.menu .item .active {
  font-weight: 600;
}

.ui.menu .item > .input input {
  background-color: #080705;
}

.ui.menu .item:hover,
.ui.vertical.menu .item:hover {
  color: silver;
}

.ui.vertical.menu .active.item {
  background: #484c57;
}

.ui.menu .active.item {
  font-weight: 600;
}

.ui.menu .active.item:hover,
.ui.vertical.menu .active.item:hover {
  color: inherit;
}

.ui.dropdown .menu > .item {
  color: silver;
}

.ui.menu.three.item .item {
  background-color: #272c34;
  color: steelblue;
}

.ui.card > .extra a:not(.ui),
.ui.cards > .card > .extra a:not(.ui) {
  color: #89bdff;
}

.ui.table {
  background-color: #272c34;
  background-size: contain;
  background-attachment: fixed;
  background-blend-mode: color-burn;
  color: silver;
}

.ui.button {
  background: #2F435C !important;
  color: silver !important;
}

.ui.button:hover {
  color: rgba(196, 45, 45, 0.95);
}

.ui.dropdown .menu > .header {
  color: silver;
}

.ui.menu .ui.dropdown .menu > .item:hover {
  color: rgba(196, 45, 45, 0.95) !important;
  background-color: #272c34 !important;
}

.ui.dropdown .menu {
  border: 1px solid #272c34;
}

.ui.dropdown .menu > .input:not(.transparent) input {
  background-color: #080705;
  color: bisque;
}

.ui.form input:not([type]),
.ui.form input[type=date],
.ui.form input[type=datetime-local],
.ui.form input[type=email],
.ui.form input[type=file],
.ui.form input[type=number],
.ui.form input[type=password],
.ui.form input[type=search],
.ui.form input[type=tel],
.ui.form input[type=text],
.ui.form input[type=time],
.ui.form input[type=url] {
  background: #555966;
  color: silver;
  font-weight: 600;
}

.ui.form input:not([type]):focus,
.ui.form input[type=date]:focus,
.ui.form input[type=datetime-local]:focus,
.ui.form input[type=email]:focus,
.ui.form input[type=file]:focus,
.ui.form input[type=number]:focus,
.ui.form input[type=password]:focus,
.ui.form input[type=search]:focus,
.ui.form input[type=tel]:focus,
.ui.form input[type=text]:focus,
.ui.form input[type=time]:focus,
.ui.form input[type=url]:focus {
  color: silver;
  border-color: transparent;
  border-radius: 0;
  background: #272c34;
}

.ui.action.input:not([class*="left action"]) > input:focus {
  border-right-color: transparent !important;
}

.ui.form .field > label {
  color: silver;
}

.ui.attached.header {
  background: #080705;
}

.ui .text.black:hover {
  color: bisque;
}

.ui.tabular.menu .active.item {
  background: none #272c34;
  border-color: #272c34;
  color: rgba(196, 45, 45, 0.95);
}

.ui.basic.button,
.ui.basic.buttons .button {
  background: #272c34 none !important;
  color: silver !important;
  font-weight: 600;
  -webkit-box-shadow: 0 0 2px 0px #daefa3;
  box-shadow: 0 0 2px 0px #daefa3;
}

.ui.basic.button:hover,
.ui.basic.buttons .button:hover {
  background: #272c34 !important;
  color: rgba(196, 45, 45, 0.95) !important;
  -webkit-box-shadow: 0 0 8px 0px #c8c183;
  box-shadow: 0 0 8px 0px #c8c183;
}

.ui.label {
  background-color: #272c34;
  color: #fff;
}

.ui.basic.label {
  background: none #272c34;
}

.ui.breadcrumb a {
  color: silver;
}
.ui.breadcrumb .divider {
  color: silver !important;
}
.ui.list .list > .item .description,
.ui.list > .item .description {
  color: silver;
}

.ui.user.list .item .description a {
  color: silver;
}

.ui.user.list .item .description a:hover {
  text-decoration: underline;
  color: #197474;
}

.ui.buttons:not(.basic):not(.inverted) > .button,
.ui.buttons > .ui.button:not(.basic):not(.inverted) {
  -webkit-box-shadow: 0 0 2px 0px #daefa3;
  box-shadow: 0 0 2px 0px #daefa3;
}
.ui.basic.blue.button, .ui.basic.blue.buttons .button {
    box-shadow: 0 0 0 1px #8996a8 inset!important;
    color: #89bdff !important;
}
.ui.button {
  background: transparent;
}

.ui.button:hover {
  background-color: #272c34;
  color: rgba(196, 45, 45, 0.95) !important;
}

.ui.card,
.ui.cards > .card {
  box-shadow: 0px -1px 22px 10px #383b44;
}

#repo-files-table a {
  color: silver;
}
a {
  color: #8cc56f;
}

a:hover {
  color: rgba(196, 45, 45, 0.95);
}

footer {
  border-top: 1px solid #272c34;
}


/*#############################################*/
/*#########  Syntax Higlight Theme ############*/
/*#############################################*/

.hljs {
    display: block !important;
    overflow-x: auto !important;
    padding: .5em !important;
    
}

.hljs-comment,.hljs-quote {
    color: #aeaeae !important;
    font-style: italic !important
}

.hljs-keyword,.hljs-selector-tag,.hljs-type {
    color: #e28964 !important
}

.hljs-string {
    color: #65b042 !important
}

.hljs-subst {
    color: #daefa3 !important
}

.hljs-link,.hljs-regexp {
    color: #e9c062 !important
}

.hljs-name,.hljs-section,.hljs-tag,.hljs-title {
    color: #89bdff !important
}

.hljs-class .hljs-title,.hljs-doctag {
    text-decoration: none !important
}

.hljs-bullet,.hljs-number,.hljs-symbol {
    color: #3387cc !important
}

.hljs-params,.hljs-template-variable,.hljs-variable {
    color: #3e87e3 !important
}

.hljs-attribute {
    color: #cda869 !important
}

.hljs-meta {
    color: #8996a8 !important
}

.hljs-formula {
    background-color: #0e2231 !important;
    color: #f8f8f8 !important;
    font-style: italic !important;
}

.hljs-addition {
    background-color: #253b22 !important;
    color: #f8f8f8 !important;
}

.hljs-deletion {
    background-color: #420e09 !important;
    color: #f8f8f8 !important;
}

.hljs-selector-class {
    color: #9b703f !important;
}

.hljs-selector-id {
    color: #8b98ab !important;
}

.hljs-emphasis {
    font-style: italic !important;
}

.hljs-strong {
    font-weight: 700 !important;
}


/* ---- shared chrome spacing -------------------------------------------------------------
 * <daw-header> and <daw-footer> come from /embed/chrome.js and sit outside Gogs' own
 * layout, so nothing in Gogs' CSS knows they exist. Both need breathing room the component
 * does not provide itself: the header because it butts against the top of the viewport, and
 * the footer because Gogs' own footer used to occupy that space and was removed.
 *
 * Styling the host element rather than anything inside it — chrome.js may use shadow DOM,
 * in which case its internals are unreachable from here, but padding on the host always
 * applies. */
daw-header {
  display: block;
  padding-top: 1.5rem;
}
daw-footer {
  display: block;
  margin-top: 4rem;   /* replaces the gap Gogs' removed footer used to provide */
}

/* Sign-in link relocated from the navbar to just above <daw-footer>. Deliberately quiet —
   it is the only way in on a single-user instance, so it has to exist, but it does not
   deserve nav-level prominence. */
.gogs-signin-foot {
  text-align: right;
  padding: 0 15px;
  margin: 2rem auto 0;
  max-width: 1170px;
  opacity: .45;
}
.gogs-signin-foot a { color: inherit; }
.gogs-signin-foot a:hover { opacity: 1; color: #25c2a0; }

/* ---- repository list in two columns ----------------------------------------------------
 * Applies to both the explore page and the Repositories tab on a profile — they share
 * .ui.repository.list. Grid rather than columns so rows align: with CSS multi-column a tall
 * card drags its neighbours out of step.
 *
 * Single column below 900px. The list items carry their own padding, so the gap is kept
 * modest to avoid doubling it. */
.ui.repository.list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0 2rem;
  align-items: start;
}
.ui.repository.list > .item {
  min-width: 0;          /* lets long repo names ellipsize instead of forcing the column wide */
}
@media (max-width: 900px) {
  .ui.repository.list { grid-template-columns: 1fr; }
}

/* ---- contribution grid ------------------------------------------------------------------
 * Rendered by js/activity-grid.js above the repository list on explore and profile pages.
 *
 * grid-auto-flow: column with 7 rows is what makes it read as weeks: cells fill top-to-bottom
 * down each week, then across — the same orientation as GitHub's. Filling row-major would
 * put consecutive days side by side and the pattern would mean nothing.
 */
.daw-activity {
  margin: 0 0 2rem;
}
.daw-activity-head {
  font-size: .85rem;
  opacity: .6;
  margin-bottom: .5rem;
}
.daw-activity-grid {
  display: grid;
  grid-template-rows: repeat(7, 11px);
  grid-auto-flow: column;
  grid-auto-columns: 11px;
  gap: 3px;
  overflow-x: auto;      /* 53 columns will not fit a narrow window; scroll rather than squash */
  padding-bottom: .25rem;
}
.daw-activity-grid i {
  display: block;
  width: 11px;
  height: 11px;
  border-radius: 2px;
  background: rgba(255,255,255,.06);   /* level 0 — present but recessive */
}
/* #25c2a0 is the site accent; the ramp is opacity against the dark ground rather than four
   hand-picked hues, so it stays correct if the background changes. */
.daw-activity-grid i.lvl1 { background: rgba(37,194,160,.30); }
.daw-activity-grid i.lvl2 { background: rgba(37,194,160,.50); }
.daw-activity-grid i.lvl3 { background: rgba(37,194,160,.75); }
.daw-activity-grid i.lvl4 { background: #25c2a0; }
/* lvl5 — the top decile. lvl4 is already the solid accent, so the extra step has to go
   brighter than it rather than more opaque. */
.daw-activity-grid i.lvl5 { background: #5fd9bd; }

/* ---- palette normalisation, 2026-08-17 --------------------------------------------------
 * The theme had accumulated ten green-ish values (#daefa3, #9ebdb1, #c1e9c1, #8cc56f,
 * #65b042, #49ff00, #467b60, #253b22 ...) which read as noise on the activity feed. Reduced
 * to two: the muted #97b094 for body and feed text, and #25c2a0 for interaction.
 */

/* Activity feed — one green, not six. */
.feeds .news .content,
.feeds .news .text,
.feeds .news .text.grey,
.feeds .news .text.light.grey,
.feeds .news .text.truncate,
.feeds .news .text.italic,
.feeds .news .mega-octicon,
.feeds .news .octicon {
  color: #97b094 !important;
}

/* Links: site red, accent green on hover.
 *
 * NOTE #67000a against the #484c57 page background is 1.55:1 — far below any legibility
 * threshold. It is the main site's link colour, where it sits on a light ground and works.
 * If it proves unreadable here, #b8434f keeps the same hue at ~4.6:1; swap the two values
 * and nothing else needs to change. */
.markdown a,
.repository a,
.feeds a,
.ui.repository.list a,
#repo-desc a,
.dashboard a {
  color: #67000a;
}
.markdown a:hover,
.repository a:hover,
.feeds a:hover,
.ui.repository.list a:hover,
#repo-desc a:hover,
.dashboard a:hover {
  color: #25c2a0;
}

/* Contribution grid in the muted green rather than the accent. */
.daw-activity-grid i.lvl1 { background: rgba(151,176,148,.30) !important; }
.daw-activity-grid i.lvl2 { background: rgba(151,176,148,.55) !important; }
.daw-activity-grid i.lvl3 { background: rgba(151,176,148,.80) !important; }
.daw-activity-grid i.lvl4 { background: #97b094 !important; }
.daw-activity-grid i.lvl5 { background: #bcd4b8 !important; }   /* top decile */

/* Contribution grid sized to the container rather than to fixed 11px cells.
 * 53 columns at 11px + 3px gaps came to ~739px in a ~1170px column, so it sat short of the
 * width and read as a widget rather than part of the page.
 *
 * minmax(0,1fr) columns with aspect-ratio:1 keeps the cells square while letting them grow,
 * so it fills whatever width it is given and stays correct if the content column changes. */
.daw-activity-grid {
  grid-template-rows: repeat(7, auto) !important;
  grid-auto-columns: minmax(0, 1fr) !important;
  gap: 3px !important;
  width: 100%;
  overflow-x: visible;          /* no longer needs to scroll — it fits by construction */
}
.daw-activity-grid i {
  width: auto !important;
  height: auto !important;
  aspect-ratio: 1;
  border-radius: 2px;
}

/* ==========================================================================================
 * CONTENT PANEL — 2026-08-17
 *
 * Matches the main site: `body.desk .entry-content { background:#dadada; border-radius:6px }`
 * on the same #484c57 page. Gogs previously had content sitting directly on the dark ground,
 * which is why the site's #67000a link colour was unusable — 1.55:1 on #484c57 against
 * 9.50:1 on #dadada.
 *
 * This INVERTS the content area. Everything below re-darkens type that the rules above set
 * light. Where the two disagree, this wins by being later in the file — deliberate, so the
 * original dark theme stays readable as a record rather than being unpicked line by line.
 *
 * Hung on the page-type wrappers rather than .ui.container, which is also used inside the
 * navbar and would put a panel behind it.
 * ======================================================================================== */

.user.profile,
.repository,
.explore,
.dashboard,
.home,
.organization,
.admin {
  background: #dadada;
  border-radius: 6px;
  padding: 2.5rem 2rem;
  margin: 1.5rem auto 3rem;
  max-width: 1170px;          /* the width <daw-header>'s .in uses at >=1200px */
  color: #484c57;
}

/* Type inside the panel. #484c57 is the page colour used as ink — 6.14:1, and it ties the
   panel to the ground it sits on. */
.user.profile, .user.profile p, .user.profile td, .user.profile th, .user.profile .text,
.repository, .repository p, .repository td, .repository th,
.explore, .explore p, .explore td,
.dashboard, .dashboard p, .dashboard td,
.home, .home p, .organization, .organization p {
  color: #484c57 !important;
}
.user.profile h1, .user.profile h2, .user.profile h3,
.repository h1, .repository h2, .repository h3,
.explore h1, .explore h2, .explore h3 { color: #2f333c !important; }

/* Secondary type. #6b7268 is 3.55:1 — deliberately below the body text so it recedes,
   which is what "grey" meant on the dark version. */
.user.profile .grey, .user.profile .light.grey, .user.profile .text.grey,
.repository .grey, .repository .light.grey, .repository .text.grey,
.explore .grey, .explore .light.grey,
.feeds .news .text, .feeds .news .text.grey, .feeds .news .text.light.grey,
.feeds .news .text.truncate, .feeds .news .text.italic,
.feeds .news .mega-octicon, .feeds .news .octicon {
  color: #6b7268 !important;
}

/* Links: the site red, now on a ground it can contrast against.
   Hover is a DARKENED green — #25c2a0 is only 1.61:1 here, so the site accent cannot be
   reused directly. #0f7a63 is the same hue at 3.77:1. */
.user.profile a, .repository a, .explore a, .dashboard a, .home a,
.organization a, .markdown a, .ui.repository.list a, #repo-desc a, .feeds a {
  color: #67000a !important;
}
.user.profile a:hover, .repository a:hover, .explore a:hover, .dashboard a:hover,
.home a:hover, .organization a:hover, .markdown a:hover, .ui.repository.list a:hover,
#repo-desc a:hover, .feeds a:hover {
  color: #0f7a63 !important;
}

/* Rules and borders need to darken too — the dark theme's near-black borders vanish here. */
.user.profile .segment, .repository .segment, .explore .segment,
.ui.repository.list > .item, .feeds .news, .ui.divider, .ui.table td, .ui.table th {
  border-color: #c0c0c0 !important;
}

/* Contribution grid: ramp inverted. On the dark ground it went transparent -> bright green;
   on a light panel it has to go pale -> dark or the busiest days disappear. */
.daw-activity-grid i          { background: rgba(72,76,87,.09) !important; }
.daw-activity-grid i.lvl1     { background: #c3cdc0 !important; }
.daw-activity-grid i.lvl2     { background: #a9b8a5 !important; }
.daw-activity-grid i.lvl3     { background: #7d9478 !important; }
.daw-activity-grid i.lvl4     { background: #486b43 !important; }
.daw-activity-grid i.lvl5     { background: #2f4a2b !important; }   /* top decile — darker, ramp is inverted here */
.daw-activity-head            { color: #6b7268 !important; }

/* The 75%/85% .ui.container rules earlier in this file predate the panel: they were what
   limited content width when it sat directly on the page. The panel now does that job with
   max-width:1170px, so leaving them applies BOTH constraints and compounds them —
   75% of (1170 - 4rem padding) is ~829px, which is why the content looked pinched.
   Inside the panel the container should simply fill it. */
.user.profile .ui.container:not(.fluid),
.repository   .ui.container:not(.fluid),
.explore      .ui.container:not(.fluid),
.dashboard    .ui.container:not(.fluid),
.home         .ui.container:not(.fluid),
.organization .ui.container:not(.fluid),
.admin        .ui.container:not(.fluid) {
  width: 100% !important;
  max-width: 100% !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
}

/* ==========================================================================================
 * CODE + SYNTAX ON THE LIGHT PANEL — 2026-08-17
 *
 * The highlighting was a Sunburst-family DARK palette (#e28964 keywords, #65b042 strings,
 * #89bdff names) on #272c34 slabs. Against the #dadada panel, 32 of the theme's 57 distinct
 * colours measured below 3:1 — adding transparency to the background alone would have made
 * that worse, not better, because every token assumed a dark ground.
 *
 * So the token colours are re-derived rather than replaced: same hue and saturation, lightness
 * reduced to the LIGHTEST value that clears 4.5:1 on the panel. Keywords stay orange, strings
 * stay green, names stay blue — they just read now.
 * ======================================================================================== */

/* Backgrounds: a faint tint of the page colour rather than a dark slab. Enough to separate
   code from prose, not enough to become a second panel inside the first. */
pre.raw,
.markdown:not(code),
.markdown:not(code) .highlight pre,
.repository.file.list #file-content .code-view,
.repository.file.list #file-content .code-view table,
.repository.file.list #file-content .code-view .lines-code,
.repository .diff-file-box .file-body.file-code .lines-code,
.repository .diff-file-box .file-body.file-code .lines-num {
  background: rgba(72,76,87,.055) !important;
  color: #33373f !important;
}
.markdown:not(code) table th { background: rgba(72,76,87,.10) !important; color:#33373f !important; }

/* Line numbers recede without disappearing. */
.repository.file.list #file-content .code-view .lines-num,
.repository.file.list #file-content .code-view .lines-num pre,
.repository.file.list #file-content .code-view .lines-num span {
  background: rgba(72,76,87,.075) !important;
  color: #7b8190 !important;
}

/* Tokens — hues preserved, lightness fitted to the panel. */
.hljs                                              { background: transparent !important; color:#33373f !important; }
.hljs-comment, .hljs-quote                         { color:#5e5e5e !important; font-style: italic; }
.hljs-keyword, .hljs-selector-tag, .hljs-type      { color:#a43e14 !important; }
.hljs-string                                       { color:#386921 !important; }
.hljs-subst                                        { color:#4c650b !important; }
.hljs-link, .hljs-regexp                           { color:#7c5909 !important; }
.hljs-name, .hljs-section, .hljs-tag, .hljs-title  { color:#005acc !important; }
.hljs-bullet, .hljs-number, .hljs-symbol           { color:#1c629b !important; }
.hljs-params, .hljs-template-variable, .hljs-variable { color:#0e5cbe !important; }
.hljs-attribute                                    { color:#785821 !important; }
.hljs-meta                                         { color:#526175 !important; }
.hljs-selector-class                               { color:#7d572b !important; }
.hljs-selector-id                                  { color:#516076 !important; }
.hljs-formula, .hljs-addition, .hljs-deletion      { color:#33373f !important; }

/* Diffs: the dark #6f3a3a / #467b60 row fills go to light tints, so the token colours above
   stay legible on top of them. */
.repository .diff-file-box .code-diff tbody tr.del-code td,
.repository .diff-file-box .code-diff tbody tr .removed-code {
  background: rgba(164,32,32,.12) !important; color:#33373f !important;
}
.repository .diff-file-box .code-diff tbody tr.add-code td,
.repository .diff-file-box .code-diff tbody tr .added-code {
  background: rgba(56,105,33,.14) !important; color:#33373f !important;
}

/* Links inside code must NOT take the red — a #67000a token in a diff reads as syntax. */
.code-view a, pre a, .hljs a { color: inherit !important; text-decoration: underline; }

/* ==========================================================================================
 * SEMANTIC SURFACES INSIDE THE PANEL — 2026-08-17
 *
 * The theme paints #272c34 (and #080705) onto ~40 structural selectors: .ui.segment,
 * .ui.table, .ui.menu, .ui.label, .ui.button, .ui.attached.header, dropdowns, form fields.
 * Those were the page surface when content sat on the dark ground. Inside the light panel
 * they are dark islands — which is what is still showing on a repository page, since the
 * file list is .ui.segment + .ui.table rather than anything code-specific.
 *
 * Handled as a family here rather than by unpicking forty rules above, so the original dark
 * theme stays intact and reversible.
 * ======================================================================================== */

.user.profile, .repository, .explore, .dashboard, .home, .organization, .admin {
  /* flat surfaces: let the panel show through */
  --panel-ink: #33373f;
}

.repository .ui.segment,
.repository .ui.table,
.repository .ui.attached.header,
.repository .ui.attached.table,
.repository .ui.label,
.explore .ui.segment, .explore .ui.table,
.user.profile .ui.segment, .user.profile .ui.table,
.dashboard .ui.segment, .dashboard .ui.table,
.organization .ui.segment, .organization .ui.table,
.file-view.markdown, .markdown:not(code) {
  background: transparent !important;
  color: #33373f !important;
  border-color: #c0c0c0 !important;
}

/* Table chrome: header rows and hover need a tint, not a slab. */
.repository .ui.table thead th,
.explore .ui.table thead th,
.user.profile .ui.table thead th,
.ui.table thead th {
  background: rgba(72,76,87,.08) !important;
  color: #4a4f5a !important;
  border-color: #c0c0c0 !important;
}
.repository.file.list #repo-files-table tr:hover,
.ui.table tbody tr:hover td {
  background: rgba(72,76,87,.05) !important;
}

/* Floating things — dropdowns and their menus — must stay OPAQUE. Transparent here means
   the content underneath shows through an open menu, which looks like a rendering fault. */
.repository .ui.dropdown .menu,
.repository .ui.menu .ui.dropdown .menu,
.ui.dropdown .menu,
.ui.vertical.menu,
.ui.menu .ui.dropdown .menu > .item {
  background: #e6e6e6 !important;
  color: #33373f !important;
  border-color: #c0c0c0 !important;
}
.ui.dropdown .menu > .item:hover,
.ui.menu .ui.dropdown .menu > .item:hover { background: #d2d2d2 !important; color:#1f2229 !important; }

/* Buttons inside the panel. */
.repository .ui.button, .explore .ui.button, .user.profile .ui.button,
.repository .ui.basic.button {
  background: #e6e6e6 !important;
  color: #33373f !important;
  border-color: #bdbdbd !important;
}
.repository .ui.button:hover, .explore .ui.button:hover,
.user.profile .ui.button:hover { background:#d2d2d2 !important; color:#1f2229 !important; }

/* The clone URL field and other inputs. */
.repository #clone-panel input,
.repository .ui.form input, .repository input[type=text] {
  background: rgba(255,255,255,.55) !important;
  color: #33373f !important;
  border-color: #bdbdbd !important;
}

/* ---- repo tabs and the remaining light blue -------------------------------------------
 * #89bdff appeared in nine rules. Seven sit inside the panel and go red or to ink; ONE is
 * left alone deliberately — .following.bar .head.link.item is on the Gogs navbar, which is
 * still dark, and #67000a there would be 1.55:1. The ninth was already replaced by the
 * syntax block above.
 */

/* Tab bar: no dark slab. The active tab is marked by a red underline and weight rather than
   a filled background, which is what stops it reading as a hole in the panel. */
.ui.tabular.menu {
  background: transparent !important;
  border-bottom: 1px solid #c0c0c0 !important;
}
.ui.tabular.menu .item {
  background: transparent !important;
  border: 0 !important;
  color: #6b7268 !important;
}
.ui.tabular.menu .item:hover { color: #0f7a63 !important; }
.ui.tabular.menu .active.item {
  background: transparent !important;
  border: 0 !important;
  border-bottom: 2px solid #67000a !important;
  color: #67000a !important;
  font-weight: 600;
}
.tabular .item { color: #6b7268 !important; }
.tabular .active.item { color: #67000a !important; }

/* The rest of the light blue, inside the panel. */
.repository .ui.attached.header,
.repository .ui.header,
.explore .ui.header,
.user.profile .ui.header,
.dashboard .ui.header { color: #33373f !important; }

.repository #repo-clone-url { color: #33373f !important; }

.ui.cards > .card > .extra a:not(.ui),
.ui.basic.blue.button, .ui.basic.blue.buttons .button { color: #67000a !important; }
.ui.cards > .card > .extra a:not(.ui):hover,
.ui.basic.blue.button:hover { color: #0f7a63 !important; }

/* Commits / branches / releases — the #git-stats bar under the repo header. Its links were
   inheriting the generic anchor colour rather than the panel link rule, so they stayed pale.
   The counts inside them are <b> and pick up the ink colour, not the link colour. */
#git-stats a,
.repository.file.list #git-stats a {
  color: #67000a !important;
}
#git-stats a:hover,
.repository.file.list #git-stats a:hover {
  color: #0f7a63 !important;
}
#git-stats a b,
#git-stats a .octicon,
.repository.file.list #git-stats a b { color: inherit !important; }

/* `.ui .text.black` was remapped to #d3d3d3 — sensible when "black" text sat on a dark
   ground, invisible on the #dadada panel at 1.06:1. It wraps the Commits / Branches /
   Releases labels among other things.
   Inside #git-stats it inherits, so the link colour reaches the label and the count. */
.user.profile .ui .text.black, .repository .ui .text.black,
.explore .ui .text.black, .dashboard .ui .text.black,
.organization .ui .text.black, .admin .ui .text.black {
  color: #33373f !important;
}
#git-stats .ui.text.black, #git-stats .text.black,
#git-stats a .ui.text.black { color: inherit !important; }
.repository .ui .text.black:hover, #git-stats a:hover .ui.text.black { color: #0f7a63 !important; }

/* Plain .ui.menu inside the panel — the Labels / Milestones pill group is
   `.ui.compact.small.menu`, which the theme paints #272c34. Scoped to the panel wrappers so
   the Gogs navbar (.following.bar, outside them) keeps its dark treatment. */
.repository .ui.menu, .repository .ui.compact.menu,
.explore .ui.menu, .user.profile .ui.menu,
.dashboard .ui.menu, .organization .ui.menu, .admin .ui.menu {
  background: transparent !important;
  border-color: #c0c0c0 !important;
  box-shadow: none !important;
}
.repository .ui.menu .item, .explore .ui.menu .item,
.user.profile .ui.menu .item, .dashboard .ui.menu .item {
  background: transparent !important;
  color: #6b7268 !important;
}
.repository .ui.menu .item:hover, .explore .ui.menu .item:hover,
.user.profile .ui.menu .item:hover { color: #0f7a63 !important; }
.repository .ui.menu .active.item, .explore .ui.menu .active.item,
.user.profile .ui.menu .active.item, .dashboard .ui.menu .active.item {
  background: rgba(72,76,87,.07) !important;
  color: #67000a !important;
  font-weight: 600;
}

/* ---- shared chrome sizing --------------------------------------------------------------
 * <daw-header>/<daw-footer> size everything in rem, and rem resolves against the DOCUMENT
 * ROOT — it pierces the shadow boundary, so `:host{all:initial}` cannot insulate it.
 * Semantic UI sets html{font-size:14px} here; the main site uses the browser default 16px,
 * so the chrome rendered at 87.5%.
 *
 * FIRST ATTEMPT was zoom:1.142857 on the host. It restored the type but broke the layout:
 * zoom scales fixed widths too, so the component's `.in{width:1170px}` became ~1337 effective
 * pixels — wider than the panel, pushing the right-aligned brand outward — while its media
 * query still evaluated against the true viewport. Scaling and breakpoints disagreed.
 *
 * Matching the root is the actual fix: identical rem basis, so the chrome renders pixel for
 * pixel as it does on davidwindham.com, including the 1170px alignment.
 *
 * THE TRADE: Gogs' own UI is Semantic, which is calibrated to a 14px root and uses rem
 * widely, so it grows ~14% with this. On the light panel that reads as more legible rather
 * than broken, but it is a real change and it is why this is one line rather than none.
 */
html { font-size: 16px; }

/* ==========================================================================================
 * CODE VIEW — VS CODE "DARK MODERN" — 2026-08-17
 *
 * Supersedes the light-panel syntax block above. That block fitted the old Sunburst palette
 * (a TextMate theme: #e28964 keywords, #65b042 strings) to the #dadada panel by darkening
 * every token. This goes the other way: the code slab is dark again, but at the value David
 * actually reads code on rather than the near-black it used to be.
 *
 * The slab was #2b2f37 (his VS Code `editor.background`) until 2026-08-17, when it was moved
 * to #33373f to match the ground already showing behind .commit-message on the diff page —
 * one dark value across the whole repo view rather than two that are four points apart.
 * Contrast falls slightly with the lighter ground: comments 4.03:1 -> 3.58:1, keywords
 * 4.55:1 -> 4.05:1, strings 5.08:1 -> 4.52:1, body text 8.06:1. All still clear of 3:1.
 *
 * #2b2f37 was not a guess either — it was his VS Code `editor.background`, set in
 * ~/Library/Application Support/Code/User/settings.json as a colorCustomizations override on
 * Dark Modern, whose default is #1f1f1f. So the "not so dark" is already his own adjustment,
 * and it happens to be the same desaturated blue-grey family as the #484c57 page ground.
 *
 * The earlier block is LEFT IN PLACE and simply loses on source order, matching how the rest
 * of this file is layered — the light-panel version stays readable as a record, and reverting
 * to it means deleting this block rather than reconstructing it.
 *
 * NOTE ON !important: github.css (highlight.js 9.18) is the LAST stylesheet the page loads,
 * after this one. Without !important every .hljs-* rule here loses to it on source order.
 * ======================================================================================== */

/* ---- the slab ------------------------------------------------------------------------- */
.repository.file.list #file-content .code-view,
.repository.file.list #file-content .code-view table,
.repository.file.list #file-content .code-view .lines-code,
.repository .diff-file-box .file-body.file-code .lines-code,
.file-view.code-view,
.markdown:not(code) .highlight pre,
.markdown:not(code) pre,
/* pre.raw AND code.raw. The original theme sets both to #272c34 in one rule, but the
   light-panel block above re-listed only pre.raw — so the <code> kept the old near-black
   inside a <pre> that had been lightened, which is a mismatch you can only see on the raw
   view. Whenever a rule up there names one of a pair, check it did not drop the other. */
pre.raw,
code.raw {
  background: #33373f !important;
  color: #d4d4d4 !important;
  border-radius: 6px;
  /* A <pre> renders a tab at the browser default of 8 characters. film.php is tab-indented
     and deeply nested, which is why it read as enormous indentation rather than as code. */
  -moz-tab-size: 2;
  tab-size: 2;
}

/* ---- the gutter ------------------------------------------------------------------------
   A shade under the slab so it reads as a gutter without a rule between them. The numerals
   are #868e9c, not Dark Modern's own #6e7681: that measures 2.92:1 on this background, which
   is faint by design in an editor but is the same too-light-to-read problem already fixed
   once on Commits/Branches/Releases. #868e9c is 4.07:1 and still recedes from the code. */
/* Fill and rule go on the CELL only. The markup is a single <td class=\"lines-num\"> holding
   one stacked <span id=\"Ln\"> per line — so setting border-right/border-radius on the spans
   too draws a rule segment and a rounded corner on every individual line. */
.repository.file.list #file-content .code-view .lines-num,
.repository .diff-file-box .file-body.file-code .lines-num {
  background: #2c3038 !important;
  border-right: 1px solid #434855 !important;
  border-radius: 6px 0 0 6px;
}
.repository.file.list #file-content .code-view .lines-num,
.repository.file.list #file-content .code-view .lines-num pre,
.repository.file.list #file-content .code-view .lines-num span,
.repository .diff-file-box .file-body.file-code .lines-num {
  color: #868e9c !important;
}

/* ---- tokens: Dark Modern / Dark+ -------------------------------------------------------
   Contrast on #2b2f37, lowest first: comment 4.03:1, keyword 4.55:1, string 5.08:1,
   body text 9.06:1. Nothing here lands under 4:1. */
.hljs                                                 { background: transparent !important; color:#d4d4d4 !important; }
.hljs-comment, .hljs-quote                            { color:#6a9955 !important; font-style: italic; }
.hljs-keyword, .hljs-selector-tag, .hljs-literal      { color:#569cd6 !important; }
/* <?php and ?> markers, 100 of them on film.php — grey so they punctuate rather than
   compete with the code they wrap. */
.hljs-meta                                            { color:#9b9b9b !important; }
.hljs-string, .hljs-doctag                            { color:#ce9178 !important; }
.hljs-number, .hljs-subst                             { color:#b5cea8 !important; }
/* Function names. In v11 these arrive as class=\"hljs-title function_ invoke__\"; the
   attribute is a LIST, so .hljs-title still matches. */
.hljs-title, .hljs-section                            { color:#dcdcaa !important; }
/* hljs-name is the TAG name in xml/php-template, not a function — blue, per Dark Modern.
   It was folded in with hljs-title above, which was harmless only while the php grammar
   never emitted it. Now that php-template tokenises the HTML it is 73 tokens on film.php
   alone, and yellow would paint every <div> as if it were a function call. */
.hljs-name                                            { color:#569cd6 !important; }
.hljs-type, .hljs-class .hljs-title, .hljs-built_in,
.hljs-builtin-name                                    { color:#4ec9b0 !important; }
.hljs-variable, .hljs-template-variable, .hljs-attr,
.hljs-attribute, .hljs-params                         { color:#9cdcfe !important; }
.hljs-symbol, .hljs-bullet, .hljs-link                { color:#4fc1ff !important; }
.hljs-regexp                                          { color:#d16969 !important; }
.hljs-selector-class                                  { color:#d7ba7d !important; }
.hljs-selector-id                                     { color:#d7ba7d !important; }
.hljs-tag                                             { color:#9b9b9b !important; }  /* angle brackets, 4.83:1 */
.hljs-formula                                         { color:#d4d4d4 !important; }
.hljs-emphasis                                        { font-style: italic; }
.hljs-strong                                          { font-weight: 700; }

/* ---- diffs -----------------------------------------------------------------------------
   Row fills as tints OF the slab, not replacements for it, so the token colours above stay
   on a predictable ground inside changed lines. */
.repository .diff-file-box .code-diff tbody tr.del-code td,
.repository .diff-file-box .code-diff tbody tr .removed-code {
  background: #3f2b2e !important; color:#d4d4d4 !important;
}
.repository .diff-file-box .code-diff tbody tr.add-code td,
.repository .diff-file-box .code-diff tbody tr .added-code {
  background: #2c3a2c !important; color:#d4d4d4 !important;
}
.hljs-addition { background:#2c3a2c !important; color:#b5cea8 !important; }
.hljs-deletion { background:#3f2b2e !important; color:#f48771 !important; }

/* Borders inside the slab have to darken with it — the light-panel #c0c0c0 would draw a grid. */
.repository.file.list #file-content .code-view table td,
.repository.file.list #file-content .code-view table tr {
  border-color: #434855 !important;
}

/* ==========================================================================================
 * SECTION MARK — 2026-08-17
 *
 * "Code" beside the Gogs navbar logo rather than as a standalone <h1> over the panel. The
 * main site does the latter (/desk/ renders <h1 class="cm-sans fs-2">Desk</h1> above its
 * .entry-content), but reproducing that here added a row of height and pushed the content
 * area down. In the brand link it costs no vertical space.
 *
 * It sits INSIDE <a class="item brand">, so it has to out-specify
 * `.following.bar .top.menu a.item.brand`, which is itself !important.
 *
 * FONT PATH — the reason this is under css/fonts/ and not fonts/:
 *   Gogs does not serve the whole of custom/public. It mounts a fixed set of top-level
 *   prefixes, and a new directory at the top level is simply not routed — custom/public/
 *   fonts/cmunsx.woff returns 404 while the identical file under css/fonts/ returns 200,
 *   verified against :3000 directly with nginx out of the path. Nesting it under an already
 *   -served prefix is the whole fix. Anything else added later (icons, images) needs the
 *   same treatment.
 * ======================================================================================== */

@font-face {
  font-family: 'CM Sans';
  font-style: normal;
  font-weight: 400;
  /* Relative to this stylesheet at /code/css/themes/, so it survives a change of subpath.
     local("☺") is the main site's own idiom: a family name no installed font can match,
     which forces the download instead of silently resolving to something local. */
  src: local("☺"), url(../fonts/cmunsx.woff) format("woff");
}

.daw-code-mark {
  margin-left: .55rem;
  font-family: 'CM Sans', 'DAW Playfair', Georgia, serif;
  font-size: 1.35rem;
  font-weight: 400;
  line-height: 1;
  vertical-align: middle;
  /* #dadada is the content panel's own colour — 6.14:1 on the bar's #484c57, and it ties the
     mark to the thing it labels rather than introducing a third value. */
  color: #dadada !important;
}

.following.bar .top.menu a.item.brand:hover .daw-code-mark {
  color: rgba(196, 45, 45, .95) !important;   /* follow the bar's existing hover */
}

/* ==========================================================================================
 * COMMIT PAGE SURFACES — 2026-08-17
 *
 * The commit box is <div class=\"ui top attached info clearing segment\">, and the rule that
 * paints it is:
 *
 *     .ui .info.segment.top { background: #0b0b0b !important }        <- four classes
 *
 * The panel's own neutraliser is `.repository .ui.segment` — three classes. Both carry
 * !important, so SPECIFICITY decides and the near-black wins no matter how much later in the
 * file the panel rule sits. That is why this one survived the Semantic-surfaces sweep: that
 * sweep assumed source order was enough, which holds only while the rules it fights are of
 * equal or lower specificity. Selectors below are deliberately five classes.
 *
 * The SECOND box on the page, <div class=\"ui attached info segment\">, has no `top` class, so
 * it never matched the near-black rule and was already transparent — which is why only the
 * upper half of the commit header looked wrong.
 *
 * The earlier version of this block made .commit-message a deliberate #33373f slab to match
 * the code view. Reverted: commit text is prose, not code, and belongs on the panel with the
 * rest of the page furniture.
 * ======================================================================================== */

.repository .ui.info.segment.top,
.repository .ui.top.attached.info.segment,
.repository .ui.attached.info.segment {
  background: transparent !important;
  color: #33373f !important;
}

.repository.diff .commit-message,
.repository.diff .commit-message pre,
.repository.diff .commit-message h3 {
  background: transparent !important;
  color: #33373f !important;
  -moz-tab-size: 2;
  tab-size: 2;
}
.repository.diff .commit-message a { color: #67000a !important; }
.repository.diff .commit-message a:hover { color: #0f7a63 !important; }

/* ==========================================================================================
 * NESTED CELL FILLS — 2026-08-17
 *
 * The theme paints the <pre> INSIDE each code cell as well as the cell itself:
 *
 *     .code-view .lines-code pre  ->  #1c2025      (never re-listed by any later block)
 *     .code-view .lines-num  pre  ->  #1c2025      (later overridden to a LIGHT tint)
 *
 * So setting a colour on .lines-code / .lines-num alone changes nothing you can see — the
 * child covers the parent. That is why the code view still read as near-black after the slab
 * was set to #33373f, and why the gutter had a pale strip over a dark cell: the two nested
 * rules were caught by different blocks and ended up disagreeing.
 *
 * Fixed by making the nested elements transparent rather than by colouring them, so the cell
 * rules above are the single place the code view's colour is decided.
 * ======================================================================================== */

/* The selector list below MIRRORS the theme rule exactly, including the .hljs variants.
   That is deliberate. A near-miss does not work here: both rules are !important, so
   specificity decides, and `.lines-code .hljs` is six classes against five-classes-plus-an-
   element for `.lines-code code` — the theme rule wins on class count. highlight.js puts
   `hljs` on the <code> element, so that is the one that actually paints the code. Matching
   the list makes them tie, and source order settles it. */
.repository.file.list #file-content .code-view .lines-num pre,
.repository.file.list #file-content .code-view .lines-code pre,
.repository.file.list #file-content .code-view .lines-num ol,
.repository.file.list #file-content .code-view .lines-code ol,
.repository.file.list #file-content .code-view .lines-num .hljs,
.repository.file.list #file-content .code-view .lines-code .hljs,
.repository.file.list #file-content .code-view .lines-code code,
.repository .diff-file-box .file-body.file-code .lines-code pre,
.repository .diff-file-box .file-body.file-code .lines-num pre {
  background: transparent !important;
}

/* ==========================================================================================
 * CONTRIBUTIONS CARD — 2026-08-17
 *
 * A surface behind the whole component — heading included — in the page ground #484c57. On the
 * #dadada panel that reads as a deliberate inset rather than a tint, and it needs no border to
 * separate it, which is why there is none.
 *
 * THE RAMP HAD TO INVERT WITH IT. The panel block above runs the levels PALE -> DARK
 * (#c3cdc0 to #486b43) because they sat on a light ground. On #484c57 that ordering puts the
 * busiest days closest to the card colour and the quietest days furthest from it — the scale
 * reads backwards. These restore the muted #97b094 ramp built for the dark ground, by opacity
 * so the four steps stay one hue.
 *
 * Empty days are darker than the card, not lighter: a quiet day should recede into the surface
 * rather than register as a faint mark of its own.
 * ======================================================================================== */

.daw-activity {
  background: #484c57;
  border-radius: 6px;
  padding: 1rem 1.1rem;
}

/* Levels re-stated at the SAME specificity as the panel block (two classes + an element) and
   later in the file, so source order decides. Matching it is deliberate — going higher would
   work too, but then anything editing the panel block later would silently stop having an
   effect here with no clue why. */
.daw-activity-grid i.lvl0 { background: rgba(0,0,0,.16)          !important; }
.daw-activity-grid i.lvl1 { background: rgba(151,176,148,.30)    !important; }
.daw-activity-grid i.lvl2 { background: rgba(151,176,148,.55)    !important; }
.daw-activity-grid i.lvl3 { background: rgba(151,176,148,.80)    !important; }
.daw-activity-grid i.lvl4 { background: #97b094                  !important; }
.daw-activity-grid i.lvl5 { background: #bcd4b8                  !important; }

/* The heading was #6b7268 for the light panel — 1.6:1 here. #c2c7d0 is 5.06:1 on #484c57. */
.daw-activity .daw-activity-head { color: #c2c7d0 !important; }

/* ==========================================================================================
 * REPO LIST — NAME SIZE — 2026-08-17
 *
 * gogs.min.css sets `.ui.repository.list .item .ui.header { font-size: 1.5rem }`. Being in
 * rem it is measured against the ROOT, so it grew as a side effect of the
 * `html { font-size: 16px }` rule added earlier to make <daw-header> match the main site:
 * 1.5 × 14px = 21px before, 1.5 × 16px = 24px after. Nothing about the repo list changed —
 * the reference it was sized against did.
 *
 * 1.15rem = 18.4px, which sits below where it started rather than merely undoing the growth.
 * The `.metas` (14px) and `.time` (12px) beneath it are absolute and were never affected, so
 * bringing the name down also restores the size relationship between the three.
 * ======================================================================================== */

.ui.repository.list .item .ui.header {
  font-size: 1.15rem !important;
}

/* ==========================================================================================
 * DIFF ROW TINTS — 2026-08-17
 *
 * Added/removed rows were showing no colour at all, and the cause is specificity again — the
 * third time tonight, in a different disguise.
 *
 *     slab   .repository .diff-file-box .file-body.file-code .lines-code        5 classes
 *     tints  .repository .diff-file-box .code-diff tbody tr.add-code td         4 classes
 *
 * Both !important, so the slab repainted every cell #33373f and erased the tints regardless
 * of order. Class count is compared before element count, so adding `tbody tr td` to the
 * tint selector could never win — more elements do not beat one more class.
 *
 * These name .lines-code/.lines-num explicitly, giving six classes, which clears the slab.
 *
 * The rows carry the state on the <tr> (`add-code`, `del-code`, `same-code`, `tag-code`), so
 * the cells are tinted via the row rather than being classed themselves.
 *
 * Values are tints OF the slab, not replacements: #33373f -> #2f4030 shifts green and drops
 * blue, #452f33 lifts red. Subtle enough to read as a highlight behind code rather than as a
 * coloured band, which is what the old #6f3a3a / #b40000 pair did on the near-black theme.
 * ======================================================================================== */

.repository .diff-file-box .file-body.file-code tr.add-code td.lines-code,
.repository .diff-file-box .file-body.file-code tr.add-code td.lines-num {
  background: #2f4030 !important;
}
.repository .diff-file-box .file-body.file-code tr.del-code td.lines-code,
.repository .diff-file-box .file-body.file-code tr.del-code td.lines-num {
  background: #452f33 !important;
}

/* Intra-line (word-level) highlights sit ON the row tint, so they have to be a step stronger
   than it or they vanish into their own row. */
.repository .diff-file-box .file-body.file-code .added-code {
  background: #3d5a3d !important; color: #d4d4d4 !important;
}
.repository .diff-file-box .file-body.file-code .removed-code {
  background: #66393f !important; color: #d4d4d4 !important;
}

/* Hunk headers (@@ -15,6 +15,7 @@) — recede from both the code and the tinted rows. */
.repository .diff-file-box .file-body.file-code tr.tag-code td.lines-code,
.repository .diff-file-box .file-body.file-code tr.tag-code td.lines-num {
  background: #2a2d34 !important;
}
.repository .diff-file-box .file-body.file-code tr.tag-code td.lines-code code {
  color: #9b9b9b !important;
}

/* ==========================================================================================
 * BUTTONS AND MENUS INSIDE THE PANEL — 2026-08-17
 *
 * Logged-out pages never render these, which is why they survived every pass tonight: the
 * New File / Upload File pair, the Open/Closed filter on issues and pulls, and the dashboard's
 * tabable menu are all behind authentication.
 *
 * Specificity of what they have to beat, measured rather than assumed:
 *
 *     .ui.button                        (0,2,0)  #2F435C
 *     .ui.basic.button                  (0,3,0)  #272c34
 *     .ui.blue.button                   (0,3,0)  #33363D
 *     .ui.blue.buttons .button          (0,4,0)  #33363D
 *     .ui.basic.buttons .button         (0,4,0)  #272c34
 *     .ui.menu.three.item .item         (0,5,0)  #272c34
 *     .ui.menu .ui.dropdown .menu>.item (0,6,0)  #272c34
 *
 * Every selector below is scoped by a page-type class, which buys exactly one class of
 * specificity — enough for the buttons, and the menus are given a second where they need it.
 *
 * NOTE: these could not be checked in a browser from here, since reaching them needs a login.
 * They are verified by resolving the cascade instead, which is what caught the three earlier
 * misses tonight anyway.
 * ======================================================================================== */

/* Neutral buttons — the default and `basic` variants. */
.repository .ui.button, .dashboard .ui.button, .explore .ui.button,
.user.profile .ui.button, .organization .ui.button, .admin .ui.button,
.repository .ui.basic.button, .dashboard .ui.basic.button, .explore .ui.basic.button,
.user.profile .ui.basic.button, .organization .ui.basic.button, .admin .ui.basic.button,
.repository .ui.basic.buttons .button, .dashboard .ui.basic.buttons .button,
.explore .ui.basic.buttons .button, .admin .ui.basic.buttons .button {
  background: #e6e6e6 !important;
  border: 1px solid #c0c0c0 !important;
  box-shadow: none !important;
  color: #33373f !important;          /* 9.57:1 */
}
.repository .ui.button:hover, .dashboard .ui.button:hover, .explore .ui.button:hover,
.user.profile .ui.button:hover, .organization .ui.button:hover, .admin .ui.button:hover,
.repository .ui.basic.button:hover, .dashboard .ui.basic.button:hover,
.explore .ui.basic.button:hover, .admin .ui.basic.button:hover,
.repository .ui.basic.buttons .button:hover, .dashboard .ui.basic.buttons .button:hover {
  background: #dcdcdc !important;
  color: #67000a !important;          /* 10.64:1 */
}

/* Primary actions. Semantic paints these `blue`; New File / Upload File are
   `.ui.tiny.blue.buttons`. Filled in the site red rather than neutralised, because they are
   the primary action on the page and a flat grey would lose that. */
.repository .ui.blue.button, .repository .ui.blue.buttons .button,
.dashboard .ui.blue.button, .dashboard .ui.blue.buttons .button,
.admin .ui.blue.button, .admin .ui.blue.buttons .button,
#file-buttons.ui.blue.buttons .button {
  background: #67000a !important;
  border: 1px solid #67000a !important;
  color: #f2f2f2 !important;          /* 13.28:1 */
}
.repository .ui.blue.button:hover, .repository .ui.blue.buttons .button:hover,
.dashboard .ui.blue.buttons .button:hover, #file-buttons.ui.blue.buttons .button:hover {
  background: #4f0008 !important;
  border-color: #4f0008 !important;
  color: #ffffff !important;
}

/* The selected filter on issues / pulls is `.ui.red.active.basic.button` — it has to stay
   visibly distinct from the unselected one, so it takes the fill rather than the outline. */
.repository .ui.red.active.basic.button, .repository .ui.active.basic.button,
.repository .ui.red.button {
  background: #67000a !important;
  border: 1px solid #67000a !important;
  color: #f2f2f2 !important;
}

/* Menus: the dashboard's `.ui.three.item.tabable.menu` and the vertical menus beside it.
   Two page-type classes are NOT needed here — one is enough against (0,5,0), but the item
   rules go to (0,6,0) to clear `.ui.menu .ui.dropdown .menu > .item`. */
.dashboard .ui.menu, .dashboard .ui.tabable.menu, .dashboard .ui.vertical.menu,
.user.profile .ui.menu, .organization .ui.menu, .repository .ui.menu, .admin .ui.menu {
  background: transparent !important;
  border-color: #c0c0c0 !important;
  color: #33373f !important;
}
.dashboard .ui.menu.three.item .item, .dashboard .ui.menu.two.item .item,
.dashboard .ui.tabable.menu .item, .dashboard .ui.vertical.menu .item,
.organization .ui.menu.two.item .item, .repository .ui.menu .item {
  background: transparent !important;
  color: #33373f !important;
}
.dashboard .ui.menu.three.item .item.active, .dashboard .ui.tabable.menu .item.active,
.dashboard .ui.vertical.menu .active.item, .repository .ui.menu .item.active {
  background: #dadada !important;
  color: #67000a !important;
}

/* ==========================================================================================
 * SETTINGS / FORM INK — 2026-08-17
 *
 * The settings pages are behind a login, so none of the earlier passes saw them. Measured
 * against the #dadada panel, the dark theme's type colours land here:
 *
 *     h1..h5, .ui.header, .ui.input input, .ui.button:not(.label)   #e9c062   1.23:1
 *     .ui.checkbox label, .ui.card, .secondary .item                silver    1.30:1
 *     .ui .text.black                                               #d3d3d3   1.07:1
 *
 * #e9c062 is a sand yellow — it was the heading colour on the near-black ground and is close
 * to invisible on a light panel. Everything here is a leftover of that ground, not a choice.
 *
 * The competitors are weak (bare elements at (0,0,1), two- and three-class selectors), so a
 * page-type scope is enough to clear them without !important escalation in most cases. It is
 * applied anyway for consistency with the rest of this file.
 * ======================================================================================== */

/* Headings. The panel block already covers h1-h3 for three wrappers; h4/h5/h6 and .ui.header
   were never in it, which is most of a settings page's structure. */
.repository h1, .repository h2, .repository h3, .repository h4, .repository h5, .repository h6,
.repository .ui.header, .repository .ui.header .content,
.admin h1, .admin h2, .admin h3, .admin h4, .admin h5, .admin .ui.header,
.organization .ui.header, .user.profile .ui.header, .dashboard .ui.header {
  color: #2f333c !important;          /* 8.24:1 */
}

/* Form furniture: labels, checkbox text, plain body copy in the settings panes. */
.repository label, .repository .ui.form label, .repository .ui.checkbox label,
.repository .ui.checkbox + label, .repository .ui.card, .repository .text,
.repository .ui.list .item, .repository .secondary .item,
.admin label, .admin .ui.form label, .admin .ui.checkbox label, .admin .ui.list .item,
.organization label, .organization .ui.form label {
  color: #33373f !important;          /* 9.06:1 */
}

/* Help text under a field should recede but stay readable — #565c69 is 4.81:1, where the
   #5c6270 that looks right on screen measures 4.37:1 and fails. */
.repository .help, .repository .ui.form .help, .repository .note,
.admin .help, .organization .help {
  color: #565c69 !important;
}

/* Inputs and textareas. The dark theme fills these #555966 with light text; on the panel they
   have to invert or the field looks like a hole. */
.repository .ui.form input:not([type]), .repository .ui.form input[type=text],
.repository .ui.form input[type=email], .repository .ui.form input[type=password],
.repository .ui.form input[type=url], .repository .ui.form input[type=number],
.repository .ui.form textarea, .repository .ui.input input, .repository textarea,
.admin .ui.form input[type=text], .admin .ui.input input, .admin .ui.form textarea {
  background: #f0f0f0 !important;
  border: 1px solid #c0c0c0 !important;
  color: #33373f !important;
}

/* `.ui .text.black` is the theme's own "make this dark" helper, set to #d3d3d3 for the dark
   ground — the exact inverse of what the name promises on a light one. */
.repository .ui .text.black, .admin .ui .text.black, .dashboard .ui .text.black {
  color: #33373f !important;
}
.repository .ui .text.black:hover, .admin .ui .text.black:hover {
  color: #67000a !important;
}

/* Settings sidebar — <div class="ui tab active list">. */
.repository .ui.tab.active.list, .repository .ui.tab.active.list .item,
.repository .ui.tab.active.list a, .admin .ui.tab.active.list .item {
  background: transparent !important;
  color: #33373f !important;
}
.repository .ui.tab.active.list a:hover, .admin .ui.tab.active.list a:hover {
  color: #67000a !important;
}
.repository .ui.tab.active.list .item.active, .repository .ui.tab.active.list a.active {
  color: #67000a !important;
  font-weight: 600;
}

/* ==========================================================================================
 * ATTACHED HEADERS OUTSIDE .repository — 2026-08-17
 *
 * The dashboard's right column is
 *
 *     .six.wide.column > .ui.tab.active.list > .ui.top.attached.header
 *                                            > .ui.attached.table.segment
 *
 * The Semantic-surfaces sweep listed `.ui.attached.header` under `.repository` ONLY, while
 * `.ui.segment` and `.ui.table` were listed for every wrapper. So on the dashboard the panel
 * below the header went transparent and the header itself stayed #272c34 — which is exactly
 * how it looked: one dark bar sitting on top of a light list.
 *
 * The theme declares `.ui.attached.header` twice (#272c34 and #080705), both at three
 * classes, so a wrapper scope at four clears both.
 * ======================================================================================== */

.dashboard .ui.attached.header, .dashboard .ui.top.attached.header,
.dashboard .ui.attached.table, .dashboard .ui.attached.segment,
.organization .ui.attached.header, .organization .ui.top.attached.header,
.organization .ui.attached.table, .organization .ui.attached.segment,
.user.profile .ui.attached.header, .user.profile .ui.attached.table,
.explore .ui.attached.header, .explore .ui.attached.table,
.admin .ui.attached.header, .admin .ui.attached.table {
  background: transparent !important;
  border-color: #c0c0c0 !important;
  color: #2f333c !important;
}

/* The list rows beneath it, and the count chip in the header. */
.dashboard .repo-owner-name-list li, .dashboard .repo-owner-name-list a,
.dashboard .ui.tab.active.list .item, .organization .repo-owner-name-list a {
  background: transparent !important;
  color: #33373f !important;
}
.dashboard .repo-owner-name-list a:hover, .organization .repo-owner-name-list a:hover {
  color: #67000a !important;
}
.dashboard .ui.grey.label, .organization .ui.grey.label, .repository .ui.grey.label {
  background: #c6c6c6 !important;
  color: #33373f !important;
  border: none !important;
}
/* `.text.light.grey` is the star count at the right of each row — it has to recede from the
   repo name without dropping out of readability on the panel. */
.dashboard .text.light.grey, .dashboard .ui.right.text.light.grey,
.organization .text.light.grey {
  color: #565c69 !important;
}

/* ==========================================================================================
 * DASHBOARD REPO LIST — 2026-08-17
 *
 * The last dark surface, and the one that hid the longest:
 *
 *     .feeds .list ul            { background: #272c34 }     (0,2,1), NOT !important
 *     .feeds .list ul li.private { background: #272c34 }
 *
 * It only renders on the logged-in dashboard, and it matches through a coincidence of class
 * names: the page wrapper is <div class="dashboard feeds">, and Semantic's `.ui.tab.list`
 * carries a `list` class, so `.feeds .list ul` lands on the repository <ul> in the right-hand
 * column without ever naming it.
 *
 * Worth noting for the remaining sweep: this pair carries no !important, so it never appeared
 * in the "dark !important surfaces" hunts — it won purely on specificity against rules that
 * did. Searching for `!important` alone will keep missing this class of leftover.
 *
 * `li.private` used the same value as the list, so private repos were marked by a border
 * alone. Given a light ground they can carry the tint the original intended.
 * ======================================================================================== */

.dashboard.feeds .list ul,
.dashboard .ui.tab.list ul,
.dashboard .ui.tab.active.list ul,
.organization.feeds .list ul {
  background: transparent !important;
}

.dashboard.feeds .list ul li.private,
.dashboard .ui.tab.list ul li.private,
.dashboard .ui.tab.active.list ul li.private {
  background: rgba(72,76,87,.07) !important;
}

/* ==========================================================================================
 * MARKDOWN TABLES — 2026-08-17
 *
 * The cells were black. The theme sets
 *
 *     .markdown:not(code) table th, .markdown:not(code) table td { background: #080705 }
 *
 * as ONE rule, and the light-panel block re-listed only `table th` — so `td` kept the
 * near-black. Fourth time tonight for that exact shape: a rule styling a pair, an override
 * naming one half. (pre.raw/code.raw, .lines-code/.hljs, th/td.)
 *
 * gogs.min.css already provides #fff rows with #f8f8f8 zebra striping, but the theme's `td`
 * painted straight over them, so the striping has never been visible. Restated here a touch
 * off pure white so the table reads as a surface on the #dadada panel rather than a hole.
 *
 * Hover is the page ground at .08 — a wash of the same blue-grey the site is built on, rather
 * than the light fill that was showing. Applied to the ROW with the cells transparent, so a
 * hovered row tints as one band instead of striping through the cells.
 * ======================================================================================== */

.markdown:not(code) table tr              { background: #fcfcfc !important; }
.markdown:not(code) table tr:nth-child(2n){ background: #f5f5f5 !important; }

.markdown:not(code) table th {
  background: #ebebeb !important;
  color: #2f333c !important;
  border-color: #d6d6d6 !important;
}
.markdown:not(code) table td {
  background: transparent !important;   /* let the row colour through */
  color: #33373f !important;
  border-color: #d6d6d6 !important;
}

.markdown:not(code) table tr:hover,
.markdown:not(code) table tr:nth-child(2n):hover {
  background: rgba(72,76,87,.08) !important;
}
.markdown:not(code) table tr:hover td,
.markdown:not(code) table tr:hover th {
  background: transparent !important;
}

/* ==========================================================================================
 * DROPDOWN POPUPS — 2026-08-17
 *
 * Two menus that no earlier pass reached, both only visible when signed in.
 *
 * 1. The avatar menu (Your Profile ... Sign Out). A light rule for it already existed —
 *    `.ui.dropdown .menu { background:#e6e6e6 !important }` at THREE classes — but it loses to
 *
 *        .ui.menu .right.menu .dropdown:last-child .menu   -> #272c34 !important
 *
 *    which is six classes plus :last-child, so seven. Same lesson as the rest of tonight: an
 *    !important light rule is not a fix if a darker rule is more specific. The selector is
 *    RESTATED verbatim below so the two tie and source order decides.
 *
 * 2. The dashboard context switcher (Switch Dashboard Context), which is
 *    `.context.user.overflow.menu`. Its background resolved light already, but this file sets
 *    `.overflow.menu .items .item { color: silver }` — overriding Gogs' own rgba(0,0,0,.8) —
 *    so the entries were near-invisible on it. Restated at the same specificity, later.
 *
 * These sit OUTSIDE every panel wrapper (the top bar is .following.bar, a sibling of the page
 * content), which is why the page-type scoping used everywhere else does not reach them.
 * ======================================================================================== */

/* --- 1. top-bar dropdowns ---------------------------------------------------------------- */
.ui.menu .right.menu .dropdown:last-child .menu,
.ui.menu .right.dropdown.item .menu,
.ui.buttons > .ui.dropdown:last-child .menu,
.following.bar .ui.menu .dropdown .menu,
.following.bar .ui.dropdown .menu {
  background: #f2f2f2 !important;
  border: 1px solid #c0c0c0 !important;
  box-shadow: 0 2px 6px rgba(0,0,0,.18) !important;
}

.ui.menu .ui.dropdown .menu > .item,
.following.bar .ui.menu .dropdown .menu > .item,
.following.bar .ui.dropdown .menu > .header {
  background: transparent !important;
  color: #33373f !important;
}
.ui.menu .ui.dropdown .menu > .item:hover,
.following.bar .ui.menu .dropdown .menu > .item:hover {
  background: #e2e2e2 !important;
  color: #67000a !important;
}
/* The sign-out control is a div.submit-button, not an .item, so it misses the rules above. */
.following.bar .ui.dropdown .menu .submit-button,
.ui.menu .ui.dropdown .menu .submit-button {
  background: transparent !important;
  color: #33373f !important;
}
.following.bar .ui.dropdown .menu .submit-button:hover {
  background: #e2e2e2 !important;
  color: #67000a !important;
}

/* --- 2. dashboard context switcher -------------------------------------------------------- */
.context.user.overflow.menu,
.ui.floating.dropdown .context.user.overflow.menu {
  background: #f2f2f2 !important;
  border: 1px solid #c0c0c0 !important;
  box-shadow: 0 2px 6px rgba(0,0,0,.18) !important;
}
.context.user.overflow.menu .ui.header,
.context.user.overflow.menu .items .item,
.overflow.menu .items .item {
  background: transparent !important;
  color: #33373f !important;
}
.overflow.menu .items .item:hover,
.context.user.overflow.menu .items .item:hover {
  background: #e2e2e2 !important;
  color: #67000a !important;
}
