:root {
  --bg: #2a2f35;
  --surface: #343a42;
  --ink: #d4d8de;
  --muted: #8a909a;
  --line: #2e343b;
  --accent: #c4a248;
  --accent-hover: #dcb85a;
  --title: #e8e8e8;
  --title-hover: #ffffff;
  --link: #e37333;
  --link-hover: #f28545;
  --radius: 6px;
}

* { box-sizing: border-box; }
html, body { margin: 0; padding: 0; }
body {
  background: var(--bg);
  color: var(--ink);
  font: 15px/1.55 -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Ubuntu, "Helvetica Neue", Arial, sans-serif;
  -webkit-font-smoothing: antialiased;
}
a { color: var(--link); text-decoration: none; }
a:hover { color: var(--link-hover); text-decoration: underline; }
h1, h2, h3 { line-height: 1.2; margin: 1.4em 0 .5em; font-weight: 600; letter-spacing: -.01em; }
h1 { font-size: 1.7rem; } h2 { font-size: 1.35rem; } h3 { font-size: 1.1rem; }
p { margin: .6em 0; }

header.site {
  background: var(--surface);
  border-bottom: 1px solid var(--line);
  position: sticky; top: 0; z-index: 10;
}
header.site .bar {
  max-width: 960px; margin: 0 auto; padding: 0 1.25rem;
  display: flex; align-items: center; gap: 1.5rem; min-height: 56px;
}
.top-left-corner {
  position: absolute;
  padding: 0px;
}
.brand {
  display: inline-flex; align-items: center; gap: .55rem;
  font-weight: 800; font-size: 1.05rem; letter-spacing: .08em; text-transform: uppercase;
  color: var(--title);
  text-shadow: 0 1px 0 rgba(0,0,0,.35);
}
.brand:hover { text-decoration: none; color: var(--title-hover); }
.brand img, .brand svg { height: 1.4em; width: auto; display: block; flex-shrink: 0; }

nav.main { margin-left: auto; }
nav.main > ul { display: flex; gap: .25rem; list-style: none; margin: 0; padding: 0; }
nav.main li { position: relative; }
nav.main a {
  display: block; padding: .55rem .85rem; border-radius: var(--radius);
  color: var(--ink); font-weight: 500;
}
nav.main a:hover, nav.main li:hover > a, nav.main li:focus-within > a {
  background: var(--bg); color: #87ceeb; text-decoration: none;
}
nav.main li > ul {
  position: absolute; top: 100%; left: 0; min-width: 180px;
  background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius);
  padding: .35rem; margin: .25rem 0 0; list-style: none;
  box-shadow: 0 12px 28px rgba(0,0,0,.4);
  opacity: 0; visibility: hidden; transform: translateY(-4px);
  transition: opacity .12s ease, transform .12s ease, visibility .12s;
}
nav.main li:hover > ul, nav.main li:focus-within > ul {
  opacity: 1; visibility: visible; transform: translateY(0);
}
nav.main li > ul a { padding: .5rem .7rem; white-space: nowrap; }

.layout { max-width: 1280px; margin: 1.5rem auto 3rem; padding: 0 1.25rem; display: flex; align-items: flex-start; gap: 1.5rem; }
main.site { flex: 1; min-width: 0; }
.panel { width: 360px; flex-shrink: 0; background-color: #2a2f45; margin-top: 36px; }
.panel .card { margin-bottom: 1.25rem; }
@media (max-width: 800px) { .layout { flex-direction: column; } .panel { width: auto; align-self: stretch; } }
.card {
  background: var(--surface); border: 1px solid var(--line);
  border-radius: var(--radius); padding: 1.25rem 1.5rem; margin-bottom: 1.25rem;
}
.widget { border: 1px solid black; text-align: center; }
#widget-discord { color: orange; }
.yellow { color: yellow; }
.online { background-color: #006000; }
.offline { background-color: #600000; }
.voted { background-color: #006000; }

.guild-logo { display: block; max-width: 64px; max-height: 64px; margin: .5em 0; }
.guild-logo.small { display: block; height: 1.5em; width: auto; margin: 0; }
.guild-name { display: inline-flex; align-items: center; gap: .4em; }

main table {
  width: 100%; border-collapse: collapse; margin: .75em 0;
  background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius); overflow: hidden;
}
main th, td { padding: .55rem .8rem; text-align: left; border-bottom: 1px solid var(--line); vertical-align: top; }
main td { color: #b0bcc8; }
main th { background: var(--bg); font-weight: 600; font-size: .82rem; text-transform: uppercase; letter-spacing: .04em; color: var(--muted); }
main tr:last-child td { border-bottom: 0; }
tbody tr:hover { background: var(--bg); }

form { margin: .5em 0; }
label { display: block; font-size: .85rem; color: var(--muted); margin-bottom: .25rem; }
.panel input[type=text], input[type=password], input[type=email], select, textarea {
  font: inherit; color: var(--ink); background: var(--bg);
  border: 1px solid var(--line); border-radius: var(--radius);
  padding: .5rem .7rem; min-width: 14rem;
}
input:focus, select:focus, textarea:focus { outline: 2px solid var(--accent); outline-offset: 1px; }
.panel input[type=submit], button {
  font: inherit; font-weight: 600; cursor: pointer;
  background: var(--accent); color: #fff; border: 0;
  padding: .55rem 1rem; border-radius: var(--radius);
}
input[type=submit]:hover, button:hover { background: var(--accent-hover); }
input[type=checkbox], input[type=radio] { accent-color: var(--accent); margin: 0 .3rem; }
input[type="text"] {
    width: 100%;
    box-sizing: border-box;
}

footer.site {
  border-top: 1px solid var(--line); color: var(--muted);
  font-size: .82rem; padding: 1.25rem; text-align: center;
}
footer.site .bar { max-width: 960px; margin: 0 auto; }
pre { background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius); padding: .75rem; overflow: auto; font-size: .82rem; }
