@import url('_variables.css');

/* ------------------------------ *\
 * peachcloud.css
 *
 * Index
 * - ALIGNMENT
 * - BODY
 * - BUTTONS
 * - CARDS
 * - CAPSULES
 * - CIRCLES
 * - COLORS
 * - GRIDS
 * - HTML
 * - FLASH MESSAGE
 * - FONTS
 * - FORMS
 * - ICONS
 * - INPUTS
 * - LABELS
 * - LINKS
 * - LISTS
 * - MAIN
 * - METERS
 * - NAVIGATION
 * - PARAGRAPHS
 * - SWITCHES / SLIDERS
 * - TEXT
 * - TITLES
 *
\* ------------------------------ */

/*
 * ALIGNMENT
 */

.center {
    display: block;
    margin-left: auto;
    margin-right: auto;
}

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

.center-vert {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
}

.push-right {
    margin-left: auto;
    padding-right: 0;
}

.top-left {
    /* place-self combines align-self and justify-self */
    place-self: end center;
}

@media only screen and (min-width: 600px) {
    .top-left {
        place-self: end;
    }
}

.top-right {
    place-self: end center;
}

@media only screen and (min-width: 600px) {
    .top-right {
        place-self: end start;
    }
}

.top-middle {
    place-self: center;
}

@media only screen and (min-width: 600px) {
    .top-middle {
        padding-bottom: 2rem;
        place-self: center;
    }
}

.middle {
    place-self: center;
    grid-column-start: 1;
    grid-column-end: 4;
}

.bottom-middle {
    place-self: center;
}

@media only screen and (min-width: 600px) {
    .bottom-middle {
        padding-top: 2rem;
        place-self: center;
    }
}

.bottom-left {
    place-self: start center;
}

@media only screen and (min-width: 600px) {
    .bottom-left {
        place-self: start end;
    }
}

.bottom-right {
    place-self: start center;
}

@media only screen and (min-width: 600px) {
    .bottom-right {
        place-self: start;
    }
}

/*
 * BODY
 */

body {
  background-color: var(--background);
  height: 100%;
  display: flex;
  flex-direction: column;
  margin: 0;
}

/*
 * BORDERS
 */

.border-circle-small {
    border: 4px solid;
}

.border-settings {
    border-color: var(--color-settings);
}

.border-ssb {
    border-color: var(--color-ssb);
}

.border-status {
    border-color: var(--color-status);
}

.border-primary {
    border-color: var(--primary);
}

.border-success {
    border-color: var(--success);
}

.border-info {
    border-color: var(--info);
}

.border-warning {
    border-color: var(--warning);
}

.border-danger {
    border-color: var(--danger);
}

.border-dark-gray {
    border-color: var(--dark-gray);
}

/*
 * BUTTONS
 */

.button {
    border: 1px solid var(--button-border);
    border-radius: var(--border-radius-2);
    /* Needed to render inputs & buttons of equal width */
    -moz-box-sizing: border-box;
    -webkit-box-sizing: border-box;
    box-sizing: border-box;
    color: var(--button-text-color);
    cursor: pointer;
    padding: 10px;
    text-align: center;
    text-decoration: none;
    font-size: var(--font-size-5);
    font-family: var(--sans-serif);
    /* width: 80%; */
    width: 16rem;
    margin-top: 5px;
    margin-bottom: 5px;
}

.button.full-width {
    width: 100%;
}

.button-div {
    grid-column-start: 1;
    grid-column-end: 4;
    margin-bottom: 1rem;
}

.button-primary {
    background-color: var(--button-background);
}

.button-primary:hover {
    background-color: var(--primary);
    color: var(--button-text-hover-color);
}

.button-primary:focus {
    background-color: var(--primary);
    color: var(--button-text-hover-color);
    outline: none;
}

.button-secondary {
    background-color: var(--button-background);
}

.button-secondary:hover {
    background-color: var(--light-silver);
    color: var(--button-text-hover-color);
}

.button-secondary:focus {
    background-color: var(--light-silver);
    color: var(--button-text-hover-color);
    outline: none;
}

.button-warning {
    background-color: var(--button-background);
}

.button-warning:hover {
    background-color: var(--light-red);
    color: var(--button-text-hover-color);
}

.button-warning:focus {
    background-color: var(--light-red);
    outline: none;
}

/*
 * CAPSULES
 */

.capsule {
    padding: 1rem;
    border-style: solid;
    border-radius: var(--border-radius-3);
    background-color: var(--capsule-background);
    /* margin-top: 1rem; */
    /* margin-bottom: 1rem; */
}

.capsule-container {
    margin-left: 1rem;
    margin-right: 1rem;
    padding-bottom: 1rem;
}

.capsule-profile {
    margin-left: 1rem;
    margin-right: 1rem;
}

@media only screen and (min-width: 600px) {
    .capsule-profile {
        margin-left: 0;
	margin-right: 0;
    }
}

@media only screen and (min-width: 600px) {
    .capsule-container {
      margin-left: 0;
      margin-right: 0;
    }
}

/*
 * CARDS
 */

.card {
    min-height: 50vh;
    max-height: 90vh;
    position: relative;
    width: 100%;
    margin-top: 1rem;
}

@media only screen and (min-width: 600px) {
    .card {
        min-height: 50vh;
        max-height: 90vh;
        width: 20rem;
    }
}

@media only screen and (min-width: 600px) {
    .card-wide {
        width: 30rem;
    }
}

.card-container {
    justify-content: center;
    padding: 0.5rem;
}

.form-container {
    justify-content: center;
    padding-top: 1rem;
    padding-bottom: 1rem;
    width: 80%;
    margin: auto;
}

.text-container {
    width: 80%;
    margin: auto;
}

.card-text {
    color: var(--text-color);
    margin: 0;
    font-size: var(--font-size-5);
    padding-bottom: 0.5rem;
}

.container {
    display: grid;
    grid-template-columns: 2fr 5fr 2fr;
    grid-template-rows: auto;
    grid-row-gap: 1rem;
    align-items: center;
    justify-items: center;
    margin-bottom: 1rem;
    margin-top: 1rem;
}

/*
 * CIRCLES
 */

.circle {
    align-items: center;
    background: var(--circle-background);
    border-radius: 50%;
    box-shadow: var(--box-shadow-3);
    display: flex;
    justify-content: center;
    position: relative;
}

.circle-small {
    height: 5rem;
    width: 5rem;
}

.circle-small:hover {
    background: var(--circle-small-hover-background);
}

.circle-small:focus {
    background: var(--circle-small-hover-background);
    outline: none;
}

.circle-medium {
    height: 8rem;
    width: 8rem;
}

.circle-large {
    height: 13rem;
    width: 13rem;
}

.circle-success {
    background-color: var(--success);
    color: var(--white);
    font-size: var(--font-size-4);
}

.circle-warning {
    background-color: var(--warning);
    color: var(--white);
    font-size: var(--font-size-4);
}

.circle-error {
    background-color: var(--danger);
    color: var(--white);
    font-size: var(--font-size-4);
}

/* quartered-circle: circle for the center of radial-menu */

.quartered-circle {
    width: 100px;
    height: 100px;
}

.quarter {
    width: 50%;
    height: 50%;
}

.quarter-link {
    left: 50%;
    margin: -2em;
    top: 50%;
}

.quarter-icon {
    position: absolute;
    bottom: 1em;
    left: 1.5em;
}

/*
 * COLORS
 */

.primary-bg {
    background-color: var(--primary);
}

.secondary-bg {
    background-color: var(--secondary);
}

.success-bg {
    background-color: var(--success);
}

.info-bg {
    background-color: var(--info);
}

.warning-bg {
    background-color: var(--warning);
}

.danger-bg {
    background-color: var(--danger);
}

.light-bg {
    background-color: var(--light);
}

/*
 * GRIDS
 */

.grid {
    display: grid;
    grid-template-columns: 2fr 1fr 2fr;
    grid-template-rows: 2fr 1fr 2fr;
    height: 80vh;
}

.flex-grid {
    display: flex;
    align-content: space-between;
    align-items: baseline;
    justify-content: center;
}

.two-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    grid-template-rows: auto;
    align-items: center;
    justify-content: center;
    justify-items: center;
    padding-bottom: 1rem;
    /* margin-right: 2rem; */
    /* margin-left: 2rem; */
    /* padding-top: 1.5rem; */
}

.two-grid-top-right {
    grid-column: 2;
    justify-self: right;
    padding: 0;
}

.three-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    grid-template-rows: auto;
    grid-gap: 10px;
    align-items: center;
    justify-content: center;
}

.profile-grid {
    display: grid;
    grid-template-columns: 1fr 2fr;
    grid-template-rows: auto;
    grid-gap: 10px;
    align-items: center;
    justify-content: center;
    justify-items: center;
    margin-right: 2rem;
    margin-left: 2rem;
    padding-top: 1.5rem;
    padding-bottom: 1rem;
}

.stack {
    display: grid;
    align-items: flex-end;
    justify-items: center;
    justify-content: center;
}

.three-grid-icon-1 {
    align-self: center;
    grid-column: 1;
    grid-row: 1;
    justify-self: center;
    margin-bottom: 10px;
    max-width: 55%;
    text-align: center;
}

.three-grid-icon-2 {
    align-self: center;
    grid-column: 2;
    grid-row: 1;
    justify-self: center;
    margin-bottom: 10px;
    max-width: 55%;
    text-align: center;
}

.three-grid-icon-3 {
    align-self: center;
    grid-column: 3;
    grid-row: 1;
    justify-self: center;
    margin-bottom: 10px;
    max-width: 55%;
    text-align: center;
}

.three-grid-label-1 {
    align-self: center;
    grid-column: 1;
    grid-row: 1;
    justify-self: center;
    text-align: center;
}

.three-grid-label-2 {
    align-self: center;
    grid-column: 2;
    grid-row: 1;
    justify-self: center;
    text-align: center;
}

.three-grid-label-3 {
    align-self: center;
    grid-column: 3;
    grid-row: 1;
    justify-self: center;
    text-align: center;
}

.grid-column-1 {
    grid-column: 1;
}

.grid-column-2 {
    grid-column: 2;
    justify-self: left;
}

.grid-column-3 {
    grid-column: 3;
}

/*
 * HTML
 */

html {
  height: 100%;

  --background: var(--background);
  --button-background: var(--button-background);
  --button-border: var(--button-border);
  --button-text-color: var(--text-color-normal);
  --button-text-hover-color: var(--text-color-normal);
  --circle-background: var(--circle-background);
  --circle-small-hover-background: var(--circle-small-hover-background);
  --icon-color: var(--icon-normal);
  --list-background: var(--list-background);
  --nav-icon-color: var(--nav-icon-color);
  --text-color: var(--text-color-normal);
}

html[data-theme='dark'] {
  --background: var(--background-dark);
  --button-background: var(--button-background-dark);
  --button-border: var(--button-border-dark);
  --button-text-color: var(--text-color-light);
  --button-text-hover-color: var(--text-color-normal);
  --capsule-background: var(--capsule-background-dark);
  --circle-background: var(--circle-background-dark);
  --circle-small-hover-background: var(--circle-small-hover-background-dark);
  --icon-color: var(--icon-light);
  --list-background: var(--list-background-dark);
  --nav-icon-color: var(--nav-icon-color-light);
  --text-color: var(--text-color-light);
  --text-color-gray: var(--text-color-light-gray);
}

/*
 * FLASH MESSAGE
 */

.flash-message {
    font-family: var(--sans-serif);
    font-size: var(--font-size-6);
    /*margin-left: 2rem;*/
    /*margin-right: 2rem;*/
    margin-top: 1rem;
    width: 14rem;
}

/*
 * FONTS
 */

.font-normal {
    color: var(--text-color);
}

.font-near-black {
    color: var(--near-black);
}

.font-gray {
    color: var(--text-color-gray);
}

.font-light-gray {
    /* color: var(--silver); */
    color: var(--text-color-light-gray);
}

/*
 * FORMS
 */

form {
    width: 90%;
}

@media only screen and (min-width: 600px) {
    form {
        width: 100%;
    }
}

/*
 * ICONS
 */

.icon {
    width: 3rem;
}

.icon-small {
    width: 1rem;
}

.icon-medium {
    width: 2rem;
}

.icon-large {
    width: 5rem;
}

.icon-100 {
    width: 100%;
}

/* icon-active: sets color of icon svg to near-black */
.icon-active {
    filter: var(--icon-color);
}

/* icon-inactive: sets color of icon svg to gray */
.icon-inactive {
    filter: var(--icon-gray);
}

/*
 * INPUTS
 */

.input {
    /* Needed to render inputs & buttons of equal width */
    -moz-box-sizing: border-box;
    -webkit-box-sizing: border-box;
    box-sizing: border-box;
    /* margin-top: 0.5rem; */
    margin-bottom: 1rem;
    padding-left: 5px;
    line-height: 1.5rem;
    width: 80%;
}

.form-input {
    margin-bottom: 0;
    margin-left: 0px;
    border: 0px;
    padding-left: 5px;
    line-height: 1.5rem;
    width: 100%;
}

.message-input {
    height: 7rem;
    margin-top: 0.5rem;
    overflow: auto;
    resize: vertical;
    width: 100%;
}

.alert-input {
    /* Needed to render inputs & buttons of equal width */
    -moz-box-sizing: border-box;
    -webkit-box-sizing: border-box;
    box-sizing: border-box;
    margin-right: 0.25rem;
    padding-right: 0.25rem;
    text-align: right;
    width: 7rem;
}

.input-wrapper {
    margin-bottom: 15px;
}

/*
 * LABELS
 */

.label-small {
    font-family: var(--sans-serif);
    font-size: var(--font-size-7);
    display: block;
    margin-bottom: 2px;
}

.label-medium {
    font-size: var(--font-size-3);
    display: block;
}

.label-large {
    font-size: var(--font-size-2);
    display: block;
}

.label-ellipsis {
    overflow: hidden;
    text-overflow: ellipsis;
    /*width: 10rem;*/
}

.input-label {
    margin-bottom: 0.4rem;
}

/*
 * LINKS
 */

.link {
    text-decoration: none;
    color: var(--text-color);
}

.link:hover {
    text-decoration: underline;
}

/*
 * LISTS
 */

.list {
    padding-left: 0;
    width: 90%;
    border: 1px solid var(--light-silver);
    border-radius: var(--border-radius-2);
    list-style-type: none;
    font-family: var(--sans-serif);
}

@media only screen and (min-width: 600px) {
    .list {
        width: 100%;
        max-width: var(--max-width-6);
    }
}

.list-container {
    width: var(--max-width-5);
}

.list-icon {
    align-self: center;
    justify-self: right;
    grid-column: 2;
    grid-row: 1/3;
}

.list-item {
    background-color: var(--list-background);
    display: grid;
    padding: 1rem;
    border-bottom-color: var(--light-silver);
    border-bottom-style: solid;
    border-bottom-width: 1px;
}

.list-text {
    justify-self: left;
    grid-column: 1;
    grid-row: 1;
    margin: 0;
    font-size: var(--font-size-5);
}

.list-label {
    justify-self: left;
    grid-column: 1;
    grid-row: 2;
}

/*
 * MAIN
 */

main {
  flex: 1 0 auto;
}

/*
 * METERS
 */

meter {
    border: 1px solid #ccc;
    border-radius: 3px;
    display: block;
    /* height: 1rem; */
    margin: 0 auto;
    margin-bottom: 1rem;
    width: 100%;
    /* remove default styling */
    -webkit-appearance: none;
       -moz-appearance: none;
            appearance: none;

    /* Firefox */
    background: none; /* remove default background */
    background-color: var(--near-white);
    box-shadow: 0 5px 5px -5px #333 inset;
}

meter::-webkit-meter-bar {
    background: none; /* remove default background */
    background-color: var(--near-white);
    box-shadow: 0 5px 5px -5px #333 inset;
}

meter::-webkit-meter-optimum-value {
    background-size: 100% 100%;
    box-shadow: 0 5px 5px -5px #999 inset;
    transition: width .5s;
}

/* Firefox styling */
meter::-moz-meter-bar {
    background: var(--mid-gray);
    background-size: 100% 100%;
    box-shadow: 0 5px 5px -5px #999 inset;
}

.meter-gauge {
    background-color: var(--near-white);
    border: 1px solid #ccc;
    border-radius: 3px;
    box-shadow: 0 5px 5px -5px #333 inset;
    display: block;
}

/* Chrome styling */
.meter-gauge > span {
    background: var(--mid-gray);
    background-size: 100% 100%;
    box-shadow: 0 5px 5px -5px #999 inset;
    display: block;
    height: inherit;
    text-indent: -9999px;
}

/*
 * NAVIGATION
 */

.nav-bar {
    display: flex;
    align-items: center;
    width: 100%;
    height: 2em;
    padding-top: 1rem;
    padding-bottom: 1rem;
    justify-content: space-between;
}

.nav-title {
    color: var(--text-color);
    font-family: var(--sans-serif);
    font-size: var(--font-size-4);
    font-weight: normal;
    margin: 0;
}

.nav-icon {
    width: auto;
    height: 90%;
    cursor: pointer;
}

.nav-icon-left {
    float: left;
    padding-left: 10px;
}

.nav-icon-right {
    float: right;
    padding-right: 10px;
}

.nav-item {
    display: inline-block;
    list-style-type: none;
}

/*
 * PARAGRAPHS
 */

p {
    font-family: var(--sans-serif);
    overflow-wrap: anywhere;
}

/*
 * SWITCHES / SLIDERS
 */

/* switch: the box around the slider */
.switch {
    display: inline-block;
    height: 34px;
    position: relative;
    width: 60px;
}

/* hide default HTML checkbox */
.switch input {
    height: 0;
    opacity: 0;
    width: 0;
}

.switch-icon-left {
    align-self: center;
    grid-column: 1;
    grid-row: 1;
    justify-self: center;
}

.switch-icon-right {
    align-self: center;
    grid-column: 3;
    grid-row: 1;
    justify-self: center;
}

.slider {
    background-color: var(--moon-gray);
    bottom: 0;
    cursor: pointer;
    left: 0;
    position: absolute;
    right: 0;
    top: 0;
    transition: .4s;
    -webkit-transition: .4s;
}

.slider:before {
    background-color: var(--white);
    bottom: 4px;
    content: "";
    height: 26px;
    left: 4px;
    position: absolute;
    transition: .4s;
    -webkit-transition: .4s;
    width: 26px;
}

input:checked + .slider {
    background-color: var(--near-black);
}

input:focus + .slider {
    box-shadow: 0 0 1px var(--near-black);
}

input:checked + .slider:before {
    -ms-transform: translateX(26px);
    transform: translateX(26px);
    -webkit-transform: translateX(26px);
}

.slider.round {
    border-radius: 34px;
}

.slider.round:before {
    border-radius: 50%;
}

/*
 * TEXT
 */

.text-info {
    color: var(--info);
}

.text-danger {
    color: var(--danger);
}

.text-success {
    color: var(--success);
}

.text-warning {
    color: var(--warning);
}

/*
 * TITLES
 */

.title-medium {
    font-size: var(--font-size-4);
    font-family: var(--sans-serif);
    max-width: var(--max-width-6);
}
