/* afkmacro.com/idlemafia/source/: the code reader (made by Source\tools\SiteSource.py), on top of /site.css */
body.src .wrap { max-width: 1440px; }
body.src main.wrap { padding-bottom: 80px; }
.mono { font-family: "JetBrains Mono", Consolas, "Cascadia Mono", monospace; }

.crumbs { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 8px; margin: 0 0 14px; font-weight: 800; font-size: 15px; color: var(--text2); }
.crumbs i { font-style: normal; color: var(--text3); }
.crumbs b { color: var(--gold-hi); }
.chip { display: inline-block; vertical-align: 3px; margin-left: 10px; padding: 3px 9px 4px; border: 2px solid #000; border-radius: 8px;
  font: 800 12px/1 var(--body); letter-spacing: .3px; color: #10230a; background: linear-gradient(180deg, #b6e59a, #7ebe5a); white-space: nowrap; }

/* the list page */
.srchead { text-align: center; padding: 14px 0 70px; }
.srchead .crumbs { justify-content: center; }
.srchead h1 { margin: 6px 0 0; font: 400 clamp(56px, 9vw, 96px)/1 var(--game); color: var(--gold-hi); letter-spacing: 1px; transform: rotate(-2deg); }
.srchead > p { max-width: 38em; margin: 22px auto 0; color: var(--text2); text-wrap: balance; }
.srchead .ctas { margin-top: 34px; }
.srchead .small { font-size: 14px; color: var(--text3); margin-top: 26px; }
.filelist { max-width: 980px; margin: 0 auto; padding: 46px 26px 18px; }
.filelist .tree-top { padding: 0 0 12px; }
.filelist ul { list-style: none; margin: 0; padding: 0; }
.filelist li { display: grid; grid-template-columns: minmax(0, 300px) minmax(0, 1fr); gap: 4px 22px; align-items: center; padding: 9px 6px; border-top: 2px solid #232326; }
.filelist li:first-child { border-top: 0; }
.filelist li a { display: flex; align-items: center; gap: 9px; min-width: 0; }
.filelist li a b { font: 600 15px/1.3 "JetBrains Mono", Consolas, monospace; color: var(--gold-hi); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.filelist li span { font-size: 15px; color: var(--text2); }
.filelist li.hide { display: none; }

/* a file page: files on the left, the code on the right */
.srcgrid { display: grid; grid-template-columns: 270px minmax(0, 1fr); gap: 26px; align-items: start; padding-top: 6px; }
.tree { position: sticky; top: 14px; max-height: calc(100vh - 28px); overflow: auto; padding: 10px 8px 12px; border-radius: 16px; scrollbar-width: thin; scrollbar-color: #3a3a3e transparent; }
.tree-top { padding: 4px 4px 10px; }
.tree-top input { width: 100%; padding: 9px 12px; border: 2px solid #000; border-radius: 10px; background: #0c0c0d; color: var(--text);
  font: 700 15px var(--body); box-shadow: inset 0 0 0 2px var(--edge); -webkit-user-select: text; user-select: text; }
.tree-top input::placeholder { color: var(--text3); }
.tree-top input:focus { outline: 2px solid var(--gold); outline-offset: 1px; }
.tree ul { list-style: none; margin: 0; padding: 0; }
.tree li { padding-left: calc(var(--d) * 16px); }
.tree li.hide { display: none; }
.tree li.dir { display: flex; align-items: center; gap: 7px; padding-top: 8px; padding-bottom: 3px; margin-left: 8px; font-weight: 800; font-size: 14px; color: var(--text2); }
.tree a { display: flex; align-items: center; gap: 7px; padding: 5px 8px; border-radius: 8px; font: 600 13.5px/1.3 "JetBrains Mono", Consolas, monospace; color: var(--text); }
.tree a span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.tree a:hover { background: #26262a; text-decoration: none; }
.tree a.on { background: linear-gradient(180deg, #3a3119, #2a2412); color: var(--gold-hi); box-shadow: inset 0 0 0 2px #5a4a1e; }
.ic { width: 16px; height: 16px; flex: none; }

.filebar { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 14px 20px; padding: 16px 20px; margin-bottom: 18px; border-radius: 16px; }
.fileinfo h1 { margin: 0; font: 600 21px/1.25 "JetBrains Mono", Consolas, monospace; color: var(--gold-hi); word-break: break-all; }
.fileinfo p { margin: 3px 0 0; font-size: 15px; color: var(--text2); }
.filebtns { display: flex; flex-wrap: wrap; gap: 12px; }
.filebtns .btn svg { width: 17px; height: 17px; }

.codepanel { overflow: hidden; border-radius: 16px; }
.code { overflow-x: auto; background: #0c0c0d; scrollbar-color: #3a3a3e #0c0c0d; }
.code pre { display: inline-block; min-width: 100%; margin: 0; padding: 12px 0; counter-reset: ln;
  font: 400 13.5px/1.6 "JetBrains Mono", Consolas, "Cascadia Mono", monospace; color: #d9d4c4; tab-size: 4; }
.l { display: flex; counter-increment: ln; scroll-margin-top: 40vh; }
.l > a { position: sticky; left: 0; flex: none; width: calc(var(--w) + 3.4ch); padding-right: 1.6ch; text-align: right; color: #55524b; background: #0c0c0d; }
.l > a::before { content: counter(ln); }
.l > a:hover { color: var(--gold); text-decoration: none; }
.l > code { flex: 1; padding-right: 24px; white-space: pre; font: inherit; -webkit-user-select: text; user-select: text; }
.l:target, .l:target > a { background: #2a2412; }
.l:target > a { color: var(--gold-hi); box-shadow: inset -3px 0 0 var(--gold); }
.nocode { padding: 60px 24px; text-align: center; color: var(--text2); }

/* colours of the code, from the macro's own palette */
.code .k { color: #e6b450; }           /* keywords */
.code .t { color: #f2d98a; }           /* types */
.code .f { color: #e8e2d0; font-weight: 600; } /* functions */
.code .s { color: #9fcf7a; }           /* strings */
.code .n { color: #e59a6a; }           /* numbers */
.code .c { color: #7a766c; font-style: italic; }
.code .a { color: #c9a35a; }           /* attributes */
.code .v { color: #d4c9a8; }

@media (max-width: 960px) {
  .srcgrid { grid-template-columns: minmax(0, 1fr); }
  .tree { display: none; }
}
@media (max-width: 600px) {
  .filelist { padding: 44px 14px 12px; }
  .filelist li { grid-template-columns: minmax(0, 1fr); }
  .filebar { padding: 14px; }
  .filebtns, .filebtns .btn { width: 100%; }
  .code pre { font-size: 12.5px; }
  .srchead .ctas .btn { width: 100%; }
}
