/* ========== ROOT VARIABLES ========== */
:root {
  --text-color: #51607c;
  --primary-color: #0052e2;
  /*--primary-color: #000;*/
  --secondary-color: #00E1FF;
  --light-gray: #edf2f7;
  --light-gray2: #dadee5;
  /*--light-gray: #eee;*/
  /*--primary-bg: #001B7F;*/
  --dark: #333;
  --text: #222;
  --button-radius: 20px;
  --box-radius: 12px;
  --shadow: 0 4px 38px rgba(0, 0, 0, 0.098);
  --max-width: 1200px;
  --gradient: linear-gradient(164deg, #00e1ff, #0056c7);
  --icon: 'Material Symbols Rounded';

}

*,
*::before,
*::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

/*html, body {
  overflow: hidden;
  height: 100vh;
}*/

html {
  scroll-behavior: smooth;
}

body {
  font-family: "SN Pro", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif;
  line-height: 1.6;
  color: #111;
  background: #fff;
}

h1 {font-size: 30px;}
h2 {font-size: 20px;}
h4 {font-size: 18px;}
h5 {font-size: 18px;}
p {font-size: 16px; color: #555; margin-bottom: 40px; & a {color: #000;}}

a {
  color: inherit;
  text-decoration: none;
}
hr {background: none; border: none; border-top: 1px solid #eee;}
ul {
  list-style: none;
}

/* ===========================
   FORM & BUTTON RESET
=========================== */

.button,
.input,
.textarea,
.select {
  font: inherit;
  color: inherit;
  background: transparent;
  border: none;
  outline: none;
  appearance: none;
  -webkit-appearance: none;
  border-radius: 0;

  border: 1px solid #ddd;
  font-size: 14px;
  height: 40px;
  line-height: 38px;
  padding: 0 16px;
  border-radius: 14px;
  outline: none;
}

.input:focus {border-color: #888;}
.input:disabled {cursor: not-allowed; pointer-events: none; color: #888;}

.button {color: #fff;cursor: pointer; display: inline-block; background-color: var(--primary-color); border-color: var(--primary-color);}
.button:hover {background-color: #333;}
.button:active {background-color: #000; transform: scale(0.90);}
.button2 {color: #333; background-color: #fff; border-color: #aaa;}
.button2:hover {color: #333; background-color: #ddd; border-color: #ddd;}
.button2:active {color: #333; background-color: #ccc; border-color: #ddd;}

.picker {width: 40px; height: 40px; display: inline-block; border: none; padding: 0px; border-radius: 15px; cursor: pointer; -webkit-appearance: none; appearance: none; border: 1px solid rgba(0,0,0,0.070);}
.picker::-webkit-color-swatch-wrapper {padding: 0;}
.picker::-webkit-color-swatch {border: none; border-radius: 14px;}

.textarea {
  resize: vertical;
  height: inherit;
  min-height: 100px;
}

.checkbox {
  display: inline-flex;
  align-items: center;
  cursor: pointer;
  font-size: 14px;
  user-select: none;
}

/* Hide default checkbox */
.checkbox input {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}

/* Make span a proper container */
.checkbox span {
  position: relative;
  padding-left: 28px; /* space for the box */
}

/* Checkbox box */
.checkbox span::before {
  content: "";
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);

  width: 18px;
  height: 18px;
  border: 2px solid #bbb;
  border-radius: 6px;
  background: white;
  transition: all 0.2s ease;
}

/* Checked state */
.checkbox input:checked + span::before {
  background-color: var(--primary-color);
  border-color: var(--primary-color);
}

/* Checkmark */
.checkbox input:checked + span::after {
  font-family: var(--icon);
  content: "\e5ca";
  position: absolute;

  left: 9px;           /* center of 18px box */
  top: 50%;
  transform: translate(-50%, -50%);

  font-size: 12px;
  color: white;
  pointer-events: none;
}

/* Hover */
.checkbox:hover span::before {
  border-color: #888;
}

/* Focus */
.checkbox input:focus-visible + span::before {
  outline: 2px solid var(--primary-color);
  outline-offset: 2px;
}

.input::placeholder,
.textarea::placeholder {
  color: inherit;
  opacity: 0.6;
}
.input-range {
  -webkit-appearance: none;
  width: 100%;
  height: 10px;
  border-radius: 5px;
  background: #aaa;
  outline: none;
  transition: background 0.3s;
  cursor: pointer;
}

.input-range::-webkit-slider-thumb {
  -webkit-appearance: none;
  appearance: none;
  width: 26px;
  height: 26px;
  border-radius: 50%;
  background: #fff;
  border: 1px solid #aaa;
  cursor: pointer;
  transition: transform 0.2s ease, background 0.3s ease;

}

.input-range::-webkit-slider-thumb:hover {transform: scale(1.15); border: 1px solid var(--primary-color);}
.input-range:disabled {opacity: 0.4; cursor: not-allowed;}
.input-range-pair {
  display: grid;
  grid-template-columns: 1fr auto;
  grid-gap: 8px;
  & .input-range {margin-top: 15px;}
  & .value-display {font-size: 12px; display: inline-block; width: 40px; height: 40px; line-height: 40px; text-align: center;  background-color: #eee;  border-radius: 12px; }
}

.full {width: 100%;}
.centered {max-width: 1200px; padding-left: 20px; padding-right: 20px;}
.centered-s {max-width: 800px;}
.space-top-s {padding-top: 12px;}
.space-bottom-s {padding-bottom: 12px;}
.space-top-m {padding-top: 20px;}
.space-bottom-m {padding-bottom: 20px;}
.space-top-l {padding-top: 30px;}
.space-bottom-l {padding-bottom: 30px;}
.space-top-xl {padding-top: 58px;}
.space-bottom-xl {padding-bottom: 58px;}

.button .gicon {
  font-size: 20px;
  line-height: 19px;
  display: inline-block;
  vertical-align:middle;
  overflow: hidden;
}

/* Remove number input arrows (Chrome/Safari) */
input[type="number"]::-webkit-inner-spin-button,
input[type="number"]::-webkit-outer-spin-button {
  -webkit-appearance: none;
  margin: 0;
}

/* Firefox number input */
input[type="number"] {
  -moz-appearance: textfield;
}

/* Remove autofill yellow bg */
input:-webkit-autofill {
  -webkit-box-shadow: 0 0 0px 1000px transparent inset;
  transition: background-color 5000s ease-in-out 0s;
}

/* Normalize focus (you style later) 
:focus-visible {
  outline: 1px solid #4f46e5;
  outline-offset: 2px;
}
*/

.align-center {text-align: center;}
.align-left {text-align: left;}
.align-right {text-align: right;}

.header {
  display: grid;
  grid-template-columns: auto 1fr auto;

  grid-gap: 20px;
  width: 100%;
  height: 58px;
  background-color: #fff;
  border-bottom: 1px solid #eee;
  padding: 8px 20px;

  /*position: fixed;*/
  position: sticky;
  top: 0;
  left: 0;
  right: 0;
  z-index: 1000;

  margin-top: env(safe-area-inset-top);
  
}
.logo {
  margin-top: 7px;
  display: inline-grid;
  grid-template-columns: auto auto;
  grid-gap: 8px;
  height: 30px;
  & img {display: inline-block; width: 78px; height: auto; transition: transform 0.6s ease; margin-top: 2px;}
  /*&:hover img { transform: rotate(360deg);}*/
  & .logo-label {font-weight: 400; display: none; font-size: 19px; line-height: 29px; text-transform: lowercase;}
}

.icon-button {
  color: #000;
  display: inline-block; width: 40px; height: 40px; border-radius: 14px; padding: 0!important; text-align: center; line-height: 50px; vertical-align:middle; background-color: transparent; border-color: #eee; border: none; cursor: pointer; overflow: visible;
  &:hover {background-color: #eee;}
  &:active {background-color: #ccc;}
}
.icon-button.is-favorite {color: #d11a62;}
.icon-button.favorite-bounce .gicon {animation: favoriteBounce .35s ease;}
.favorites-link.favorites-pulse {animation: favoritesPulse .8s ease;}
.icon-button .gicon {font-size: 20px;}
.border {border: 1px solid #eee;}
.button-big {font-weight: 600; font-size: 14px; padding: 0 20px;}

.dropdown {
  position: relative;
  display: inline-block;
}

.dropdown-menu {
  position: absolute;
  top: calc(100% + 10px);
  right: 0;
  min-width: 220px;
  padding: 8px;
  border: 1px solid #eee;
  border-radius: 14px;
  background: #fff;
  box-shadow: var(--shadow);
  display: none;
  z-index: 1001;
}

.dropdown-menu.is-open {
  display: block;
  animation: dropdownPop .16s ease;
}

.dropdown-menu h4 {background-color: #eee; color: #000; padding: 5px 10px; margin-bottom: 8px; border-radius: 10px;}

.dropdown-menu a,
.dropdown-user {
  display: block;
  padding: 6px 12px;
  border-radius: 10px;
  font-size: 14px;
}
.dropdown-menu a:hover {background: #eee;}
.dropdown-menu a .gicon {
  font-size: 20px;
  line-height: 19px;
  margin-right: 6px;
  display: inline-block;
  vertical-align:middle;
}

@keyframes favoriteBounce {
  0% {transform: scale(1);}
  35% {transform: scale(1.32);}
  60% {transform: scale(0.92);}
  100% {transform: scale(1);}
}

@keyframes favoritesPulse {
  0% {transform: scale(1); box-shadow: 0 0 0 rgba(209, 26, 98, 0);}
  35% {transform: scale(1.1); box-shadow: 0 0 0 10px rgba(209, 26, 98, 0.14);}
  100% {transform: scale(1); box-shadow: 0 0 0 rgba(209, 26, 98, 0);}
}

@keyframes dropdownPop {
  from {opacity: 0; transform: translateY(-6px);}
  to {opacity: 1; transform: translateY(0);}
}

.centered {
  max-width: 1000px;
  padding-left: 20px;
  padding-right: 20px;
  margin: 0 auto;
}

.aside {
  display: flex;
  padding: 0 13px;
  top: 58px;
  height: calc(100vh - 58px);
  position: fixed;
  left: 0;
  z-index: 29;
  background-color: var(--light-gray);
  border-right: 1px solid var(--light-gray2);
  align-items: center;
}
.nav {
  display: grid; grid-template-columns: 1fr; grid-gap: 20px;
  & li {}
  & li a {display: inline-block; color: #555; width: 40px; height: 40px; line-height: 49px; text-align: center; background-color: #fff; border-radius: 12px; border: 1px solid rgba(0,0,0,0.1)}
  & li a .label {
    display: none;
  }
  & li a:hover {color: #000;}
  & li a:active {color: #000; transform: scale(0.9);}
  & li a.is-active {color: var(--primary-color); transform: scale(1.1);}
}

.dark-light-mode-toggler {
  display: inline-block;
  line-height: 40px;
  border: none;
  &:hover {background-color: #eee;}
  &:active {background-color: #ddd;}
  &:before {
  font-size: 16px;
  color: #000;
  font-family: var(--icon);
  content: "\ef44";
  text-color: text-color;
  }
}

.dark-mode .dark-light-mode-toggler:before {
  content: "\e81a";
}

.section {
  width: calc(100% - 65px);
  margin-left: 65px;
  /*padding-left: 65px;
  padding-right: 65px;*/
}

.hero {

  display: flex;
  align-items: center;
  text-align: left;
  min-height: 200px;
  padding-left: 30px;
  padding-right: 30px;

  & div {width: 100%; display: block;}
  & h1 {font-size: 40px; font-weight: 600;}
  & p {margin: 0;}
}
.hero-page {
  padding: 0;
}

.palettes {
  /*padding: 24px;*/
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  grid-gap: 24px;
  & li {display: block; margin-bottom: -18px;}
  & .palette-info {
    position: relative;
    height: 40px;
    & h2 {font-size: 14px;}
    & button.icon-button {position: absolute; left: 0;}
    & a.icon-button {position: absolute; right: 0;}
  }
  & li svg {display: block; width: 100%; height: auto; border-radius: 10px; margin-bottom: 5px; transition: all 0.2s;}
  & li svg rect:hover {opacity: 0.8;}
  & li svg rect:active {opacity: 1;}
}

.footer {
  width: 100%;
  padding: 30px 20px;
  border-top: 1px solid rgba(0,0,0,0.1);
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  grid-gap: 20px;
  & p {margin: 0; font-size: 14px;}
  & .icon-button {background-color: #eee; border: none;}
  & .footer-copyright {text-align: left;}
  & .footer-links {text-align: right;}
}



/* Tooltip */
.has-tooltip{position:relative}

/* base tooltip */
.ui-tooltip{
    position:absolute;
    background:#333;
    color:#fff;
    padding: 5px 10px;
    height: 30px;
    line-height: 20px;
    font-size:12px;
    border-radius: 8px;
    white-space:nowrap;
    opacity:0;
    pointer-events:none;
    transition:.15s ease;
    z-index:999;
    border: 1px solid rgba(255, 255, 255, 0.4);

}

.ui-tooltip.show{opacity:1}

.ui-tooltip .arrow{
    position:absolute;
    width:8px;
    height:8px;
    background:#333;
    transform:rotate(45deg);

}

/* centered placements */
.has-tooltip.top .ui-tooltip,
.ui-tooltip.top{
    bottom:calc(100% + 10px);
    left:50%;
    transform:translateX(-50%);
}
.has-tooltip.bottom .ui-tooltip,
.ui-tooltip.bottom{
    top:calc(100% + 10px);
    left:50%;
    transform:translateX(-50%);
}
.has-tooltip.right .ui-tooltip,
.ui-tooltip.right{
    left:calc(100% + 10px);
    top:50%;
    transform:translateY(-50%);
}
.has-tooltip.left .ui-tooltip,
.ui-tooltip.left{
    right:calc(100% + 10px);
    top:50%;
    transform:translateY(-50%);
}

/* arrows */
.has-tooltip.top .arrow,
.ui-tooltip.top .arrow{bottom:-4px;left:50%;transform:translateX(-50%) rotate(45deg)}
.has-tooltip.bottom .arrow,
.ui-tooltip.bottom .arrow{top:-4px;left:50%;transform:translateX(-50%) rotate(45deg)}
.has-tooltip.left .arrow,
.ui-tooltip.left .arrow{right:-4px;top:50%;transform:translateY(-50%) rotate(45deg)}
.has-tooltip.right .arrow,
.ui-tooltip.right .arrow{left:-4px;top:50%;transform:translateY(-50%) rotate(45deg)}




/* ===== MODAL CORE ===== */
.modal-overlay {
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,.5);
  backdrop-filter: blur(6px);
  display: none;

  /* 🔥 CENTER MAGIC */
  align-items: center;
  justify-content: center;

  z-index: 9999;
}

.menu-modal-overlay {
  z-index: 99;
  align-items: start;
  justify-content: right;
  & .modal-box {position: relative; width: 240px; height: calc(100% - 100px); top: 55px; border-radius: 0; animation: slide .15s ease;}
  & .modal-box h2 {font-size: 18px;}
  & p {margin-bottom: 0;}
}



.modal-box {
  background: #fff;
  width: 90%;
  max-width: 660px;
  padding: 20px;
  border-radius: 25px;
  position: relative;
  animation: pop .25s ease;
  max-height: min(86vh, 900px);
  overflow: hidden;
}

@keyframes pop {
  from { transform: scale(.85); opacity: 0; }
  to   { transform: scale(1); opacity: 1; }
}

@keyframes slide {
  from { transform: translateX(50%); opacity: 0; }
  to   { transform: translateX(0); opacity: 1; }
}

.modal-close {
  display: inline-block;
  text-align: center;
  position: absolute;
  right: 12px;
  top: 10px;
  font-size: 20px;
  cursor: pointer;
}

.graphics-loader{
  position:absolute;
  inset:0;
  display:flex;
  align-items:center;
  justify-content:center;
  background:transparent;
  pointer-events:none;
}

.graphics-loader:after{
  content:"";
  width:32px;
  height:32px;
  border:7px solid rgba(0,0,0,.2);
  border-top-color:#fff;
  border-right-color:rgba(0,0,0,.3);
  border-bottom-color:rgba(0,0,0,.4);
  border-left-color:rgba(0,0,0,.6);
  border-radius:50%;
  animation:spin .8s linear infinite;
}

@keyframes spin{
  to{transform:rotate(360deg)}
}





.has-copy{
cursor:pointer;
}

#copy-msg{
position:fixed;
bottom:25px;
left: 50%;
transform:translateX(-50%);
background: rgba(0,0,0,0.8);
color:#fff;
padding:10px 16px;
border-radius:14px;
font-size:14px;
display:none;
z-index:9999;
& .gicon {display: inline-block; vertical-align:middle; margin-top: -1px; }
}

.header-search{
  height: 40px;
  margin: 0 auto;
display:flex;
align-items:center;
gap:6px;
border:1px solid #eee;
padding:2px 4px;
border-radius:12px;
max-width:550px;
position:relative;


& .search-filter-button,
& .clear-filters {
    position: absolute;
    top: 6px;
    right: 6px;
    background: #eee;
    font-size: 12px;
    border: none;

    width: 26px; height: 26px;
    line-height: 38px;
    border-radius: 8px;
    cursor: pointer;
  }


}

/* renamed input */

.filter-input{
border:none;
outline:none;
flex:1;
min-width:120px;
font-size:14px;
height: 30px;
}

.search-filter-button{
border:none;
background:none;
cursor:pointer;
}

/* pills */

.pill{
background-color:#eee;
text-transform: capitalize;
padding:4px 6px;
border-radius:8px;
font-size:13px;
display:inline-flex;
align-items:center;
gap:6px;
white-space:nowrap;
}

.remove{
  width: 15px;
  font-size: 15px;
  text-align: center;
  cursor:pointer;
  font-weight:normal;
  color: #888;
  /*border-left: 1px solid #ddd;*/
  transform: scale(1.1);
  &:hover {color: #000;}
}

/* color dot */

.color-dot{
width:16px;
height:16px;
border-radius:50%;
display:inline-block;
border: 1px solid rgba(0, 0, 0, 0.1);
}

/* suggestion dropdown */

.filter-overlay{
position:fixed;
inset:0;
background: rgba(0,0,0,.4);
backdrop-filter: blur(6px);
display:none;
z-index:8;
}

.suggestion-box{
  text-transform: capitalize;
position:absolute;
top:100%;
left:0;
right:0;
background: #fff;
border:1px solid #ddd;
border-radius:8px;
z-index:9;
display:none;
overflow:auto;
z-index:99;
}

.header-search.is-colors-mode .suggestion-box,
.header-search-color .suggestion-box{
  display:none !important;
}

.header-search.is-colors-mode .selected-tags,
.header-search-color .selected-tags{
  display:none;
}

.header-search-gradient .selected-tags{
  display:flex;
}



.suggestion-box-section{
padding:10px;
border-bottom:1px solid #eee;
}

.section h4{
margin:0 0 8px 0;
font-size:13px;
color:#666;
}

.selected-tags{
display:flex;
gap:6px;
align-items:center;
flex-wrap:nowrap;
}

.tag{
display:inline-flex;
align-items:center;
gap:6px;
padding:5px 10px;
border:1px solid #ddd;
border-radius:10px;
margin:3px 1px;
cursor:pointer;
font-size:13px;
&:hover {background-color: #eee;}
&:active {background-color: #ddd;}
}

.tag.active{
background: #eee;
}

.clear-filters{
display:none;
}


.padder {padding: 16px;}
.cols {
  display: grid;
  grid-template-columns: 40% 1fr;
  grid-gap: 10px;

  & .col1 {position: relative;}
  & .col2 {}
}
.single-palette-wrapper {
  position: sticky;
  top: 68px;
}

.single-palette {
  min-height: 72vh;
  display: flex;
  flex-direction: column;
  border-radius: 14px;
  overflow: hidden;

  & li {flex: 1; display: flex; align-items: center; padding: 20px;}

  .single-palette-controls {
    width: 100%;
    display: grid;
    grid-template-columns: auto 1fr auto auto auto;
    grid-gap: 20px;
    align-items: center;
    transition: opacity .2s ease;

    opacity: 0.4;
    & code {display: block;}
    & .icon-button {background-color: inherit; color: inherit; transform: scale(1.1); &:active {transform: scale(0.9);}}
    & .picker-handle {cursor: pointer;}
    & .drag-handle {cursor: grab;}
  }
  
  & li:hover .single-palette-controls {
    opacity: 1;
  }

  & code {
    font-size: 18px;
    text-transform: uppercase;
    /*padding: 5px 10px;*/
    &:hover {opacity: 1;}
    &:active {transform: scale(0.9);}
  }
  & .color-name {
    font-size: 13px;
    text-transform: none;
    opacity: 0.8;
    justify-self: start;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    padding-left: 0;
  }
  & .palette-picker{
    position:absolute;
    opacity:0;
    pointer-events:none;
  }
}
.create-palette-controls {
  grid-template-columns: auto 1fr auto auto auto auto;
}
.single-palette-info-bar {
  display: grid;
  align-items: center;
  grid-template-columns: 1fr auto;
  grid-gap: 10px;
  vertical-align:middle;
  border: 1px solid #eee;
  border-radius: 10px;
  margin-top: 10px;
  padding: 10px;

  & h1 {font-size: 16px;}
  & .attribution {margin: 0; padding: 0; display: inline-block; font-size: 12px; vertical-align: middle;}
  & .attribution .gicon {display: inline-block; width: 20px; height: 20px; color: #000; margin-bottom: -20px;}
  
}
.single-palette-meta {
    width: 100%;
    grid-column: span 2;
    padding-top: 10px;
    border-top: 1px solid #eee;
    & .palette-link {
      display: inline-block;
      height: 32px;
      line-height: 30px;
      padding: 0 10px;
      margin: 4px 2px;
      border: 1px solid #eee;
      border-radius: 6px;
      font-size: 12px;
      &:hover {background-color: #eee;}
      &:active {background-color: #ddd; border-color: #ddd;}
      & .pcolor-dot {
        display: inline-block;
        margin-right: 5px;
        margin-bottom: -3px;
        width: 14px; height: 14px;
        border-radius: 50%;
        border: 1px solid rgba(0, 0, 0, 0.1);

      }
    }
  }


.single-gradient {
  position: relative;
  min-height: 72vh;
  border-radius: 14px;
  overflow: hidden;
  background-image: linear-gradient(45deg, #ff0000 0%, #0000ff 100%);

  & .single-gradient-controls {
    display: grid;
    grid-template-columns: auto auto auto auto;
    grid-gap: 5px;
    background-color: rgba(255,255,255,0.2);
    min-width: 300px;
    max-width: 300px;
    padding: 10px;
    
    border-radius: 20px;
    
    position:absolute;
    bottom:25px;
    left: 50%;
    transform:translateX(-50%);
  }
}

.showcase {
  overflow: hidden;
  display: grid;
  grid-template-columns: 1fr;
  grid-gap: 10px;

  & svg {
    display: block;
    width: 100%;
    height: auto;
    border: 1px solid #eee;
    border-radius: 14px;
    user-select: none;
  }
}

.colors-directory-shell {
  padding: 0 12px;
}

.colors-directory-meta {
  margin-bottom: 14px;
}

.colors-directory-count {
  margin: 0;
  opacity: 0.65;
}

.collection-load-status {
  min-height: 24px;
  padding: 10px 12px 0;
  text-align: center;
  font-size: 13px;
  opacity: 0.65;
}

.collection-load-more-wrap {
  padding-top: 40px;
  text-align: center;
}


.collection-load-more.is-loading,
.colors-load-more.is-loading {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  margin-top: 20px;
  margin-bottom: 20px;
}

.collection-loader {
  display: inline-flex;
  align-items: center;
  gap: 10px;
}

.collection-loader-icon {
  width: 18px;
  height: 18px;
  display: block;
  animation: spin .8s linear infinite;
}

.collection-load-label {
  display: inline-block;
}

.collection-sentinel {
  height: 1px;
}

.collection-empty {
  width: 100%;
  list-style: none;
}

.collection-empty p {
  margin: 0;
  padding: 12px;
}

.palettes.colors .palette-info {
  height: auto;
  min-height: 42px;
  display: grid;
  grid-template-columns: auto 1fr;
  align-items: center;
  gap: 10px;
}

.palettes.colors .palette-info button.icon-button {
  position: static;
}

.palettes.colors .palette-info h2 {
  margin: 0;
  font-size: 18px;
}

.palettes-brand .palette-info {
  height: auto;
  min-height: 42px;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 12px;
}

.palettes-brand .palette-info-main h2 {
  margin: 0;
  font-size: 18px;
}

.palettes-brand .palette-info-main .status-note {
  display: block;
  margin-top: 4px;
}

.palettes-brand .palette-info-actions {
  display: flex;
  align-items: center;
  gap: 8px;
}

.palettes-brand .palette-info button.icon-button,
.palettes-brand .palette-info a.icon-button {
  position: static;
}

/*@@@@@@@@@@@@@@ Create @@@@@@@@@@@@@ */
.create-cats-tag {
  & h4 {font-size: 10px; color: #aaa; letter-spacing: 1px; text-transform: uppercase; margin-bottom: 3px;}
}
.modal-overlay[data-modal-box="submit-palette-box"] .modal-box,
.modal-overlay[data-modal-box="submit-gradient-box"] .modal-box {
  display: flex;
  flex-direction: column;
}

.submit-palette {
  flex: 1 1 auto;
  min-height: 0;
  overflow-y: auto;
  padding-right: 6px;

  .dynamic-graphic,
  .dynamic-gradient-graphic {display: block; width: 100%; height: auto; margin: 0 auto 10px; border-radius: 14px; clip-path: inset(0 round 14px);}
}

.submit-palette > svg,
.submit-palette > .dynamic-graphic,
.submit-palette > .dynamic-gradient-graphic,
.submit-gradient > svg,
.submit-gradient > .dynamic-graphic,
.submit-gradient > .dynamic-gradient-graphic {
  position: sticky;
  top: 0;
  z-index: 3;
  background: transparent;
}

.create-palette-form,
.create-gradient-form {
  display: flex;
  flex-direction: column;
}

.create-palette-form > .align-center:last-child,
.create-gradient-form > .align-center:last-child {
  position: sticky;
  bottom: 0;
  background: #fff;
  padding-top: 14px;
  padding-bottom: 4px;
  z-index: 3;
}

.submit-palette-message,
.submit-gradient-message {
  display: none;
  margin-bottom: 14px;
  padding: 10px 12px;
  border-radius: 10px;
  font-size: 14px;
  background-color: rgba(0, 0, 0, 0.05);
}

.color-info-preview {
  width: 100%;
  height: 72px;
  border-radius: 16px;
  margin-bottom: 18px;
  border: 1px solid rgba(0,0,0,0.08);
}

.color-info-palette {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  margin: 6px 0 14px;
}

.color-info-swatch {
  width: 36px;
  height: 36px;
  border-radius: 999px;
  border: 2px solid rgba(0,0,0,0.08);
  padding: 0;
  cursor: pointer;
  position: relative;
  transition: transform .15s ease, box-shadow .15s ease, border-color .15s ease;
}

.color-info-swatch:hover {
  transform: translateY(-1px);
}

.color-info-swatch.is-active {
  border-color: #111;
  box-shadow: 0 0 0 3px rgba(0,0,0,0.08);
}

.color-info-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  max-height: min(60vh, 560px);
  overflow-y: auto;
  padding-right: 4px;

  & .color-info-item {
    border: 1px solid #eee;
    border-radius: 14px;
    padding: 12px;
  }

  & .color-info-label {
    display: block;
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    opacity: 0.6;
    margin-bottom: 6px;
  }

  & .color-info-value {
    display: block;
    font-size: 15px;
    word-break: break-word;
  }

  & .color-info-row {
    display: grid;
    grid-template-columns: 1fr auto;
    align-items: center;
    gap: 8px;
  }

  & .color-info-copy {
    opacity: 0.6;
  }

  & .color-info-copy:hover {
    opacity: 1;
  }
}

.submit-palette-message.is-success,
.submit-gradient-message.is-success {
  color: #14532d;
  background-color: #dcfce7;
}

.submit-palette-message.is-error,
.submit-gradient-message.is-error {
  color: #991b1b;
  background-color: #fee2e2;
}

.colors-options, .cats-options {
  padding-top: 8px;
  & li {display: inline-block; margin-bottom: 3px; text-transform: capitalize;}
  & li span {font-size: 14px; text-transform: capitalize; padding: 5px; padding-right: 30px; border-radius: 10px; display: block; border: 1px solid #eee; background-color: rgba(0, 0, 0, 0.030); position: relative; cursor: pointer;}
  & li span:before {
    font-size: 22px;
    font-weight: 200;
    /*content: "\e5ca";*/
    position: absolute;
    display: inline-block;
    width: 18px; height: 18px;
    line-height: 19px;
    text-align: center;
    padding: 0;
    top: 7px;
    right: 10px;
    font-family: var(--icon);
  }
  .color-dot {font-size: 0; display: inline-block; width: 18px; height: 18px; border-radius: 50%; vertical-align:middle; margin-right: 4px; border: 1px solid rgba(0, 0, 0, 0.050);}

  li input[type="checkbox"] {
  position: absolute;
  opacity: 0;
  cursor: pointer;
  height: 0;
  width: 0;
  }
  li input[type="checkbox"]:checked + span:before {content: "\e5ca";}
  li input[type="checkbox"]:checked + span {border-color: #aaa;}
  li:hover input[type="checkbox"]:checked + span:before {content: "\e5cd";}
}
.cats-options {
  & li span {padding-left: 10px;}
}

.loading{
opacity:0.5;
}

#main-content {
  opacity: 1;
  transform: translateY(0);
  transition: opacity .22s ease, transform .22s ease;
  will-change: opacity, transform;
}

#main-content.loading.is-leaving {
  opacity: 0;
  transform: translateY(12px);
}

#main-content.is-entering {
  opacity: 0;
  transform: translateY(12px);
}

@media (prefers-reduced-motion: reduce) {
  #main-content {
    transition: none;
  }
}

.login-signup-buttons {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  grid-gap: 20px;
}

.login-form {
  display: grid;
  grid-template-columns: 1fr;
  grid-gap: 20px;
}

.auth-shell {
  max-width: 440px;
  margin: 0 auto;
  padding: 0 20px 20px;
  & p {margin-bottom: 20px;}
}

.auth-card {
  border: 1px solid #eee;
  border-radius: 18px;
  padding: 24px;
  background: #fff;
}

.auth-form {
  display: grid;
  grid-template-columns: 1fr;
  gap: 18px;

  & .input,
  & .textarea {width: 100%;}
}

.auth-form label span {
  display: block;
  font-size: 13px;
  margin-bottom: 8px;
  color: #555;
}

.auth-inline {
  display: flex;
  align-items: center;
  gap: 10px;
}

.auth-inline span {
  margin-bottom: 0 !important;
}

.auth-submit {
  width: 100%;
}

.auth-alt {
  margin-top: 16px;
  text-align: center;
  margin-bottom: 0;
}

.auth-message {
  margin-bottom: 16px;
  padding: 10px 12px;
  border-radius: 10px;
  font-size: 14px;
}

.auth-error {
  color: #991b1b;
  background: #fee2e2;
}

.auth-success {
  color: #14532d;
  background: #dcfce7;
}

.auth-success-screen {
  text-align: center;
  padding: 10px 0;
}

.auth-success-screen h2 {
  font-size: 28px;
  margin-bottom: 8px;
}

.auth-success-screen p {
  margin: 0;
}

.auth-success-icon {
  width: 72px;
  height: 72px;
  line-height: 84px;
  margin: 0 auto 16px;
  border-radius: 50%;
  background: #dcfce7;
  color: #15803d;
}

.auth-success-icon .gicon {
  font-size: 36px;
}


.generate-single-palette-wrapper {
  & .generate-single-palette {
    display: flex;
    width: 100%;
    min-height: 80vh;
    margin: 0;
    border-radius: 0;

    & li {flex: 1; padding: 20px;}
  }
}

.generate-palette-hint {
  margin: 0;
  font-size: 13px;
  opacity: 0.65;
}

.generate-palette-trigger.is-loading .gicon {
  animation: spin .8s linear infinite;
}

.monochromatic-generator-controls {
  display: flex;
  align-items: end;
  gap: 12px;
  flex-wrap: wrap;
}

.monochromatic-generator-controls label {
  display: block;
  margin-bottom: 8px;
}

.monochromatic-generator-controls input {
  width: 100%;
  max-width: 160px;
}

.monochromatic-generator-controls .input-range-pair {
  min-width: 220px;
}

.monochromatic-generate-trigger.is-loading .gicon {
  animation: spin .8s linear infinite;
}

.color-converter-card {
  max-width: 920px;
  margin: 0 auto;
}

.color-converter-controls {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 16px;
  align-items: end;
}

.color-converter-controls label {
  display: block;
  margin-bottom: 8px;
}

.color-converter-picker {
  width: 72px;
  height: 48px;
  padding: 0;
  border: 0;
  background: transparent;
}

.color-converter-preview-wrap {
  text-align: center;
}

.color-converter-preview {
  width: 100%;
  max-width: 240px;
  height: 120px;
  margin: 0 auto;
  border-radius: 18px;
}

.color-converter-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}

.contrast-checker-card {
  max-width: 920px;
  margin: 0 auto;
}

.contrast-checker-controls {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
}

.contrast-checker-controls label {
  display: block;
  margin-bottom: 8px;
}

.contrast-preview-card {
  border-radius: 20px;
  overflow: hidden;
}

.contrast-preview-sample {
  padding: 28px;
  border-radius: 20px;
}

.contrast-preview-sample p {
  color: inherit;
}

.contrast-preview-title {
  font-size: 14px;
  text-transform: uppercase;
  letter-spacing: .08em;
  opacity: .75;
}

.contrast-preview-text {
  font-size: 28px;
  line-height: 1.25;
  margin: 8px 0 12px;
  font-weight: 600;
}

.contrast-preview-meta {
  margin: 0;
  opacity: .75;
}

.contrast-score-wrap {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 8px 14px;
  border-radius: 999px;
  background: #f3f4f6;
}

.contrast-score-value {
  font-size: 22px;
}

.contrast-score-label {
  opacity: .75;
}

.contrast-status-item.is-pass {
  background: #dcfce7;
  color: #166534;
}

.contrast-status-item.is-fail {
  background: #fee2e2;
  color: #991b1b;
}

.gradient-generator-card {
  width: 100%;
  /*max-width: 980px;*/
  margin: 0 auto;
}

.gradient-generator-layout {
  display: flex;
  flex-direction: row-reverse;
  gap: 20px;
  align-items: flex-start;
}

.gradient-generator-preview-column {
  flex: 1 1 80%;
}

.gradient-generator-controls-column {
  flex: 0 0 280px;
  max-width: 280px;
}

.gradient-generator-preview {
  width: 100%;
  height: 240px;
  border-radius: 24px;
}

.gradient-generator-toolbar {
  display: grid;
  grid-template-columns: 1fr;
  gap: 16px;
  align-items: end;
}

.gradient-generator-toolbar label,
.gradient-stop-item label {
  display: block;
  margin-bottom: 8px;
}

.gradient-generator-actions {
  display: flex;
  gap: 8px;
  justify-content: flex-end;
}

.gradient-stop-list {
  display: grid;
  gap: 14px;
}

.gradient-stop-item {
  display: grid;
  grid-template-columns: 1fr 220px;
  gap: 16px;
  align-items: end;
  padding: 16px;
  border: 1px solid #eee;
  border-radius: 18px;
}

.gradient-stop-header {
  grid-column: 1 / -1;
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.gradient-stop-title {
  display: flex;
  align-items: center;
  gap: 10px;
}

.gradient-stop-header label {
  margin-bottom: 0;
}

.gradient-stop-order {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 26px;
  height: 26px;
  border-radius: 999px;
  background: #eef2ff;
  color: #3a47fd;
  font-size: 13px;
  font-weight: 600;
}

.gradient-stop-buttons {
  display: flex;
  gap: 8px;
}

.gradient-stop-drag-handle {
  cursor: grab;
}

.gradient-stop-swatch {
  width: 100%;
  height: 16px;
  border-radius: 999px;
  margin-bottom: 10px;
}

.gradient-generator-stop-actions,
.gradient-generator-copy-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.generate-single-palette-bar {
  justify-content: flex-end;
  margin: 0;
  border-radius: 0;
}

.generate-single-palette-actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 8px;
}

.generate-palette-hint kbd {
  display: inline-block;
  padding: 2px 7px;
  border-radius: 7px;
  border: 1px solid rgba(0, 0, 0, 0.12);
  font: inherit;
}

#main-content[data-generate-page='1'] .generate-single-palette li {
  transition: flex .22s ease, background-color .22s ease;
}

#main-content[data-generate-page='1'].is-generating .generate-single-palette li {
  animation: generatePaletteReveal .38s ease both;
}

#main-content[data-generate-page='1'].is-generating .generate-single-palette li:nth-child(2) {
  animation-delay: .04s;
}

#main-content[data-generate-page='1'].is-generating .generate-single-palette li:nth-child(3) {
  animation-delay: .08s;
}

#main-content[data-generate-page='1'].is-generating .generate-single-palette li:nth-child(4) {
  animation-delay: .12s;
}

#main-content[data-generate-page='1'].is-generating .generate-single-palette li:nth-child(5) {
  animation-delay: .16s;
}

@keyframes generatePaletteReveal {
  0% {
    opacity: .35;
    filter: brightness(1.15) saturate(1.08);
  }
  100% {
    opacity: 1;
    filter: brightness(1) saturate(1);
  }
}

.frontend-edit-link {
  position: fixed;
  left: 12px;
  bottom: 20px;
  z-index: 102;
  background-color: #fff;
}

#content{
  min-height: 60vh;

  line-height:1.7;
  font-size:16px;


  & p{
    margin:0 0 1.2em;
  }

  & h1,
  & h2,
  & h3,
  & h4,
  & h5,
  & h6{
    margin:1.5em 0 .6em;
    line-height:1.3;
    font-weight:600;
    color:#111;
  }

  & h1{font-size:2.2rem;}
  & h2{font-size:1.7rem;}
  & h3{font-size:1.4rem;}
  & h4{font-size:1.2rem;}
  & h5{font-size:1.05rem;}
  & h6{font-size:.95rem;}

  & a{
    color:#0073e6;
    text-decoration:none;
  }

  & a:hover{
    text-decoration:underline;
  }


  & ul,
  & ol{
    margin:0 0 1.2em 1.4em;
    padding:0;
  }
  & ul li {list-style: square;}

  & li{
    margin:.3em 0;
  }

  & blockquote{
    border-left:4px solid #ddd;
    padding:.6em 1em;
    margin:1.5em 0;
    color:#555;
    background:#fafafa;
  }

  & img{
    max-width:100%;
    height:auto;
    display:block;
    margin:1.5em 0;
    border-radius:4px;
  }

  & figure{
    margin:1.5em 0;
  }

  & figcaption{
    font-size:.9em;
    color:#777;
    margin-top:.5em;
    text-align:center;
  }

  & code{
    background:#f4f4f4;
    padding:2px 6px;
    border-radius:4px;
    font-size:.95em;
  }

  & pre{
    background:#1e1e1e;
    color:#eee;
    padding:16px;
    overflow:auto;
    border-radius:6px;
    margin:1.5em 0;
  }

  & pre code{
    background:none;
    padding:0;
  }

  & table{
    width:100%;
    border-collapse:collapse;
    margin:1.5em 0;
  }

  & th,
  & td{
    border:1px solid #ddd;
    padding:8px 10px;
    text-align:left;
  }

  & th{
    background:#f6f6f6;
  }

  & hr{
    border:none;
    border-top:1px solid #eee;
    margin:2em 0;
  }

  & .alignleft{
    float:left;
    margin:0 1em 1em 0;
  }

  & .alignright{
    float:right;
    margin:0 0 1em 1em;
  }

  & .aligncenter{
    display:block;
    margin:1.5em auto;
    text-align:center;
  }

}

.p404 {
  display: flex;
  width: 100%;
  align-items: center;
  text-align: center;
  min-height: 80vh;
}

.tools {
  display: grid;
  grid-template-columns: 1fr;
  grid-gap: 10px;
  & li {position: relative;}
  & h2 {margin: 0;}
  & p {margin-bottom: 0;}
  & a {padding: 20px; padding-left: 80px; display: block; background-color: #eee; border-radius: 6px;}
  & a .gicon {
    color: #eee;
    display: inline-block;
    text-align: center;
    width: 40px; height: 40px; 
    line-height: 40px;
    position: absolute;
    background-color: #333;
    border-radius: 5px;
    top: 24px;
    left: 20px;
  }

}

.dark-mode {
  color: #fff;
  background-color: var(--dark);
  & .header,
  & .footer,
  & .aside,
  & .suggestion-box,
  & .suggestion-box-section .pill,
  & .suggestion-box-section .tag,
  & .dropdown-menu,
  & .modal-box {background-color: var(--dark);}
  & .footer .icon-button,
  & .nav li a,
  & .suggestion-box-section .tag.active,

  & .dark-light-mode-toggler:hover {background-color: rgba(255, 255, 255, 0.1);}
  & .footer .button {background-color: #fff; color: #000}
  & .categories-menu li,
  & .single-palette-info-bar,
  & .border,
  & .showcase svg,
  & .header,
  & .aside,
  & .footer,
  & .header-search,
  & .header-search-wrapper,
  & .suggestion-box,
  & .suggestion-box .tag,
  & .suggestion-box-section,
  & .colors-menu span 
   {border-color: rgba(255, 255, 255, 0.1);}
  & .categories-menu a,
  & .icon-button,
  & p, & p a,
  & .nav li a {color: #ccc;}
  & .header .logo,
  & .tabs-nav .tab-link.is-active,
  & .tabs-nav .tab-link:hover,
  & .categories-menu a:hover,
  & .dark-light-mode-toggler:before {color: #fff;}
  & .nav li a.is-active {color: #8f97ff; border-color: rgba(143, 151, 255, 0.3);}
  & .footer > :nth-child(3) {background-color: inherit;}
  & .main {background-color: #444;}
  
}

/* @@@@@@@@@ Responsive @@@@@@@@@@ */


@media screen and (max-width: 1024px) {

.palettes {grid-template-columns: repeat(2, 1fr);}
}

@media screen and (max-width: 780px) {
  .nomobile {display: none!important;}
  .nodesktop {display: block;}
  h2 {font-size: 22px;}
  h3 {font-size: 20px;}

  .modal-box {
    width: calc(100% - 24px);
    max-height: 88vh;
    padding: 16px;
    border-radius: 18px;
  }

  .submit-palette {
    max-height: calc(88vh - 82px);
  }

  .hero {
  min-height: 100px;
  & h1 {font-size: 24px;}
  }

  .input,
  .header-search input 
  {font-size: 16px;}

  /*.header {grid-template-columns: auto 1fr auto;}*/
  .header{

    height: auto;

        display:grid;
        grid-template-columns:1fr auto;
        grid-template-areas:
            "one three"
            "two two";
          grid-gap: 0;
          padding: 14px;
          padding-bottom: 0;

    }

  .header > :nth-child(1){ grid-area: one;}
  .header > :nth-child(2){ grid-area: two;}
  .header > :nth-child(3){ grid-area: three;}

  .header-search-wrapper { margin-top: 10px; padding: 10px 0; border-top: 1px solid #eee;}
  .header-search {max-width: 100%;}

  .palettes {grid-template-columns: 1fr;}
  .palettes li {margin-bottom: 0;}
  .aside {
    display: block;
    width: 100%;
    height: inherit;
    padding: 10px;
    position: fixed;
    top: inherit;
    left: inherit!important;
    bottom: 0;
    .nav {display: grid; grid-template-columns: repeat(5, 1fr);}

    & ul {text-align: center;}
    & .has-tooltip.right .ui-tooltip{display: none;}
  }
  .section {
    width: 100%;
    margin-left: 0;
  }

  .cols {
    grid-template-columns: 1fr;
  }

  .single-palette,
  .single-gradient {min-height: 40vh;}

  .single-palette-info-bar {display: block; grid-template-columns: 1fr; text-align: center; 
    & h1 {margin-bottom: 5px;}
  }
  .single-palette-meta {grid-column: inherit; margin-top: 10px;}
  .generate-single-palette-bar {text-align: center;}
  
  .footer {padding-bottom: 80px;}

}
