ul[role='list'], ol[role='list']{list-style: none; }
html:focus-within{scroll-behavior: smooth; }
a:not([class]){text-decoration-skip-ink: auto; }
input, button, textarea, select{font: inherit; }
body, html{
    margin: 0;
    padding: 0;
    height: 100%; 
    scroll-behavior: smooth; 
}
body {background-color:#1B262C;color:#BBE1FA;text-align:center;font-family: 'Source Code Pro', monospace;}
.container {width:85%;margin:auto;}
a{text-decoration:none;color:#3282B8;font-weight:bold;}
a:hover{color:#0F4C75;}
h1,h2,h3,h4,h5,h6{text-align:center;margin-bottom:0.5em}
.image-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  grid-gap: 10px;
  justify-content: center;
  align-items: center;
  max-width: 1200px;
  margin: 40px auto;
  position: relative;
}

.image-grid img {
  width: 100%;
  height: auto;
  border-radius: 10px;
  box-shadow: 0 0 10px rgba(0, 0, 0, 0.2);
  transition: transform 0.3s ease-out, box-shadow 0.3s ease-out;
  transform: scale(1);
  position: relative;
  z-index: 1;
}

.image-grid img:hover {
  transform: scale(1.3);
  z-index: 2;
  box-shadow: 0 0 20px rgba(0, 0, 0, 0.4);
}

@media (max-width: 1024px) {
  .image-grid {
    grid-template-columns: repeat(3, 1fr);
  }
}

@media (max-width: 768px) {
  .image-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 480px) {
  .image-grid {
    grid-template-columns: repeat(1, 1fr);
  }
}

/* Used in single image view */
.imageview {
  margin: auto;
  text-align: center;
}

.imageview img {
  /*float:left;*/
  max-width: 100%;
  height: auto;
  border: 1px solid #3282B8;
  border-radius: 10px;
  box-shadow: 0 0 10px rgba(0, 0, 0, 0.2);
}

.imageframe {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
}

#modcontrols {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  font-size:2rem;
}

#modcontrols .modcontrol {
  width:150px;
  margin:10px;
}

.modcontrol {
  transition: transform 0.3s ease-in-out;
  opacity: 0.9;
}

.modcontrol:hover {
  transform: scale(2);
  /*animation: jump 1.5s infinite;*/
  z-index: 2;
  opacity: 1;
}

@keyframes bounce {0%,20%,50%,80%,100% {transform: scale(1) translateZ(0);}40%,60% {transform: scale(2) translateZ(0);}}
@keyframes jump {0%,20%,50%,80%,100% {transform: scale(1) translateZ(0);}30%,70% {transform: scale(1.2) translateY(-5px) translateZ(0);}}

.icon-bin { color: black; }
.icon-evil { color:#98002e; }
.icon-happy { color:#84c8b1; }
.icon-star-full { color:#d4af37; }
/*#modcontrols .modcontrol:hover {background-color:#3282B8;}*/


/*.extraframe {}*/

.header {
  display: flex;
  justify-content: center;
  align-items: center;
  background-color: #1B262C;
  padding: 10px 20px;
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  z-index: 1000;
}

.nav-bar {
  margin: 0 20px;
}

.nav-bar ul {
  display: flex;
  list-style: none;
  margin: 0;
  padding: 0;
}

.nav-bar li {
  margin-left: 20px;
}

.nav-bar a {
  color: #BBE1FA;
  text-decoration: none;
}

.nav-bar a:hover {
  color: #0F4C75;
}

.footer {
  clear:both;
  bottom:0px;
  width:100%;
  text-align: center;
  color:white;
  padding:1rem;
  font-size:1.2em;
  border-top:1px solid #1B262C;
  margin-top: 60px;
}
.footer a:hover {
  transform: scale(1.3);
  z-index: 2;
  box-shadow: 0 0 20px rgba(0, 0, 0, 0.4);
}
.emoji {
  font-size: 2em;
  border-radius: 50%;
}
.paging {
  display: block;
  border: 1px solid #3282B8;
  border-radius: 10px;
  box-shadow: 0 0 10px rgba(0, 0, 0, 0.2);
  text-align: center;
  clear:both;
}
.paging a {
  float: left;
  padding: 8px 16px;
  text-decoration: none;
  transition: background-color .3s;
}

.paging a.active {
  background-color:#3282B8;
  color: white;
  border-radius:5px;
}
.paging a:hover:not(.active) {
  background-color: #ddd;
  border-radius: 5px;
}
select {
  border: 1px solid #3282B8;
  border-radius: 5px;
  background-color: #3282B8;
  padding: 5px;
  appearance:none;
  -webkit-appearance: none;
  -moz-appearance: none;
}
select:focus {border-color: #3282B8;}
optgroup {
  font-size: 16px;
  font-weight: bold;
  color: #3282B8;
}
option {
  padding: 10px;
  color: #ddd;
  background-color: #0F4C75;
}
option:hover {
  background-color: #0F4C75;
  color: #3282B8;
}

.box {
  font-family: 'Source Code Pro', monospace;
  margin: 2rem auto;
  max-width: 80ch;
  border: 8px solid #3282B8;
  color: #fff;
  padding: 2ch;
  position: relative;
  border-image:
    url("data:image/svg+xml,%3Csvg width='24' height='24' viewBox='0 0 24 24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M16 0H8v4H4v4H0v8h4v4h4v4h8v-4h4v-4h4V8h-4V4h-4V0zm0 4v4h4v8h-4v4H8v-4H4V8h4V4h8z' fill='%233282B8'/%3E%3C/svg%3E") 8 stretch;
}

.box:before {
  content: "";
  position: absolute;
  right: -28px;
  top: calc(50% - 14px);
  width: 24px;
  height: 28px;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 28' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M4 0H0v8h12v4h4v4h-4v4H0v8h4v-4h8v-4h4v-4h8v-4h-8V8h-4V4H4V0z' fill='%233282B8'/%3E%3Cpath fill='%231B262C' d='M0 8h4v12H0z'/%3E%3C/svg%3E");
}

.loader {
  transform: rotateZ(45deg);
  perspective: 1000px;
  border-radius: 50%;
  width: 48px;
  height: 48px;
  color: #fff;
}

.loader:before,
.loader:after {
  content: '';
  display: block;
  position: absolute;
  top: 0;
  left: 0;
  width: inherit;
  height: inherit;
  border-radius: 50%;
  transform: rotateX(70deg);
  animation: 1s spin linear infinite;
}

.loader:after {
  color: #3282B8;
  transform: rotateY(70deg);
  animation-delay: .4s;
}

@keyframes rotate {
  0% {transform: translate(-50%, -50%) rotateZ(0deg);}
  100% {transform: translate(-50%, -50%) rotateZ(360deg);}
}

@keyframes rotateccw {
  0% {transform: translate(-50%, -50%) rotate(0deg);}
  100% {transform: translate(-50%, -50%) rotate(-360deg);}
}

@keyframes spin {
  0%,100% {box-shadow: .2em 0px 0 0px currentcolor;}
  12% {box-shadow: .2em .2em 0 0 currentcolor;}
  25% {box-shadow: 0 .2em 0 0px currentcolor;}
  37% {box-shadow: -.2em .2em 0 0 currentcolor;}
  50% {box-shadow: -.2em 0 0 0 currentcolor;}
  62% {box-shadow: -.2em -.2em 0 0 currentcolor;}
  75% {box-shadow: 0px -.2em 0 0 currentcolor;}
  87% {box-shadow: .2em -.2em 0 0 currentcolor;}
}

/* Icon Font */
@font-face {
  font-family: 'artyicons';
  src: url('/fonts/icons.ttf') format('truetype'), url('/fonts/icons.woff') format('woff');
  font-weight: normal;
  font-style: normal;
  font-display: block;
}

[class^="icon-"],
[class*=" icon-"] {
  /* use !important to prevent issues with browser extensions that change fonts */
  font-family: 'artyicons' !important;
  font-style: normal;
  font-weight: normal;
  font-variant: normal;
  text-transform: none;
  line-height: 1;

  /* Better Font Rendering =========== */
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

.icon-home:before {
  content: "\e902";
}
.icon-paste:before {
  content: "\e92d";
}
.icon-wondering:before {
  content: "\e9fb";
}
.icon-wondering2:before {
  content: "\e9fc";
}
.icon-price-tag:before {
  content: "\e935";
}

.icon-coin-dollar:before {
  content: "\e93b";
}

.icon-credit-card:before {
  content: "\e93f";
}

.icon-clock:before {
  content: "\e94e";
}

.icon-floppy-disk:before {
  content: "\e962";
}

.icon-bubble2:before {
  content: "\e96e";
}

.icon-user:before {
  content: "\e971";
}

.icon-spinner:before {
  content: "\e97a";
}

.icon-lock:before {
  content: "\e98f";
}

.icon-unlocked:before {
  content: "\e990";
}

.icon-cog:before {
  content: "\e994";
}

.icon-trophy:before {
  content: "\e99e";
}

.icon-fire:before {
  content: "\e9a9";
}

.icon-bin:before {
  content: "\e9ac";
}

.icon-eye:before {
  content: "\e9ce";
}

.icon-eye-blocked:before {
  content: "\e9d1";
}

.icon-star-empty:before {
  content: "\e9d7";
}

.icon-star-full:before {
  content: "\e9d9";
}

.icon-happy:before {
  content: "\e9df";
}

.icon-happy2:before {
  content: "\e9e0";
}

.icon-evil:before {
  content: "\e9ef";
}

.icon-evil2:before {
  content: "\e9f0";
}

.icon-warning:before {
  content: "\ea07";
}

.icon-question:before {
  content: "\ea09";
}

.icon-plus:before {
  content: "\ea0a";
}

.icon-minus:before {
  content: "\ea0b";
}

.icon-info:before {
  content: "\ea0c";
}

.icon-cross:before {
  content: "\ea0f";
}

.icon-checkmark:before {
  content: "\ea10";
}

.icon-checkmark2:before {
  content: "\ea11";
}

.icon-enter:before {
  content: "\ea13";
}

.icon-exit:before {
  content: "\ea14";
}

.icon-github:before {
  content: "\eab0";
}

/* Dark Mode Styles */
body.dark-mode {
    background-color: #121212;
    color: #E0E0E0;
}

.container.dark-mode {
    background-color: #1E1E1E;
}

a.dark-mode {
    color: #BB86FC;
}

.footer.dark-mode {
    background-color: #1E1E1E;
}

/* Light Mode Styles */
body.light-mode {
    background-color: #FFFFFF;
    color: #000000;
}

.container.light-mode {
    background-color: #F5F5F5;
}

a.light-mode {
    color: #6200EE;
}

.footer.light-mode {
    background-color: #F5F5F5;
}

/* Toggle Button Styles */
#theme-toggle {
    background: none;
    border: none;
    cursor: pointer;
    color: #BBE1FA;
    font-size: 1.5rem;
    margin-left: 20px;
}

.icon-sun:before {
    content: "\e902";
    font-family: 'artyicons';
}

/* Day and Night Icons */
.icon {
  width: 40px; /* Adjust size as needed */
  height: 40px; /* Adjust size as needed */
  border-radius: 50%;
  position: relative;
  overflow: hidden;
}

.day-icon {
  background: #87CEEB; /* Light blue for day */
}

.day-icon::after {
  content: '';
  position: absolute;
  top: 20%;
  left: 20%;
  width: 60%;
  height: 60%;
  background: #FFD700; /* Gold for sun */
  border-radius: 50%;
  box-shadow: 0 0 20px #FFD700;
}

.night-icon {
  background: #191970; /* Dark blue for night */
}

.night-icon::after {
  content: '';
  position: absolute;
  top: 20%;
  left: 20%;
  width: 60%;
  height: 60%;
  background: #F4F4F4; /* Light color for moon */
  border-radius: 50%;
  box-shadow: 0 0 20px #F4F4F4;
}

.night-icon::before {
  content: '';
  position: absolute;
  top: 15%;
  left: 30%;
  width: 60%;
  height: 60%;
  background: #191970; /* Dark blue for night */
  border-radius: 50%;
}

.message-attachments {
    margin-top: 5px;
}

.table-responsive {
    margin-bottom: 2rem;
}

.pagination {
    margin-top: 2rem;
}

.message-attachments, .message-embeds {
    border-top: 1px solid #eee;
    padding-top: 0.5rem;
}

.attachment-item, .embed-item {
    transition: all 0.2s ease;
}

.attachment-thumbnail, .embed-thumbnail, .embed-image {
    box-shadow: 0 1px 3px rgba(0,0,0,0.1);
    transition: all 0.2s ease;
}

.attachment-thumbnail:hover, .embed-thumbnail:hover, .embed-image:hover {
    transform: scale(1.02);
    box-shadow: 0 3px 6px rgba(0,0,0,0.15);
}

.attachment-link {
    text-decoration: none;
    color: inherit;
}

.attachment-link:hover {
    color: #0d6efd;
}

.embed-item {
    background-color: #f8f9fa;
    border-color: #dee2e6 !important;
}

.embed-title {
    color: #1a1a1a;
}

.embed-description {
    color: #666;
    font-size: 0.9em;
}

.live-container {
    padding: 20px;
    background: #1a1a1a;
    min-height: 100vh;
}

.guild-filter-container {
    position: fixed;
    top: 20px;
    right: 20px;
    z-index: 1000;
    width: 200px;
    background: rgba(0, 0, 0, 0.8);
    padding: 10px;
    border-radius: 8px;
}

.media-wall {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
    gap: 20px;
    padding-top: 60px;
}

.media-item {
    background: #2a2a2a;
    border-radius: 8px;
    overflow: hidden;
    transition: transform 0.2s;
}

.media-item:hover {
    transform: scale(1.02);
}

.media-content {
    width: 100%;
    aspect-ratio: 16/9;
    overflow: hidden;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #000;
}

.media-content img,
.media-content video {
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.media-info {
    padding: 10px;
    color: #fff;
    font-size: 0.9em;
    background: rgba(0, 0, 0, 0.5);
}

.media-links a {
    color: #fff;
    opacity: 0.7;
    transition: opacity 0.2s;
}

.media-links a:hover {
    opacity: 1;
}

.guild-name {
    font-weight: bold;
    max-width: 70%;
}

.timestamp {
    color: #aaa;
}

/* Modal styles */
.modal-content.bg-dark {
    background-color: rgba(0, 0, 0, 0.9) !important;
}

.modal-body img,
.modal-body video {
    max-height: 90vh;
    margin: 0 auto;
}

/* Dark mode form controls */
.dark-input {
    background-color: #2a2a2a;
    border-color: #3282B8;
    color: #BBE1FA;
}

.dark-input:focus {
    background-color: #2a2a2a;
    border-color: #3282B8;
    color: #BBE1FA;
    box-shadow: 0 0 0 0.25rem rgba(50, 130, 184, 0.25);
}

.dark-select {
    background-color: #2a2a2a;
    border-color: #3282B8;
    color: #BBE1FA;
}

/* Table styles */
.table-dark {
    background-color: #1a1a1a;
    color: #BBE1FA;
}

.table-dark td, 
.table-dark th {
    border-color: #3282B8;
}

.table-dark.table-hover tbody tr:hover {
    background-color: #2a2a2a;
}

/* Message content styling */
.message-content {
    max-width: 500px;
    word-break: break-word;
}

/* Pagination dark mode */
.pagination .page-link.bg-dark {
    background-color: #2a2a2a !important;
    border-color: #3282B8;
    color: #BBE1FA;
}

.pagination .page-item.active .page-link.bg-dark {
    background-color: #3282B8 !important;
    border-color: #3282B8;
}

/* Auto-refresh toggle styling */
.form-check-input {
    background-color: #2a2a2a;
    border-color: #3282B8;
}

.form-check-input:checked {
    background-color: #3282B8;
    border-color: #3282B8;
}

.form-check-label {
    color: #BBE1FA;
}