﻿/* Layout */
.ch { margin: 0 auto; display: block }

/* Flex Alignments */
.df { display: flex }
.fsb { display: flex; flex-direction: row; justify-content: space-between }
    .fsb.equalwidth > div { flex: 1;min-width: 0; }
.val { display: flex; flex-direction: row; align-items: center; gap: 5px; }
.flo { display: flex; flex-wrap: wrap; gap: 5px; }
.aib { align-items: flex-end }
.ais { align-items: flex-start }

/* Flex Columns */
.fc { display: flex; justify-content: space-between; align-items: flex-start; width: 100%; max-width: 1200px; margin: 0 auto; }
    .fc.two > div:nth-child(1) { text-align: left; flex: 0 1 auto; }
    .fc.two > div:nth-child(2) { text-align: right; flex: 0 1 auto; margin-left: auto; }

/* Height */
.h5 { height: 5px }
.h10 { height: 10px }
.h16 { height: 16px }
.h18 { height: 18px }
.h20 { height: 20px }
.h24 { height: 24px }
.h25 { height: 25px }
.h30 { height: 30px }
.h40 { height: 40px }
.h50 { height: 50px }
.h80 { height: 80px }
.h200 { height: 200px;min-height:200px }
.h100p { height: 100% }

/* Width */
.w25 { width: 25px !important; min-height: 1px; }
.w50 { width: 50px !important; min-height: 1px; }
.w60 { width: 60px !important; min-height: 1px; }
.w75 { width: 75px !important; min-height: 1px; }
.w80 { width: 80px !important; min-height: 1px; }
.w100 { width: 100px !important; min-height: 1px; }
.w110 { width: 110px !important; min-height: 1px; }
.w125 { width: 125px !important; min-height: 1px; }
.w150 { width: 150px !important; min-height: 1px; }
.w175 { width: 175px !important; min-height: 1px; }
.w200 { width: 200px !important; min-height: 1px; }
.w250 { width: 250px !important; min-height: 1px; }
.w300 { width: 300px !important; min-height: 1px; }
.w400 { width: 400px !important; min-height: 1px; }
.w500 { width: 500px !important; min-height: 1px; }
.w600 { width: 600px !important; min-height: 1px; }
.w700 { width: 700px !important; min-height: 1px; }
.w750 { width: 750px !important; min-height: 1px; }
.w50p { width: 50% !important }
.w100p { width: 100% !important }

/* Padding */
.p3 { padding: 3px }
.p5 { padding: 5px }
.p10 { padding: 10px }
.p15 { padding: 15px }
.p20 { padding: 20px }
.pl0 { padding-left: 0px }
.pl3 { padding-left: 3px }
.pl5 { padding-left: 5px }
.pl10 { padding-left: 10px }
.pl15 { padding-left: 15px }
.pl20 { padding-left: 20px }
.pl50 { padding-left: 50px }
.pl100 { padding-left: 100px }
.pl110 { padding-left: 110px }
.pr0 { padding-right: 0px }
.pr5 { padding-right: 5px }
.pr10 { padding-right: 10px }
.pr15 { padding-right: 15px }
.pr20 { padding-right: 20px }
.pr50 { padding-right: 50px }
.pr100 { padding-right: 100px }
.pt2 { padding-top: 2px }
.pt3 { padding-top: 3px }
.pt5 { padding-top: 5px }
.pt10 { padding-top: 10px }
.pt20 { padding-top: 20px }
.pt50 { padding-top: 50px }
.pb5 { padding-bottom: 5px }
.pb10 { padding-bottom: 10px }
.pb20 { padding-bottom: 20px }
.pb50 { padding-bottom: 50px }

/* Margins */
.ml0 { margin-left: 0px !important }
.ml1 { margin-left: 1px !important }
.ml5 { margin-left: 5px !important }
.ml10 { margin-left: 10px !important }
.ml15 { margin-left: 15px !important }
.ml20 { margin-left: 20px !important }
.ml25 { margin-left: 25px !important }
.ml50 { margin-left: 50px !important }
.ml100 { margin-left: 100px !important }
.mr0 { margin-right: 0px !important }
.mr1 { margin-right: 1px !important }
.mr5 { margin-right: 5px !important }
.mr10 { margin-right: 10px !important }
.mr15 { margin-right: 15px !important }
.mr20 { margin-right: 20px !important }
.mr25 { margin-right: 25px !important }
.mr50 { margin-right: 50px !important }
.mr100 { margin-right: 100px !important }
.mt0 { margin-top: 0px !important }
.mt1 { margin-top: 1px !important }
.mt5 { margin-top: 5px !important }
.mt10 { margin-top: 10px !important }
.mt20 { margin-top: 20px !important }
.mt25 { margin-top: 25px !important }
.mb5 { margin-bottom: 5px !important }
.mb10 { margin-bottom: 10px !important }
.mb15 { margin-bottom: 15px !important }
.mb20 { margin-bottom: 20px !important }
.mb25 { margin-bottom: 25px !important }

/* Wrapping */
.nw { white-space: nowrap }

/* Border */
.br5 { border-radius: 5px }

.ib { display: inline-block }
.fl { float: left; }
.fr { float: right }
.cf { clear: both }

.oh { overflow: hidden }
.oxa { overflow-x: auto }
.oya { overflow-y: auto }

.pab { position: absolute }
.prel { position: relative }

.dn { display: none }
.ib { display: inline-block; }
.dib { display: inline-block; vertical-align: top }

/* Text Alignment */
.tac { text-align: center; }
.tar { text-align: right; }
.vat { vertical-align: top }

/* Edit Pages */
.editor { padding: 5px; display: flex; flex-direction: column; overflow: hidden; height: calc(100vh - 80px) /* Ensure editor doesn't scroll */ }
    .editor > :nth-child(1) { width: 100%; height: 40px; display: flex; flex-direction: row; align-items: center; border-radius: 3px 3px 0 0; background-color: #253d75; color: #fff; padding: 0px 5px 0px 5px; justify-content: space-between; }
        .editor > :nth-child(1) > div { display: flex; flex-direction: row; align-items: center; gap: 5px; }
    .editor > :nth-child(2) { flex: 1; overflow-y: auto; }
    .editor.border > :nth-child(2) { border-left: solid 2px #253d75; border-right: solid 2px #253d75; }

    .editor.noflex { }
        .editor.noflex > :nth-child(1) { display: block; height: auto }
            .editor.noflex > :nth-child(1) > div { display: block }

/* Tiles */
.tile-container2 { display: grid; grid-template-columns: repeat(2, 1fr); gap: 20px; padding: 15px 10px; width: 100%; max-width: 1440px; margin: 0 auto; box-sizing: border-box; }
.tile-container3 { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; padding: 15px 10px; width: 100%; max-width: 1440px; margin: 0 auto; box-sizing: border-box; }
.tile { background-color: #fff; padding: 10px; border-radius: 5px; box-shadow: 5px 5px 15px -3px rgba(0,0,0,0.1); }
    .tile > .header { font-size: 20px; line-height: 20px; padding-bottom: 10px; border-bottom: solid 1px #ccc }
    .tile > .content { margin: 10px 0 20px 0; padding: 0 5px 0 0; overflow-y: auto; white-space: nowrap }
        .tile > .content a { color: #000 }
            .tile > .content a:hover { text-decoration: underline }
    .tile.centered { margin: 0 auto }

/* Config Sections */
.configsection { display: grid; grid-template-columns: auto 750px; justify-content: center; width: 100%; }
    .configsection > div:nth-child(2n-1) { vertical-align: top; padding-top: 10px; padding-right: 20px; justify-self: end; text-align: right }
    .configsection > div:nth-child(2n) { width: 750px; background: #fff; border-radius: 8px; padding: 15px; box-shadow: 5px 5px 15px -3px rgba(0,0,0,0.1); margin-bottom: 20px; justify-self: center; }
    .configsection > div.hidden { position: absolute; visibility: hidden; height: 0; width: 0; overflow: hidden; }
        .configsection > div.hidden + div { position: absolute; visibility: hidden; height: 0; width: 0; overflow: hidden; }

/* Form alignment */
.formalign { position: relative; display: flex; flex-direction: row; align-items: center; gap: 5px; min-height: min-content; margin-bottom: 3px }
    .formalign.top { align-items: flex-start; }
    .formalign label { margin-right: 5px; width: 100px; }
        .formalign label.top { align-self: flex-start; padding-top: 5px; }
    .formalign input { margin-right: 5px; }
    .formalign label.w100 { width: 100px; }
    .formalign label.w150 { width: 150px; }
    .formalign label.w200 { width: 200px; }
    .formalign label.w250 { width: 250px; }

/* Compulsory marker */
.compulsory::after { content: '*'; color: #d00; position: absolute; margin-top: -5px; font-size: 18px }
