body {
    margin: 0px;
}

/* INDEX 2024 */

.xz-index2024-stripes {
    display: flex;
    flex-direction: column;
}

.xz-index2024-stripe {
    display: flex;
    justify-content: space-around;
    padding: 2rem;
}

img.xz-index2024-img {
  width: 25%;
  height: 18.75%;
  object-fit: contain;
  border-radius: 10px;
  filter: drop-shadow( 0 0 0.75rem var( --sl-color-neutral-1000 ) );
}

p.xz-index2024-p {
  width: 50%;
  text-align: justify;
}

/* FONTS */

@font-face {
    font-family: 'TopSecret';
    font-style: normal;
    src: url( './fonts/top-secret.regular.ttf' )
}

@font-face {
    font-family: 'Typewriter';
    font-style: normal;
    src: url( './fonts/ATypewriterForMe.ttf' )
}

.xz-font-topsecret {
    font-family: 'TopSecret';
}

.xz-font-typewriter {
    font-family: 'Typewriter';
}

/* APP STYLES */

.navbar {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 0.5rem;
}

.tools-flex-gap {
    display: flex;
    gap: var( --sl-spacing-2x-small );
}

.flex-gap, .sl-radio-horizontal::part(base) {
    display: flex;
    gap: var( --sl-spacing-small );
}

/* using this one for "horizontal" mode of form builder radio group */
/* not sure if the shoelace parts changed or if i just did something */
/* different with the one above this? */
.xz-radiogroup-horiz::part(form-control-input) {
    display: flex;
    gap: var( --sl-spacing-small );
}

.flex-col-start {
    display: flex;
    flex-direction: column;
}

.flex-col-gap {
    display: flex;
    flex-direction: column;
    gap: var( --sl-spacing-small );
}

.logo {
    display: 'flex'; /* this is an invalid property */
    flex-direction: 'column'; /* this is an invalid property */
    margin: 0px;
}

.heading-icon {
    margin-right: var( --sl-spacing-small );
    color: var( --sl-color-primary-600 );
}

.form-row {
    display: flex;
    justify-content: space-between;
    gap: var( --sl-spacing-medium );
    margin-bottom: var( --sl-spacing-medium );
}

.form-row-flex-start {
    display: flex;
    gap: var( --sl-spacing-medium );
    margin-bottom: var( --sl-spacing-medium );
}

.form-row-dui {
    display: flex;
    width: 80ch;
    justify-content: space-between;
    gap: var( --sl-spacing-2x-large ); 
    align-items: center;
}

.form-row-dui-item {
    display: flex;
    justify-content: space-between;
    flex: 1;
    gap: var( --sl-spacing-medium );
    align-items: center;
}

div.dui-maneuver .form-row-dui:nth-child( even ) {
    background-color: var( --sl-color-neutral-50 );
}

.form-row-flex-end {
    display: flex;
    justify-content: flex-end;
    gap: var( --sl-spacing-medium );
    margin-bottom: var( --sl-spacing-medium );
}

/* THIS CHANGES DEFAULT BEHAVIOR OF NO FLEX-GROW ON CERTAIN INPUTS */
.form-row > sl-input, sl-textarea, sl-select {
    flex-grow: 1;
}

fieldset {
    /*
    border-radius: var( --sl-input-border-radius-medium );
    border: solid var( --sl-input-border-width ) var( --sl-input-border-color );
    */
    border: none;
}

/*
 * https://shoelace.style/components/input#customizing-label-position
 */

.label-on-left::part(form-control) {
    display: flex;
    align-items: center;
    gap: 1rem; }

.label-on-left::part(form-control-label) {
    flex: 0 0 auto;
    /*width: 60px;*/
    text-align: right;
}

.label-on-left::part(form-control-input) {
    flex: 1 1 auto;
}

xz-gen-cmp-preset-picker, xz-gen-cmp-offense-picker {
    flex: 1 0 auto;
}

xz-gen-cmp-victims, xz-gen-cmp-codefs, xz-gen-cmp-persons {
    flex: 1 0 auto;
}

.page-wrapper {
    position: relative;
    min-height: 100vh;
}

.content-wrapper {
    padding-bottom: calc( 3rem + var( --sl-spacing-large ) + var( --sl-spacing-large ) );
}

div.content {
    padding: 0.5rem
}

.footer {
    position: absolute;
    bottom: 0;
    width: 100%;
    height: 3rem;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    padding-top: var( --sl-spacing-large );
    padding-bottom: var( --sl-spacing-large );
}

.footer > p {
    margin-bottom: var( --sl-spacing-3x-small );
}

.gen-form-card {
    display: block;
    margin: var( --sl-spacing-medium );
}

sl-card.gen-form-card {
  --padding: var( --sl-spacing-medium );
}

.loading-wrapper {
    display: flex;
    justify-content: center;
    align-items: center;
    padding: 5rem;
}

img.bordered {
    display: block;
    margin-left: auto;
    margin-right: auto;
    max-width: 99%;
    border: 1px solid var( --sl-color-neutral-500 );
    border-radius: var( --sl-border-radius-large );
    margin-bottom: var( --sl-spacing-small );
}

a.unstyled {
    color: inherit;
    text-decoration: inherit;
}

.hidden {
    display: none;
}

.text-button-warning::part( base ) {
    color: var( --sl-color-warning-600 );
}

/*
sl-textarea.nowrap::part(textarea) {
    white-space: pre;
}
*/

table {
    border-collapse: collapse;
}

table td {
    padding: var( --sl-spacing-small );
}

table thead td {
    text-align: center;
    font-weight: bold;
}

table.striped > tbody > tr:nth-child( even ) {
    background-color: var( --sl-color-neutral-50 );
}

table.hoverlight tbody > tr:hover {
    background-color: var( --sl-color-primary-50 );
}

table.tinyspacing td {
    padding: var( --sl-spacing-3x-small ) !important;
}

.copied-toaster {
    background-color: var( --sl-color-neutral-800);
    color: var( --sl-color-neutral-0 );
    padding: var( --sl-spacing-2x-small );
    border-radius: var( --sl-border-radius-medium );
}

.flex-the-EasyMDEContainer > .EasyMDEContainer {
    flex: 3 1 auto;
}

tr.user-deleted {
    background-color: var( --sl-color-red-50 ) ! important;
}

sl-alert.index-page-alert::part( base ) {
    max-width: 80ch;
    align-self: center;
}

body.sl-theme-dark {
    background-color: #121212;
    color: #efefef;
}

div.xz-lib > sl-card:nth-child( even )::part( base ) {
    background-color: var( --sl-color-neutral-100 );
}


div.xz-lib > .xz-formitem:nth-child( even ) {
    background-color: var( --sl-color-neutral-100 );
}

/* INDEX PAGE */

.xz-index-content {
    align-items: center;
    width: 60vw;
    margin: 0 auto;
}

.xz-index-taglines {
    align-items: center;
}

.xz-index-splash-btns {
    display: flex;
    gap: var( --sl-spacing-4x-large );
    justify-content: center;
    margin-bottom: var( --sl-spacing-large );
}

/* BUILDER PAGE */

.xz-bldr-halo-tools {
    display: flex;
    gap: var( --sl-spacing-small );
    margin-bottom: var( --sl-spacing-small );
    visibility: hidden;
}

.xz-bldr-tools-parent {
    outline: 1px solid transparent;
}

.xz-bldr-tools-parent:hover > .xz-bldr-halo-tools {
    visibility: visible;
}

/* THIS CHANGES DEFAULT BEHAVIOR OF NO FLEX-GROW ON CERTAIN INPUTS */
.form-row > xz-bldr-halo-field {
    flex-grow: 1;
}

xz-bldr-halo-section, xz-bldr-halo-row {
    margin-top: 5px;
    padding-top: 5px;
    background-size: 100% var( --sl-spacing-large );
    background-repeat: no-repeat;
}

xz-bldr-halo-section {
    display: flex;
    /*
    background-image: linear-gradient( 180deg, var( --sl-color-primary-200 ), transparent );
    */
    border-top: 3px dashed var( --sl-color-primary-700 );
}

xz-bldr-halo-row {
    display: flex;
    /*
    background-image: linear-gradient( 180deg, var( --sl-color-success-200 ), transparent );
    */
    border-top: 1px dashed var(--sl-color-primary-800);
}

xz-bldr-halo-field {
    margin-left: 5px;
    padding-left: 5px;
    /*
    background-size: var( --sl-spacing-large ) 100%;
    background-repeat: no-repeat;
    background-image: linear-gradient( 90deg, var( --sl-color-danger-200 ), transparent );
    */
    background-color: var(--sl-color-neutral-800);
    border: 1px solid var(--sl-color-neutral-200);
    background: repeating-linear-gradient( -45deg, color-mix(in srgb, var(--sl-color-neutral-200) 50%, transparent), color-mix(in srgb, var(--sl-color-neutral-200) 50%, transparent) 10px, var(--sl-color-neutral-0) 10px, var(--sl-color-neutral-0) 60px );
}


/* BEGIN CLASSES FOR MEDIA QUERIES FOR MOBILE STYLES */

@media (max-width: 1024px) {
    body {
        margin: 0;
    }

    .navbar {
        padding: 0px;
    }

    div.content {
        padding: 0px;
    }

    sl-button-group::part(base) {
        flex-wrap: wrap;
    }
    
    .flex-gap {
        flex-wrap: wrap;
    }

    .form-row {
        flex-wrap: wrap;
    }

    .form-row-flex-start {
        flex-wrap: wrap;
    }

    .xz-index-content {
        width: 100vw;
    }

    .xz-index-taglines {
        margin: 0;
        text-align: center;
    }

    .xz-index-splash-btns {
        flex-direction: column;
        gap: var( --sl-spacing-small );
    }

    .xz-index-auth-btn {
        align-self: flex-end;
    }

    .xz-app-menu {
        flex-direction: column;
    }

    .xz-app-menu > * {
        flex: 1;
    }

    .xz-app-menu sl-dropdown {
        width: 100%;
    }

    .xz-app-menu sl-dropdown > sl-button {
        width: 100%;
    }
}

/* Badge palette — 12 Tableau-inspired muted colors */
:root {
  --badge-steel-blue-bg: #D4DEE9; --badge-steel-blue-fg: #3A5277;
  --badge-orange-bg:     #F6E0C6; --badge-orange-fg:     #8A5B22;
  --badge-coral-bg:      #F2D0CE; --badge-coral-fg:      #8C3C38;
  --badge-teal-bg:       #D2E6E4; --badge-teal-fg:       #3E7874;
  --badge-olive-bg:      #D8E5C8; --badge-olive-fg:      #42692E;
  --badge-gold-bg:       #F2E5C0; --badge-gold-fg:       #7E6520;
  --badge-plum-bg:       #E0D2DC; --badge-plum-fg:       #644B60;
  --badge-pink-bg:       #F5D5DA; --badge-pink-fg:       #8A4550;
  --badge-tan-bg:        #E0D4C8; --badge-tan-fg:        #5E4638;
  --badge-silver-bg:     #DDD9D6; --badge-silver-fg:     #585350;
  --badge-sage-bg:       #D0E0D4; --badge-sage-fg:       #38604A;
  --badge-lavender-bg:   #DDDAF0; --badge-lavender-fg:   #3E3870;
}

body.sl-theme-dark {
  --badge-steel-blue-bg: #3A5277; --badge-steel-blue-fg: #C8D4E2;
  --badge-orange-bg:     #7E5320; --badge-orange-fg:     #F0D4B0;
  --badge-coral-bg:      #7E3634; --badge-coral-fg:      #ECC2BF;
  --badge-teal-bg:       #387270; --badge-teal-fg:       #C4DBD8;
  --badge-olive-bg:      #3C6028; --badge-olive-fg:      #C8DAB2;
  --badge-gold-bg:       #726020; --badge-gold-fg:       #EDDCAC;
  --badge-plum-bg:       #5A4458; --badge-plum-fg:       #D5C4D0;
  --badge-pink-bg:       #7C404A; --badge-pink-fg:       #F0C8CE;
  --badge-tan-bg:        #564134; --badge-tan-fg:        #D6C8BA;
  --badge-silver-bg:     #504C4A; --badge-silver-fg:     #D2CDCA;
  --badge-sage-bg:       #345A44; --badge-sage-fg:       #C2D6C8;
  --badge-lavender-bg:   #3A3568; --badge-lavender-fg:   #D0CCE8;
}

dialog {
    min-width: 50vw;
}

dialog::backdrop {
    background-color: rgba( 0, 0, 0, 0.65 );
}
