/* 
 * Modern Dark Theme for CGIT 
 * Every original class/ID preserved.
 */

:root {
    --bg-main: #0d1117;
    --bg-secondary: #161b22;
    --bg-tertiary: #21262d;
    --border-color: #30363d;
    --text-main: #c9d1d9;
    --text-muted: #8b949e;
    --accent: #58a6ff;
    --accent-hover: #1f6feb;
    --diff-add: #2ea043;
    --diff-add-bg: rgba(46, 160, 67, 0.15);
    --diff-del: #f85149;
    --diff-del-bg: rgba(248, 81, 73, 0.15);
    --diff-changed: #d29922;
    --diff-changed-bg: rgba(210, 153, 34, 0.15);
    --diff-hunk-bg: rgba(56, 139, 253, 0.15);
}

/* 전체 배경 적용 */
html, body {
    background-color: var(--bg-main);
    color: var(--text-main);
    margin: 0;
    padding: 0;
}

div#cgit {
    padding: 20px;
    margin: 0 auto;
    max-width: 1200px;
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif;
    font-size: 14px;
    line-height: 1.5;
    color: var(--text-main);
    background: var(--bg-main);
}

div#cgit a {
    color: var(--accent);
    text-decoration: none;
}

div#cgit a:hover {
    text-decoration: underline;
}

div#cgit table {
    border-collapse: collapse;
}

div#cgit table#header {
    width: 100%;
    margin-bottom: 1.5em;
}

div#cgit table#header td.logo {
    width: 96px;
    vertical-align: top;
}

div#cgit table#header td.main {
    font-size: 1.8em;
    font-weight: 600;
    padding-left: 10px;
    white-space: nowrap;
}

div#cgit table#header td.main a {
    color: var(--text-main);
}

div#cgit table#header td.form {
    text-align: right;
    vertical-align: bottom;
    padding-right: 1em;
    padding-bottom: 5px;
    white-space: nowrap;
}

div#cgit table#header td.form form,
div#cgit table#header td.form input,
div#cgit table#header td.form select {
    font-size: 13px;
    background: var(--bg-secondary);
    color: var(--text-main);
    border: 1px solid var(--border-color);
    border-radius: 4px;
    padding: 2px 5px;
}

div#cgit table#header td.sub {
    color: var(--text-muted);
    border-top: solid 1px var(--border-color);
    padding-left: 10px;
    padding-top: 5px;
}

div#cgit table.tabs {
    border-bottom: solid 1px var(--border-color);
    margin-top: 1.5em;
    margin-bottom: 0px;
    width: 100%;
}

div#cgit table.tabs td {
    padding: 0px 5px;
    vertical-align: bottom;
}

div#cgit table.tabs td a {
    padding: 8px 12px;
    color: var(--text-muted);
    font-size: 14px;
    display: inline-block;
}

div#cgit table.tabs td a.active {
    color: var(--text-main);
    border-bottom: 2px solid #f78166;
    font-weight: 600;
}

div#cgit table.tabs a[href^="http://"]:after, div#cgit table.tabs a[href^="https://"]:after {
    content: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAQAAAAnOwc2AAAAAmJLR0QA/4ePzL8AAAAJcEhZcwAACxMAAAsTAQCanBgAAAAHdElNRQfgAhcJDQY+gm2TAAAAHWlUWHRDb21tZW50AAAAAABDcmVhdGVkIHdpdGggR0lNUGQuZQcAAABbSURBVAhbY2BABs4MU4CwhYHBh2Erww4wrGFQZHjI8B8IgUIscJWyDHcggltQhI4zGDCcRwhChPggHIggP1QoAVmQkSETrGoHsiAEsACtBYN0oDAMbgU6EBcAAL2eHUt4XUU4AAAAAElFTkSuQmCC);
    opacity: 0.3;
    filter: invert(1);
    margin: 0 0 0 5px;
}

div#cgit table.tabs td.form {
    text-align: right;
}

div#cgit table.tabs td.form form {
    padding-bottom: 5px;
    font-size: 90%;
    white-space: nowrap;
}

div#cgit table.tabs td.form input,
div#cgit table.tabs td.form select {
    font-size: 13px;
    background: var(--bg-secondary);
    color: var(--text-main);
    border: 1px solid var(--border-color);
    border-radius: 4px;
}

div#cgit div.path {
    margin: 15px 0;
    padding: 10px 15px;
    color: var(--text-main);
    background-color: var(--bg-secondary);
    border: 1px solid var(--border-color);
    border-radius: 6px;
}

div#cgit div.content {
    margin: 0px;
    padding: 20px 0;
    border-bottom: none;
}

div#cgit table.list {
    width: 100%;
    border: 1px solid var(--border-color);
    border-collapse: separate;
    border-spacing: 0;
    border-radius: 6px;
    overflow: hidden;
}

div#cgit table.list tr {
    background: var(--bg-main);
}

div#cgit table.list tr.logheader {
    background: var(--bg-secondary);
}

div#cgit table.list tr:nth-child(even) {
    background: var(--bg-secondary);
}

div#cgit table.list tr:nth-child(odd) {
    background: var(--bg-main);
}

div#cgit table.list tr:hover {
    background: var(--bg-tertiary);
}

div#cgit table.list tr.nohover {
    background: var(--bg-main) !important;
}

div#cgit table.list tr.nohover:hover {
    background: var(--bg-main) !important;
}

div#cgit table.list tr.nohover-highlight:hover:nth-child(even) {
    background: var(--bg-secondary) !important;
}

div#cgit table.list tr.nohover-highlight:hover:nth-child(odd) {
    background: var(--bg-main) !important;
}

div#cgit table.list th {
    font-weight: 600;
    color: var(--text-muted);
    padding: 10px 12px;
    vertical-align: baseline;
    border-bottom: 1px solid var(--border-color);
    background: var(--bg-secondary);
}

div#cgit table.list td {
    border: none;
    padding: 8px 12px;
    border-bottom: 1px solid var(--border-color);
}

div#cgit table.list td.commitgraph {
    font-family: ui-monospace, SFMono-Regular, SF Mono, Menlo, Consolas, Liberation Mono, monospace;
    white-space: pre;
}

/* 그래프 색상 다크모드 최적화 */
div#cgit table.list td.commitgraph .column1 { color: #ff7b72; }
div#cgit table.list td.commitgraph .column2 { color: #7ee787; }
div#cgit table.list td.commitgraph .column3 { color: #d29922; }
div#cgit table.list td.commitgraph .column4 { color: #a5d6ff; }
div#cgit table.list td.commitgraph .column5 { color: #d3a6ff; }
div#cgit table.list td.commitgraph .column6 { color: #70d7ff; }

div#cgit table.list td.logsubject {
    font-weight: 600;
}

div#cgit table.list td.logmsg {
    font-family: ui-monospace, monospace;
    white-space: pre;
    padding: 5px 12px;
    color: var(--text-muted);
}

div#cgit table.list td a {
    color: var(--text-main);
}

div#cgit table.list td a.ls-dir {
    font-weight: 600;
    color: var(--accent);
}

div#cgit table.list td a:hover {
    color: var(--accent);
}

div#cgit img {
    border: none;
    filter: brightness(0.8);
}

div#cgit input#switch-btn {
    margin: 2px 0px 0px 0px;
}

div#cgit td#sidebar input.txt {
    width: 100%;
    margin: 2px 0px 0px 0px;
    background: var(--bg-secondary);
    color: var(--text-main);
    border: 1px solid var(--border-color);
}

div#cgit table#grid {
    margin: 0px;
}

div#cgit td#content {
    vertical-align: top;
    padding: 1em 0;
    border: none;
}

div#cgit div#summary {
    vertical-align: top;
    margin-bottom: 1em;
}

div#cgit table#downloads {
    float: right;
    border-collapse: separate;
    border: solid 1px var(--border-color);
    border-radius: 6px;
    margin-left: 1em;
    margin-bottom: 1em;
    background: var(--bg-secondary);
    overflow: hidden;
}

div#cgit table#downloads th {
    background-color: var(--bg-tertiary);
    padding: 8px;
    color: var(--text-main);
}

div#cgit div#blob {
    border: solid 1px var(--border-color);
    border-radius: 6px;
    overflow: hidden;
}

div#cgit div.error {
    color: var(--diff-del);
    font-weight: bold;
    margin: 1em 0;
    padding: 10px;
    background: var(--diff-del-bg);
    border-radius: 6px;
}

div#cgit a.ls-blob, div#cgit a.ls-dir, div#cgit .ls-mod {
    font-family: ui-monospace, monospace;
}

div#cgit td.ls-size {
    text-align: right;
    font-family: ui-monospace, monospace;
    width: 10em;
}

div#cgit td.ls-mode {
    font-family: ui-monospace, monospace;
    width: 10em;
    color: var(--text-muted);
}

div#cgit table.blob {
    margin-top: 0.5em;
    border-top: solid 1px var(--border-color);
    width: 100%;
}

div#cgit table.blob td.hashes,
div#cgit table.blob td.lines {
    margin: 0; padding: 0 0 0 0.5em;
    vertical-align: top;
    color: var(--text-main);
}

div#cgit table.blob td.linenumbers {
    margin: 0; padding: 0 10px;
    vertical-align: top;
    text-align: right;
    border-right: 1px solid var(--border-color);
    background: var(--bg-secondary);
}

div#cgit table.blob pre {
    padding: 0; margin: 0;
    font-family: ui-monospace, monospace;
}

div#cgit table.blob td.linenumbers a,
div#cgit table.ssdiff td.lineno a {
    color: var(--text-muted);
    text-align: right;
    text-decoration: none;
}

div#cgit table.blob td.linenumbers a:hover,
div#cgit table.ssdiff td.lineno a:hover {
    color: var(--text-main);
}

div#cgit table.blame td.hashes,
div#cgit table.blame td.lines,
div#cgit table.blame td.linenumbers {
    padding: 0;
}

div#cgit table.blame td.hashes div.alt,
div#cgit table.blame td.lines div.alt {
    padding: 0 0.5em 0 0.5em;
}

div#cgit table.blame td.linenumbers div.alt {
    padding: 0 0.5em 0 0;
}

div#cgit table.blame div.alt:nth-child(even) {
    background: var(--bg-secondary);
}

div#cgit table.blame div.alt:nth-child(odd) {
    background: var(--bg-main);
}

div#cgit table.blame td.lines > div {
    position: relative;
}

div#cgit table.blame td.lines > div > pre {
    padding: 0 0 0 0.5em;
    position: absolute;
    top: 0;
}

div#cgit table.blame .oid {
    font-size: 100%;
}

div#cgit table.bin-blob {
    margin-top: 0.5em;
    border: solid 1px var(--border-color);
    border-radius: 6px;
}

div#cgit table.bin-blob th {
    font-family: ui-monospace, monospace;
    white-space: pre;
    border: solid 1px var(--border-color);
    padding: 0.5em 1em;
    background: var(--bg-secondary);
}

div#cgit table.bin-blob td {
    font-family: ui-monospace, monospace;
    white-space: pre;
    border-left: solid 1px var(--border-color);
    padding: 0em 1em;
}

div#cgit table.nowrap td {
    white-space: nowrap;
}

div#cgit table.commit-info {
    border-collapse: collapse;
    margin-top: 1.5em;
    width: 100%;
}

div#cgit div.cgit-panel {
    float: right;
    margin-top: 1.5em;
}

div#cgit div.cgit-panel table {
    border-collapse: separate;
    border: solid 1px var(--border-color);
    border-radius: 6px;
    background-color: var(--bg-secondary);
    overflow: hidden;
}

div#cgit div.cgit-panel th {
    text-align: center;
    background: var(--bg-tertiary);
    padding: 5px;
}

div#cgit div.cgit-panel td {
    padding: 0.5em;
}

div#cgit div.cgit-panel td.label {
    padding-right: 0.5em;
    color: var(--text-muted);
}

div#cgit div.cgit-panel td.ctrl {
    padding-left: 0.5em;
}

div#cgit table.commit-info th {
    text-align: left;
    font-weight: 600;
    padding: 5px 15px 5px 0;
    vertical-align: top;
    color: var(--text-muted);
}

div#cgit table.commit-info td {
    font-weight: normal;
    padding: 5px 15px 5px 0;
}

div#cgit div.commit-subject {
    font-weight: bold;
    font-size: 1.4em;
    margin: 1.5em 0em 0.5em 0em;
    color: var(--accent);
}

div#cgit div.commit-msg {
    white-space: pre;
    font-family: ui-monospace, monospace;
    background: var(--bg-secondary);
    padding: 15px;
    border-radius: 6px;
    border: 1px solid var(--border-color);
    margin: 10px 0;
}

div#cgit div.notes-header {
    font-weight: bold;
    padding-top: 1.5em;
    color: #d29922;
}

div#cgit div.notes {
    white-space: pre;
    font-family: ui-monospace, monospace;
    border: solid 1px #d29922;
    background-color: rgba(210, 153, 34, 0.1);
    padding: 1em;
    border-radius: 6px;
    margin: 10px 0;
}

div#cgit div.notes-footer {
    clear: left;
}

div#cgit div.diffstat-header {
    font-weight: bold;
    padding-top: 1.5em;
}

div#cgit table.diffstat {
    border-collapse: separate;
    border-spacing: 0;
    border: solid 1px var(--border-color);
    background-color: var(--bg-secondary);
    border-radius: 6px;
    width: 100%;
}

div#cgit table.diffstat th {
    font-weight: 600;
    text-align: left;
    padding: 10px;
    background: var(--bg-tertiary);
    border-bottom: 1px solid var(--border-color);
}

div#cgit table.diffstat td {
    padding: 8px 10px;
    border-bottom: 1px solid var(--border-color);
}

div#cgit table.diffstat td.mode {
    white-space: nowrap;
    font-family: ui-monospace, monospace;
}

div#cgit table.diffstat td span.modechange {
    padding-left: 1em;
    color: var(--diff-del);
}

div#cgit table.diffstat td.add a { color: var(--diff-add); }
div#cgit table.diffstat td.del a { color: var(--diff-del); }
div#cgit table.diffstat td.upd a { color: var(--accent); }

div#cgit table.diffstat td.graph {
    width: 300px;
    vertical-align: middle;
}

div#cgit table.diffstat td.graph table {
    border: none;
    width: 100%;
}

div#cgit table.diffstat td.graph td {
    padding: 0px;
    border: 0px;
    height: 8px;
    border-radius: 2px;
}

div#cgit table.diffstat td.graph td.add { background-color: var(--diff-add); }
div#cgit table.diffstat td.graph td.rem { background-color: var(--diff-del); }

div#cgit div.diffstat-summary {
    color: var(--text-muted);
    padding: 1em 0;
}

div#cgit table.diff {
    width: 100%;
}

div#cgit table.diff td {
    font-family: ui-monospace, monospace;
    white-space: pre;
}

div#cgit table.diff td div.head {
    font-weight: 600;
    margin-top: 1.5em;
    color: var(--text-main);
    border-bottom: 1px solid var(--border-color);
    padding-bottom: 5px;
}

div#cgit table.diff td div.hunk {
    color: var(--accent);
    background: var(--diff-hunk-bg);
    padding: 2px 5px;
    margin: 2px 0;
}

div#cgit table.diff td div.add {
    color: var(--diff-add);
    background: var(--diff-add-bg);
}

div#cgit table.diff td div.del {
    color: var(--diff-del);
    background: var(--diff-del-bg);
}

div#cgit .oid {
    font-family: ui-monospace, monospace;
    font-size: 13px;
    color: var(--text-muted);
}

div#cgit .left { text-align: left; }
div#cgit .right { text-align: right; }

div#cgit table.list td.reposection {
    font-style: italic;
    color: var(--text-muted);
    background: var(--bg-tertiary);
    font-weight: 600;
}

div#cgit a.button {
    font-size: 12px;
    padding: 4px 10px;
    background: var(--bg-tertiary);
    border: 1px solid var(--border-color);
    border-radius: 4px;
    color: var(--text-main);
}

div#cgit a.primary { font-weight: 600; }
div#cgit a.secondary { color: var(--text-muted); }

div#cgit td.toplevel-repo { font-weight: 600; }
div#cgit table.list td.sublevel-repo { padding-left: 2em; }

div#cgit ul.pager {
    list-style-type: none;
    text-align: center;
    margin: 2em 0;
    padding: 0;
}

div#cgit ul.pager li {
    display: inline-block;
    margin: 0 5px;
}

div#cgit ul.pager a {
    padding: 5px 10px;
    border: 1px solid var(--border-color);
    border-radius: 4px;
    color: var(--text-muted);
}

div#cgit ul.pager .current {
    font-weight: bold;
    background: var(--accent);
    color: white;
    border-color: var(--accent);
}

/* Age indicators */
div#cgit span.age-mins { color: #3fb950; font-weight: bold; }
div#cgit span.age-hours { color: #3fb950; }
div#cgit span.age-days { color: #d29922; }
div#cgit span.age-weeks { color: var(--text-muted); }
div#cgit span.age-months { color: var(--text-muted); opacity: 0.7; }
div#cgit span.age-years { color: var(--text-muted); opacity: 0.5; }

div#cgit span.insertions { color: var(--diff-add); }
div#cgit span.deletions { color: var(--diff-del); }

div#cgit div.footer {
    margin-top: 3em;
    padding: 2em;
    text-align: center;
    font-size: 12px;
    color: var(--text-muted);
    border-top: 1px solid var(--border-color);
}

div#cgit div.footer a { color: var(--text-muted); }

/* Decoration Badges */
div#cgit a.branch-deco, 
div#cgit a.tag-deco, 
div#cgit a.tag-annotated-deco, 
div#cgit a.remote-deco, 
div#cgit a.deco {
    margin: 0px 0.3em;
    padding: 2px 8px;
    border-radius: 10px;
    font-size: 11px;
    font-weight: 600;
}

div#cgit a.branch-deco { color: #7ee787; background: rgba(63, 185, 80, 0.15); border: 1px solid rgba(63, 185, 80, 0.4); }
div#cgit a.tag-deco { color: #d29922; background: rgba(210, 153, 34, 0.15); border: 1px solid rgba(210, 153, 34, 0.4); }
div#cgit a.tag-annotated-deco { color: #f0883e; background: rgba(240, 136, 62, 0.15); border: 1px solid rgba(240, 136, 62, 0.4); }
div#cgit a.remote-deco { color: #a5d6ff; background: rgba(88, 166, 255, 0.15); border: 1px solid rgba(88, 166, 255, 0.4); }
div#cgit a.deco { color: #ff7b72; background: rgba(248, 81, 73, 0.15); border: 1px solid rgba(248, 81, 73, 0.4); }

div#cgit table.stats {
    border: solid 1px var(--border-color);
    border-radius: 6px;
    overflow: hidden;
}

div#cgit table.stats th {
    background-color: var(--bg-secondary);
    border: solid 1px var(--border-color);
    color: var(--text-main);
}

div#cgit table.stats td {
    border: solid 1px var(--border-color);
    padding: 8px;
}

div#cgit table.stats td.sum { color: var(--diff-del); }

/* Graphs */
div#cgit table.vgraph { border: solid 1px var(--border-color); background: var(--bg-secondary); }
div#cgit table.vgraph th { background-color: var(--bg-tertiary); border: solid 1px var(--bg-main); }
div#cgit table.vgraph div.bar { background-color: var(--accent); }

div#cgit table.hgraph { border: solid 1px var(--border-color); width: 100%; background: var(--bg-secondary); }
div#cgit table.hgraph th { background-color: var(--bg-tertiary); border: solid 1px var(--border-color); }
div#cgit table.hgraph div.bar { background-color: var(--accent); }

/* SSDIFF (Side-by-side) */
div#cgit table.ssdiff td {
    font-size: 12px;
    border-left: solid 1px var(--border-color);
    border-right: solid 1px var(--border-color);
    line-height: 1.4;
}

div#cgit table.ssdiff td.add { color: var(--text-main); background: var(--diff-add-bg); }
div#cgit table.ssdiff td.add_dark { background: rgba(46, 160, 67, 0.3); }
div#cgit table.ssdiff span.add { background: transparent; font-weight: bold; color: #7ee787; }

div#cgit table.ssdiff td.del { color: var(--text-main); background: var(--diff-del-bg); }
div#cgit table.ssdiff td.del_dark { background: rgba(248, 81, 73, 0.3); }
div#cgit table.ssdiff span.del { background: transparent; font-weight: bold; color: #ff7b72; }

div#cgit table.ssdiff td.changed { background: var(--diff-changed-bg); }
div#cgit table.ssdiff td.changed_dark { background: rgba(210, 153, 34, 0.3); }

div#cgit table.ssdiff td.lineno {
    background: var(--bg-secondary);
    color: var(--text-muted);
}

div#cgit table.ssdiff td.hunk {
    background: var(--diff-hunk-bg);
    color: var(--accent);
    border-top: solid 1px var(--border-color);
    border-bottom: solid 1px var(--border-color);
}

div#cgit table.ssdiff td.head {
    border-top: solid 1px var(--border-color);
    border-bottom: solid 1px var(--border-color);
    background: var(--bg-secondary);
}

div#cgit table.ssdiff td.foot {
    border-top: solid 1px var(--border-color);
}
