@charset "UTF-8";

@font-face {
    font-family: 'gicon';
    src: url('font/garradin.eot?2022');
    src: url('font/garradin.eot?2022#iefix') format('embedded-opentype'),
        url('font/garradin.woff?2022') format('woff'),
        url('font/garradin.woff2?2022') format('woff2'),
        url('font/garradin.ttf?2022') format('truetype'),
        url('font/garradin.svg?2022#garradin') format('svg');
    font-weight: normal;
    font-style: normal;
}

body, div, dl, dt, dd, ul, ol, li, h1, h2, h3, h4, h5, h6, 
pre, form, fieldset, input, textarea, p, blockquote, th, td,
figure, article, aside, section, header, footer { 
    padding: 0;
    margin: 0;
}
fieldset, img { 
    border: 0;
}
table {
    border-collapse: collapse;
    border-spacing: 0;
}
ol, ul {
    list-style: none;
}
caption, th {
    text-align: left;
}
article, aside, figure, section, header, footer, main { display: block; }

span { display: inline-block; }

h1  { font-size: 2em; }
h2  { font-size: 1.5em; }
h3  { font-size: 1.2em; }
h4  { font-size: 1em; }
h5  { font-size: 0.9em; }
h6  { font-size: 0.8em; }/*
    marron : #9c4f15 rgb(156, 79, 21)
    orange : #d98628 rgb(217, 134, 40)
*/

/* Light colors */
:root {
    --gBgColor: 255, 255, 255;
    --gTextColor: 0, 0, 0;
    --gBorderColor: #666;
    --gLightBorderColor: #ccc;
    --gLightBackgroundColor: #eee;
    --gLinkColor: blue;
    --gHoverLinkColor: 127, 0, 0;

    --gMainColor: 156, 79, 21;
    --gSecondColor: 217, 134, 40;
    --gBgImage: url("gdin_bg.png");
}

/* Dark colors */
html.dark {
    --gBgColor: 30, 30, 30;
    --gTextColor: 225, 225, 225;
    --gBorderColor: #999;
    --gLightBorderColor: #333;
    --gLightBackgroundColor: #222;
    --gLinkColor: #99f;
    --gHoverLinkColor: 250, 127, 127;
}

html {
    width: 100%;
    height: 100%;
}

body {
    font-size: 100%;
    color: rgb(var(--gTextColor));
    font-family: "Trebuchet MS", Arial, Helvetica, Sans-serif;
    padding-bottom: 1em;
    background: rgb(var(--gBgColor)) var(--gBgImage) no-repeat 0px 0px fixed;
}

main {
    margin: 0px 1em 1em 180px;
    position: relative;
}

main img {
    max-width: 100%;
}

a {
    color: var(--gLinkColor);
}

a:hover {
    color: rgb(var(--gHoverLinkColor));
}

.header h1 {
    color: rgb(var(--gMainColor));
    margin-left: 180px;
    margin-bottom: 0.4em;
}

.header .menu .logo {
    padding: 0;
    min-height: 100px;
}

.header .menu .logo img {
    transition: opacity .2s;
}

.header .menu .logo a {
    padding: 10px;
    padding-bottom: 0;
    display: inline-block;
    text-align: center;
    color: inherit;
    width: 150px;
}

.header .menu {
    position: fixed;
    overflow: auto;
    z-index: 1000;
    width: 170px;
    top: 0;
    bottom: 0;
    background: rgb(var(--gMainColor)) var(--gBgImage) no-repeat 0px 0px;
}

.header .menu::-webkit-scrollbar {
    width: 8px;
    background: rgba(var(--gBgColor), 0.25);
    box-shadow: inset 0px 0px 10px #666;
}

.header .menu::-webkit-scrollbar-thumb {
    background: rgba(var(--gBgColor), 0.5);
    border-radius: 10px;
}

.header .menu h3 {
    font-weight: bold;
    font-size: inherit;
}

.header .menu a {
    color: #fff;
    color: rgb(var(--gBgColor));
    font-weight: bold;
    padding: 0.4em 0.4em 0.4em 1em;
    display: block;
    text-decoration: none;
    transition: background .3s;
}

.header .menu a:hover {
    text-decoration: underline;
    background: rgba(var(--gSecondColor), 0.5);
}

.header .menu li li a {
    font-size: 0.8em;
    padding-left: 2em;
}

.header .menu li.current h3 a, .header .menu ul ul li.current a {
    background: rgb(var(--gBgColor));
    color: rgb(var(--gMainColor));
}

.header .menu h3 a {
    position: relative;
}

.header .menu h3 b[data-icn]::before {
    position: absolute;
    right: .4rem;
    content: attr(data-icn);
    display: block;
    font-family: "gicon";
    float: right;
    text-decoration: none;
    margin-top: -.2em;
    font-size: 20pt;
    color: rgba(var(--gBgColor), .5);
    font-weight: normal;
}

.header .menu li.current h3 b[data-icn]::before {
    color: rgba(var(--gMainColor));
}

ul.gallery {
    text-align: center;
}

ul.gallery li {
    display: inline-block;
    margin: .3em;
    vertical-align: middle;
    width: 150px;
}

ul.gallery li img {
    max-width: 150px;
    max-height: 150px;
}

ul.gallery .actions {
    text-align: center;
    z-index: 100;
}

ul.gallery figcaption {
    font-size: .8em;
    overflow: hidden;
    text-align: center;
}

body.public, body.raw {
    background: none;
}

body.raw main {
    margin: 0;
}

body.public main {
    max-width: 650px;
    margin: 2em auto;
}

body.public main legend {
    font-size: 1.3em;
}

body.public main dl {
    padding: 1em 0;
}

body.public main p.block.error, body.public main p.block.alert {
    margin: 2em 0;
    font-size: 1.2em;
}
/** Alert, confirm and error messages */
h3.warning {
    margin: 1em;
    color: red;
}

span.error, b.error {
    color: #900;
}

span.confirm, b.confirm {
    color: #090;
}

span.alert, b.alert {
    color: #990;
}

.alert p, .error p, .confirm p {
    margin-bottom: .8em;
}

.block table {
    margin: 1rem 0;
}

.block table th, .block table td {
    vertical-align: top;
    padding: .2rem .4rem;
    border: 1px solid var(--gBorderColor);
}

.alert.block, .error.block, .confirm.block, .help.block {
    border: 1px solid var(--gLightBorderColor);
    padding: .5em;
    margin: .5em 0;
    border-radius: .3em;
    padding-left: 3em;
    position: relative;
    clear: both;
    color: #000;
}

.alert.block {
    border-color: #cc0;
    background-color: #ffc;
}

.error.block {
    border-color: #c00;
    background-color: #fcc;
}

.confirm.block {
    border-color: #0c0;
    background-color: #cfc;
}

.help.block {
    color: rgb(var(--gTextColor));
    border-color: var(--gLightBorderColor);
    background-color: var(--gLightBackgroundColor);
}

.confirm.block a.icn-btn, .alert.block a.icn-btn, .error.block a.icn-btn {
    color: #000;
}

.confirm.block::before, .alert.block::before, .error.block::before, .help.block::before {
    font-family: "gicon";
    left: .5em;
    top: .2em;
    position: absolute;
    font-size: 1.5em;
    text-shadow: 2px 2px 5px var(--gLightBorderColor);
}

.confirm.block::before {
    content: "☑";
    color: green;
}

.alert.block::before {
    content: "⚠";
    color: yellow;
}

.error.block::before {
    content: "⚠";
    color: red;
}

.help.block::before {
    content: "❓";
    color: var(--gBorderColor);
}

.help {
    color: var(--gBorderColor);
}

p.help:not(.block) {
    margin: 1em;
}

.help ul li {
    list-style-type: disc;
    margin: .5em;
    margin-left: 2em;
}

dd em.help {
    margin-left: 1em;
}

dd.help li {
    list-style-type: disc;
}

.error ul, .alert ul, .confirm ul {
    margin-left: 1.5em;
    list-style: disc;
}

.ruler {
    margin: .5em;
    text-align: center;
    overflow: hidden;
}

.ruler:before, .ruler:after {
    background-color: var(--gLightBorderColor);
    content: "";
    display: inline-block;
    height: 1px;
    position: relative;
    vertical-align: middle;
    width: 50%;
}

.ruler:before {
    right: 0.5em;
    margin-left: -50%;
}

.ruler:after {
    left: 0.5em;
    margin-right: -50%;
}

.num a, a.num {
    text-decoration: none;
    border-radius: .5rem;
    display: inline-block;
    text-align: center;
    padding: 0 .3rem;
    background: rgba(var(--gMainColor), 0.7);
    color: rgb(var(--gBgColor));
    white-space: pre;
}

.permissions b {
    border: 2px solid #999;
    border-radius: 1em;
    color: #000;
    background: #ccc;
    width: 24px;
    padding: 3px;
    display: inline-block;
    text-align: center;
    font-size: 20px;
    cursor: help;
    vertical-align: middle;
    position: relative;
    z-index: 10;
    font-family: "gicon", "Trebuchet MS", Arial, Helvetica, sans-serif;
    font-weight: normal;
    overflow: hidden;
}

.permissions b.access_0 {
    border-color: #ccc;
    background: #eee;
    color: #999;
}

.permissions b.access_2 {
    border-color: #cc9;
    color: #660;
    background: #ffe;
    border-style: dotted solid;
}

.permissions b.access_1 {
    border-color: #9c9;
    color: #060;
    background: #efe;
    border-style: dashed;
}

.permissions b.access_0::after {
    content: "X";
    position: absolute;
    left: 0;
    right: 0;
    top: -8px;
    color: #ccc;
    z-index: -1;
    font-size: 36px;
    overflow: hidden;
}

.permissions b.access_9 {
    color: #900;
    border-color: #c99;
    background: #fee;
}

.infos {
    margin-bottom: 1em;
}

.infos h3 {
    margin-bottom: 0.5em;
}

.infos p {
    margin-bottom: 0.8em;
}

.infos dl {
    margin-bottom: 0.8em;
}

.infos dl dd {
    margin: 0.2em 1em;
}

.shortForm {
    text-align: center;
}

.shortForm p.help {
    margin: .5em 0;
    font-size: .9em;
}

.shortFormRight {
    width: 30em;
    float: right;
    text-align: center;
    margin-left: 1em;
}

.shortFormLeft p {
    display: inline-block;
}

.shortFormLeft .special {
    display: none;
}

.shortFormRight p.submit {
    margin-top: -2em;
    float: right;
}

.memberList {
    clear: both;
}

.pagination {
    clear: both;
    list-style-type: none;
    padding: 0.4em 0;
    text-align: center;
}

.pagination li {
    display: inline-block;
    margin: 0 0.3em;
}

.pagination li.current {
    font-size: 1.3em;
}

.pagination li a {
    color: #000;
}

.pagination li button {
    color: #000;
    background: transparent;
    border: none;
    padding: 0;
    margin: 0;
    box-shadow: none;
    text-decoration: underline;
}

.templatesList ul {
    margin: 1em 2em;
}

dl.list dt, dl.list dd {
    margin: .3em 0;
}

dl.list dt {
    font-size: 1.2em;
    font-weight: bold;
    margin-top: .8em;
}

dl.list dd.desc {
    color: var(--gLightBorderColor);
}

dl.describe {
    margin-bottom: 1rem;
    display: grid;
    grid-template: auto / 15rem 1fr;
}

dl.describe > dt {
    grid-column: 1;
    margin: .2rem .5rem;
    text-align: right;
    color: var(--gBorderColor);
    align-self: start;
}

dl.describe > dd {
    grid-column: 2;
    margin: .2rem .5rem;
    align-self: center;
}

dl.describe ul {
    margin-left: 1.5em;
    list-style-type: disc;
}

dl.cotisation {
    background: rgba(var(--gSecondColor), 0.2);
    padding: .5em;
    border-radius: .5em;
    margin: 1em;
}

dl.cotisation dt {
    font-weight: bold;
}

dl.cotisation dd {
    margin: .2em 0 .4em 1em;
}

dl.cotisation dd.disabled {
    color: var(--gBorderColor);
}

aside.describe {
    width: 20em;
    float: right;
    margin: .5em;
    background: rgba(var(--gSecondColor), 0.2);
    border-radius: .5em;
    border: 2px solid rgba(var(--gSecondColor), 0.5);
    padding: .5em;
    z-index: 200;
    color: var(--gBorderColor);
}

aside.describe dl.describe {
    display: block;
}

aside.describe dl.describe dt {
    text-align: left;
    font-weight: bold;
    color: rgb(var(--gTextColor));
}

aside.describe dd a.icn-btn, aside.secondary a.icn-btn, aside.secondary button, aside.describe button {
    margin-left: 0;
}

@media handheld,screen and (min-width:1199px) {
    aside.secondary {
        width: 25em;
        float: right;
        margin: 1em;
    }

    aside.secondary fieldset {
        padding: 0;
        border: none;
    }
}

.hidden {
    display: none;
}

img.qrcode {
    float: right;
    padding: .5em;
    border: .5em solid #000;
    background: #fff;
}

details {
    margin-bottom: 1em;
}

details summary {
    list-style: none;
    padding: 0.2em 0.5em;
    transition: background-color .2s;
    position: relative;
    padding-left: 4em;
}

details summary:hover {
    cursor: pointer;
    background-color: rgba(var(--gMainColor), 0.1);
}

details summary::-webkit-details-marker {
    display: none;
}

details summary::after {
    content: "↓";
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    /* From .icn-btn */
    cursor: pointer;
    border: 1px solid rgba(var(--gMainColor), 0.5);
    background-color: rgba(var(--gSecondColor), 0.1);
    user-select: none;
    display: inline-block;
    font-size: inherit;
    border-radius: .2em;
    padding: .2em .4em;
    margin: auto .5em;
    height: 1em;
    white-space: pre;
    transition: color .3s, background-color .3s;
    font-family: "gicon", sans-serif;
    text-shadow: 1px 1px 1px var(--gLightBorderColor);
    font-size: 1.2em;
}

details[open] summary::after {
    content: "↑";
}

details summary:hover::after {
    background-color: rgb(var(--gMainColor));
    color: #fff;
}

details summary.block {
    padding-right: 4em !important;
}

details summary.block::after {
    right: 0;
    left: inherit;
}
.files-list {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
}

.files-list aside.file {
    border-radius: .5rem;
    background: rgba(var(--gSecondColor), 0.1);
    text-align: center;
    padding: .5rem;
    margin: .5rem;
}

.files-list aside small {
    display: block;
    color: var(--gBorderColor);
}

nav.breadcrumbs {
    margin: .5em 0;
    color: var(--gLightBorderColor);
}

nav.breadcrumbs a {
    color: var(--gBorderColor);
}

nav.breadcrumbs ul, nav.breadcrumbs li {
    list-style-type: none;
    display: inline;
}

nav.breadcrumbs li:before {
    content: "> ";
}

nav.breadcrumbs li:first-child:before {
    content: "";
}

nav.breadcrumbs li:last-child a {
    font-weight: bold;
}

nav.breadcrumbs aside {
    float: right;
}

aside.quota {
    background: rgba(var(--gMainColor), 0.1);
    border-radius: .5rem;
    padding: .2rem .5rem;
    color: rgb(var(--gTextColor));
    margin: .5em 0;
}

aside.quota i {
    font-style: normal;
}

aside.quota h4 {
    display: inline-block;
}

.meter {
    min-width: 20rem;
    height: 1rem;
    background: rgba(var(--gSecondColor), 0.5);
    border-radius: .2rem;
    display: inline-flex;
    padding: 0;
    vertical-align: middle;
    margin-left: 1rem;
}

.meter span {
    border-radius: .2rem;
    background: rgb(var(--gMainColor));
    display: inline-block;
    height: 1rem;
    vertical-align: middle;
}

.search-results article {
    margin: 2em 1em;
}

.search-results h4 a {
    font-weight: normal !important;
    font-size: .9em;
    color: #999;
}

.search-results h3 {
    margin: 0;
}

.search-results h3 a {
    font-weight: normal;
}
.search-results .breadcrumbs {
    margin: 0;
    font-size: .9em;
    margin-bottom: .8em;
}

dl.large dt {
    font-size: 1.5em;
    font-weight: bold;
    margin-top: 1em;
    border-top: 1px solid #ccc;
    padding-top: 1em;
    padding-left: 2rem;
}

dl.large dd {
    margin: .5em 0;
    padding-left: 2rem;
}/* Forms */
fieldset {
    border: 1px solid var(--gLightBorderColor);
    padding: 0.8em 1em 0 1em;
    margin-bottom: 1em;
    padding: 0.5em;
}

fieldset legend {
    padding: 0 0.5em;
    font-weight: bold;
    color: rgb(var(--gTextColor));
}

/* Override selector in 06-tables.css */
table tr.clickable:hover, table tr.clickable:nth-child(even):hover {
    cursor: pointer;
    color: #633;
    background: #ffc;
}

table tr.clickable:hover button, table tr.focused button {
    color: rgb(var(--gHoverLinkColor));
}

table tr.focused {
    color: #633;
    background: #ffc !important;
    box-shadow: 0 0 5px .2rem #990;
}

dl dt label {
    font-weight: bold;
}

fieldset dl dt b {
    color: rgb(var(--gHoverLinkColor));
    font-size: 0.7em;
    font-weight: normal;
    vertical-align: super;
}

fieldset dl dt i {
    color: var(--gLightBorderColor);
    font-size: 0.7em;
    font-weight: normal;
    vertical-align: super;
}

fieldset dl dd {
    padding: 0.2em 0.5em 0.2em 1em;
}

fieldset dl dd ol, fieldset dl dd ul {
    margin-left: 1.5em;
}

fieldset dl dl {
    margin: .5em 0 .5em 1.2em;
}

label:hover {
    cursor: pointer;
}

input[type=checkbox] + label:hover {
    border: none;
}

/* We can't use :not([type=checkbox]):not([type=radio]) here as it is too specific
and then it's a mess to override the selector after... */
input[type=text], input[type=number], input[type=color],
input[type=date], input[type=datetime-local], input[type=datetime], input[type=time], input[type=week],
input[type=email], input[type=file], input[type=url], input[type=month],
input[type=password], input[type=range], input[type=search], input[type=tel],
textarea, select, .input-list, .file-selector {
    padding: .4rem .6rem;
    font-family: inherit;
    min-width: 20em;
    max-width: 100%;
    border: 1px solid rgb(var(--gMainColor));
    font-size: inherit;
    background: rgb(var(--gBgColor));
    color: rgb(var(--gTextColor));
    border-radius: .25rem;
    transition: border-color .15s ease-in-out, box-shadow .15s ease-in-out;
}

textarea.full-width {
    width: calc(100% - 1rem);
}

input:not(:placeholder-shown):focus:invalid, textarea:not(:placeholder-shown):focus:invalid {
    border-color: rgb(var(--gHoverLinkColor));
    box-shadow: 0 0 5px .3rem rgba(var(--gHoverLinkColor), 0.5);
}

input.time {
    text-align: center;
    padding: .2em 0;
}

/* Fake checkbox and radio buttons */
input[type=checkbox], input[type=radio] {
    position: absolute;
    opacity: 0;
}

input[type=checkbox] + label::before, input[type=radio] + label::before {
    display: inline-block;
    width: 1em;
    height: 1em;
    text-align: center;
    transition: color .2s, box-shadow .2s ease-in-out;
    text-shadow: 1px 1px 3px var(--gLightBorderColor);
    cursor: pointer;
    font-family: gicon;
    font-size: 1.2rem;
    font-weight: normal;
    color: rgb(var(--gMainColor));
    margin-right: .5em;
    border-radius: .25rem;
    padding: .1rem .2rem;
}

input[type=checkbox] + label::before {
    content: "☐";
}

input[type=checkbox]:checked + label::before {
    content: "☑";
}

input[type=radio] + label::before {
    content: "◯";
}

input[type=radio]:checked + label::before {
    content: "⬤";
}

input:hover + label::before {
    color: rgb(var(--gSecondColor));
}

input:checked + label::before {
    text-shadow: 1px 1px 5px rgba(var(--gSecondColor), 0.5);
}

#queryBuilder input[type=checkbox] {
    position: unset;
    opacity: unset;
}

/* buttons */

input[type=submit], input[type=button], button, input[type=file] {
    border-radius: 1em;
    border: none;
    box-shadow: 0px 0px 5px 0 var(--gLightBorderColor);
    cursor: pointer;
    border: 2px solid rgba(var(--gMainColor), 0.5);
    background: rgba(var(--gSecondColor), 0.2);
    display: inline-block;
    font-size: inherit;
    border-radius: .2em;
    padding: .2em .4em;
    margin: .2em .5em;
    text-decoration: none;
    transition: color .3s, background-color .3s;
    color: rgb(var(--gTextColor));
}

input:focus, button:focus, select:focus, textarea:focus, input[type=radio]:focus + label::before, input[type=checkbox]:focus + label::before {
    box-shadow: 0 0 5px .2rem rgba(var(--gMainColor), 0.5);
    outline: 0;
}

a.icn-btn, b.btn {
    cursor: pointer;
    color: rgb(var(--gTextColor));
    border: 1px solid rgba(var(--gMainColor), 0.5);
    background: rgba(var(--gSecondColor), 0.1);
    user-select: none;
    display: inline-block;
    font-size: inherit;
    border-radius: .2em;
    padding: .2em .4em;
    margin: .2em .5em;
    white-space: pre;
    transition: color .3s, background-color .3s;
    text-decoration: underline;
}

b.btn {
    cursor: unset;
    text-decoration: none;
    border-bottom: 1px dashed rgba(var(--gMainColor), 0.5);
}

[data-icon]:before, .main[data-icon]:after {
    display: inline-block;
    font-family: "gicon", sans-serif;
    text-shadow: 1px 1px 1px var(--gLightBorderColor);
    padding-right: .5em;
    font-size: 1.2em;
    line-height: .8em;
    vertical-align: middle;
    content: attr(data-icon);
}

[data-icon]:empty:before {
    padding: 0;
}

.icn, .icnl {
    font-family: "gicon", sans-serif;
    font-style: normal;
    font-weight: normal;
    speak: none;
    font-variant: normal;
    text-transform: none;
    position: relative;
}

.actions .icn, .icn.action {
    text-decoration: none;
    border-radius: 1em;
    display: inline-block;
    text-align: center;
    font-size: 1.2em;
    line-height: .8em;
    vertical-align: middle;
    padding: .2em;
    font-family: "gicon", sans-serif;
    color: rgb(var(--gMainColor));
    text-shadow: 1px 1px 1px var(--gBorderColor);
    border: none;
    cursor: pointer;
    position: relative;
    z-index: 200;
}


button.main, .icn-btn.main {
    color: rgb(var(--gTextColor));
    font-size: 1.2em;
    border-radius: 1em;
    padding: .5em 1em;
}

button.main[data-icon]:before, .icn-btn.main:before {
    display: none;
}

button.main[data-icon]:after, .icn-btn[data-icon]:after {
    padding: 0;
    padding-left: .5em;
    padding-right: 0;
    color: rgba(var(--gSecondColor));
    font-size: 1.5rem;
    line-height: .2em;
}

.submit .minor {
    font-size: .9em;
}

input[type=submit]:hover, input[type=button]:hover, button:hover, a.icn-btn:hover, input[type=file]:hover,
.radio-btn:hover div, a.num:hover, .num a:hover {
    background-color: rgba(var(--gSecondColor), 0.2);
    color: rgb(var(--gHoverLinkColor)) !important;
    border-color: rgb(var(--gSecondColor));
}

input[type=submit]:active, input[type=button]:active, button:active, input[type=file]:active {
    box-shadow: 0 0 10px .1rem rgb(var(--gSecondColor));
}

input[type=color] {
    cursor: pointer;
}

input.resetButton {
    margin-left: 1em;
}

input[readonly], input.disabled, input[disabled], textarea[disabled], select[disabled], button[disabled] {
    cursor: not-allowed;
    color: var(--gBorderColor);
    background-color: var(--gLightBackgroundColor);
    border-color: var(--gLightBorderColor);
}

input[disabled]:hover, input[readonly]:hover {
    background-color: unset;
    color: unset;
    border-color: unset;
}

input[disabled] + label {
    color: var(--gBorderColor);
}

input[disabled] + label::before {
    color: var(--gBorderColor);
    cursor: not-allowed;
}

select, input[size], input[type=color], button, input[type=button], input[type=submit], input[type=number] {
    min-width: 0;
}

select {
    max-width: calc(100% - 1.5em);
}

input.otp {
    font-family: monospace;
    font-size: 30px;
    width: 240px;
    letter-spacing: 22px;
    min-width: 0;
    padding-left: 10px;
    background: linear-gradient(rgb(var(--gMainColor)) 0 0) 40px,
        linear-gradient(rgb(var(--gMainColor)) 0 0) 80px,
        linear-gradient(rgb(var(--gMainColor)) 0 0) 120px,
        linear-gradient(rgb(var(--gMainColor)) 0 0) 160px,
        linear-gradient(rgb(var(--gMainColor)) 0 0) 200px;
    background-size:1px 100%;
    background-repeat:no-repeat;
}

/* Radio button lists (eg. new transaction) */
form .radio-btn {
    display: table;
    width: 100%;
    padding: 0;
    border-spacing: .5rem .2rem;
}

form .radio-btn label {
    display: table-row;
}

form .radio-btn input + label::before {
    display: table-cell;
}

form .radio-btn input:focus + label::before {
    box-shadow: none;
}

form .radio-btn input:focus + label div {
    box-shadow: 0 0 5px .2rem rgb(var(--gSecondColor));
}

form .radio-btn div {
    display: table-cell;
    border: 1px solid rgba(var(--gSecondColor), 0.5);
    background-color: rgba(var(--gSecondColor), 0.1);
    font-size: inherit;
    border-radius: .2em;
    padding: .2em .4em;
    transition: color .3s, background-color .3s;
    color: rgb(var(--gTextColor));
}

form .radio-btn h3 {
    text-decoration: underline;
}

form .radio-btn input {
    margin: 1em;
}

form .radio-btn .help {
    margin: 0;
    font-size: .9em;
}

form .radio-btn input:checked + label div {
    background-color: rgba(var(--gSecondColor), 0.3);
}

/* Custom list input */
form .input-list {
    padding: 0;
    display: inline-flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: start;
    min-width: 0;
}

form .input-list .label {
    padding: .4rem .6rem;
}

form .input-list button {
    padding: .4rem .6rem;
    align-self: stretch;
    flex-shrink: 0;
    margin: 0;
    border: none;
}

form .input-list .label button {
    padding: .2rem;
    border: none;
    background: none;
}

input.money {
    text-align: right;
}

input.money + b {
    padding: .2rem .6rem;
    line-height: 1.5rem;
    color: var(--gBorderColor);
}

p.submit {
    margin: 1em;
}

form .checkUncheck {
    float: left;
}

form span.password_check {
    margin-left: 1em;
    padding: .1em .3em;
    border-radius: .5em;
    color: #000;
}

form span.password_check.fail { background-color: #f99; }
form span.password_check.weak { background-color: #ff9; }
form span.password_check.medium { background-color: #ccf; }
form span.password_check.ok { background-color: #cfc; }

dd.help input[type=text] {
    cursor: pointer;
    font-family: monospace;
}

dd.help.example {
    margin-left: 2.5em;
    font-size: .9em;
}

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

form p.actions {
    float: right;
}

/** Datepicker widget */
.datepicker-parent {
    position: relative;
}

dialog {
    display: none;
    background: rgb(var(--gBgColor));
    color: rgb(var(--gTextColor));
}

dialog[open] {
    display: block;
}

dialog.datepicker {
    user-select: none;
    position: absolute;
    left: 0;
    margin: 0;
    padding: .3rem;
    border: none;
    box-shadow: 0 0 5px #000;
    border-radius: .5rem;
    z-index: 1000;
}

.datepicker nav {
    display: flex;
    justify-content: space-between;
    align-items: center;
    text-align: center;
}


.datepicker nav input[type=button] {
    font-family: gicon;
    height: 2em;
    width: 2em;
}

.datepicker span {
    white-space: nowrap;
}

.datepicker span * {
    font-size: 1rem;
    font-family: inherit;
    margin: .1rem;
    padding: .1rem;
    border: 1px solid var(--gLightBorderColor);
    text-align: center;
}

.datepicker table {
    border-collapse: collapse;
    width: 100%;
}

.datepicker thead td {
    font-size: 80%;
    color: var(--gBorderColor);
    text-align: center;
}

.datepicker tbody tr:nth-child(even) {
    background-color: var(--gLightBackgroundColor);
}

.datepicker tbody td:nth-child(6) input {
    color: var(--gBorderColor);
}
.datepicker tbody td:nth-child(7) input {
    color: var(--gBorderColor);
}

.datepicker tbody td {
    text-align: center;
    width: 14.3%;
    padding: 0;
}

.datepicker tbody td input {
    padding: .4rem .7rem;
    border: none;
    background: none;
    box-shadow: none;
    border-radius: .2rem;
    margin: 0;
}

.datepicker tbody td.focus input {
    background: #339;
    color: #fff;
}

.datepicker tbody input:hover {
    background: #ccf;
    color: darkred;
}

fieldset.mailing {
    max-width: 40em;
}

fieldset.mailing dd.preview > * {
    border-radius: .5em;
    background: var(--gLightBackgroundColor);
    padding: 1em;
}

#queryBuilderForm textarea, fieldset.mailing textarea, fieldset.mailing #f_subject, fieldset.mailing #f_target {
    width: calc(100% - 2em);
}


#queryBuilder .column select, #queryBuilderForm .actions select {
    max-width: 15em;
}

#queryBuilder table td {
    vertical-align: top;
    padding: .1em .2em;
}

#queryBuilder table td.buttons {
    white-space: nowrap;
}

#queryBuilder input[type=button], #queryBuilder .values input {
    margin: .1em;
}

#queryBuilderForm .actions label {
    margin: 0 .5em;
}

#queryBuilder table .values label {
    margin: 0 .3em;
}

#queryBuilderForm input[type=number] {
    width: 4em;
}

.tree-selector a {
    color: #666;
}

.tree-selector td {
    width: 15%;
    text-align: right;
}

.tree-selector th {
    width: 85%;
}

.tree-selector i {
    display: inline-block;
    padding: 0 .5em;
}

.tree-selector b {
    display: inline-block;
    padding: 0 .5em;
    color: #999;
}

.tree-selector em {
    font-weight: normal;
}

.tree-selector h3 {
    display: inline-block;
}

.tree-selector .current > a {
    font-weight: bold;
    color: #000;
}

.file-selector {
    position: relative;
    transition: opacity 0.5s;
}

.file-selector::before {
    content: "⇑";
    opacity: 0.2;
    font-size: 2em;
    padding: .2rem;
    position: absolute;
    right: 0;
    font-family: gicon;
}

.file-selector label .help {
    font-style: italic;
}

.file-selector .preview {
    text-align: center;
}

.file-selector img {
    max-width: 10em;
    max-height: 5em;
}

.file-selector table.list .num {
    text-align: right;
}

/**
 * Progress spinner
 */
form.progressing {
    position: relative;
}

form fieldset, form p {
    transition: .5s filter linear;
}

form.progressing fieldset, form.progressing p {
    pointer-events: none;
    opacity: 0.5;
    filter: blur(3px);
    filter: grayscale(100%) blur(3px);
}

.progressing.block {
    height: 100px;
    position: relative;
}

.progressing::after {
    display: inline-block;
    content: " ";
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    margin: auto;
    width: 50px;
    height: 50px;
    border: 5px solid var(--gBorderColor);
    border-radius: 50%;
    border-top-color: var(--gLightBackgroundColor);
    animation: spin 1s ease-in-out infinite;
    filter: none;
}

.progress-status {
    display: none;
}

.progressing .progress-status {
    display: inline-block;
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    margin: auto;
    padding-top: 80px;
    text-align: center;
    width: 100%;
    height: 1em;
    filter: none !important;
    color: #000;
}

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

.selector header {
    margin-bottom: 2em;
}

.selector header p.edit {
    float: right;
    margin: 0;
}

.selector header h2 input {
    width: calc(100% - 1em);
}

@media screen and (max-width: 1279px) {
    #queryBuilder table tr {
        display: flex;
        flex-wrap: wrap;
        padding: .5em 0;
        margin-left: 6rem;
        border-top: .2rem solid #ccc;
        clear: both;
    }
    #queryBuilder table td {
        display: block;
    }
    #queryBuilder table td.buttons {
        margin-left: -6rem;
    }
}html.dialog body {
    background: transparent;
    overflow: auto;
}

html.dialog {
    height: auto;
    background: rgb(var(--gBgColor));
}

html.dialog main {
    background: rgb(var(--gBgColor));
    padding: .5em;
    margin: 0;
}

/** Dialogs pop-ins */
#dialog {
    width: 100%;
    height: 100%;
    margin: 0;
    padding: 0;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: transparent url("data:image/svg+xml;base64,PCEtLSBCeSBTYW0gSGVyYmVydCAoQHNoZXJiKSwgZm9yIGV2ZXJ5b25lLiBNb3JlIEAgaHR0cDovL2dvby5nbC83QUp6YkwgLS0+Cjxzdmcgd2lkdGg9IjM4IiBoZWlnaHQ9IjM4IiB2aWV3Qm94PSIwIDAgMzggMzgiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmIj4KICAgIDxnIGZpbGw9Im5vbmUiIGZpbGwtcnVsZT0iZXZlbm9kZCI+CiAgICAgICAgPGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMSAxKSIgc3Ryb2tlLXdpZHRoPSIyIj4KICAgICAgICAgICAgPGNpcmNsZSBzdHJva2Utb3BhY2l0eT0iLjUiIGN4PSIxOCIgY3k9IjE4IiByPSIxOCIvPgogICAgICAgICAgICA8cGF0aCBkPSJNMzYgMThjMC05Ljk0LTguMDYtMTgtMTgtMTgiPgogICAgICAgICAgICAgICAgPGFuaW1hdGVUcmFuc2Zvcm0gYXR0cmlidXRlTmFtZT0idHJhbnNmb3JtIiB0eXBlPSJyb3RhdGUiIGZyb209IjAgMTggMTgiIHRvPSIzNjAgMTggMTgiIGR1cj0iMXMiIHJlcGVhdENvdW50PSJpbmRlZmluaXRlIi8+CiAgICAgICAgICAgIDwvcGF0aD4KICAgICAgICA8L2c+CiAgICA8L2c+Cjwvc3ZnPg==") no-repeat center center;
    background-color: rgba(0, 0, 0, 0.7);
    position: fixed;
    opacity: 1;
    transition: opacity .5s;
    z-index: 100000;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    border: none;
}

#dialog.loaded {
    background-image: none;
}

#dialog > iframe, #dialog > img, #dialog > audio, #dialog > video {
    max-width: 90%;
    max-height: 90%;
    min-height: 3em;
    height: 90%;
    transition: opacity .2s, height .2s;
    border: none;
    opacity: 0;
}

#dialog.loaded > img, #dialog.loaded > audio, #dialog.loaded > video {
    opacity: 1;
    height: initial;
}

#dialog > iframe {
    border-radius: .5em;
    box-shadow: 0px 0px 5px #000;
}

#dialog.loaded > iframe {
    width: 90%;
    opacity: 1;
}

#dialog > button.closeBtn {
    background: unset;
    border: unset;
    box-shadow: unset;
    color: #999;
    font-size: 1.3em;
    display: block;
    width: 90%;
}

#dialog > button.closeBtn:hover {
    color: #fff !important;
}

.loader {
    width: 100%;
    min-height: 32px;
    display: block;
    position: relative;
}

.loader.install {
    margin-top: -40px;
}

.loader b {
    text-shadow: 2px 2px 5px #999;
    background: rgba(255, 255, 255, 0.5);
    border-radius: .5em;
    font-size: 16px;
    line-height: 16px;
    height: 16px;
    z-index: 9999;
    position: absolute;
    display: block;
    left: 10px;
    top: 10px;
    padding: .2em;
}

.loader img {
    position: absolute;
    opacity: 0;
    transition: all 0.5s ease;
    z-index: 2;
}
/** Context-specific tabs */
nav.tabs {
    margin: .7em 0;
}

nav.tabs ul {
    margin-bottom: 1em;
    list-style-type: none;
    border-bottom: 2px solid #9c4f15;
    border-bottom-color: rgb(var(--gMainColor));
    padding: 0 1em;
    z-index: 100;
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
}

nav.tabs .sub {
    margin: -1em 0 1em 2em;
    padding-top: 1em;
    border-left: 2px solid rgb(var(--gMainColor));
    border-bottom-left-radius: .5em;
}

nav.tabs .sub .title {
    margin: 0 1em 0 -1em;
    font-weight: bold;
    padding: .1em .5em;
}

nav.tabs li {
    margin: .3em .2em 0 .2em;
}

nav.tabs li a {
    display: inline-block;
    background: rgba(var(--gSecondColor), .5);
    border-radius: .5em .5em 0 0;
    padding: .1em .5em;
    color: rgb(var(--gTextColor));
    text-decoration: none;
    transition: background-color .2s, color .2s;
}

nav.tabs .current a {
    background: rgb(var(--gMainColor));
    color: rgb(var(--gBgColor));
}

nav.tabs li a:hover {
    color: rgb(var(--gBgColor));
    background-color: rgb(var(--gMainColor));
    text-decoration: underline;
    border-bottom: none;
}

nav.tabs aside {
    float: right;
    max-width: 50%;
    text-align: right;
    clear: right;
}

main nav.menu > b {
    font-weight: normal;
}

main nav.menu {
    display: inline-block;
    position: relative;
}

main nav.menu span {
    display: none;
}

main nav.menu:hover span, main nav.menu:active span {
    display: flex;
    position: absolute;
    flex-direction: column;
    text-align: left;
    background: rgb(var(--gBgColor));
    border-radius: .3em;
    padding: .3em;
    z-index: 1000;
    box-shadow: 2px 2px 5px var(--gLightBorderColor);
}

main nav.menu button {
    text-align: left;
}table.list {
    margin-bottom: 1em;
    width: 100%;
}

table.list.auto {
    width: auto;
}

table.list caption {
    text-align: center;
    font-size: 1.2em;
}

table.list tbody td.desc {
    font-size: .9em;
    color: var(--gBorderColor);
}

table.list.auto {
    width: auto;
}

table.list table {
    margin: 0;
}

table.list th {
    text-align: left;
    font-weight: bold;
}

table.list thead {
    background: rgba(var(--gSecondColor), 0.5);
}

table.list tfoot tr {
    background: rgba(var(--gSecondColor), 0.2);
}

table.list th, table.list td {
    padding: 0.2em 0.5em;
}

table.list tr {
    border: 1px solid rgba(var(--gSecondColor), 0.5);
    transition: background .2s
}

table.list tr:nth-child(even), table.multi tbody:nth-child(even) {
    background: rgba(var(--gSecondColor), 0.2);
}

table.multi tr {
    background: inherit !important;
}

table.list tr.checked {
    color: #633;
    background: #ffc;
}

table.list .error {
    color: red;
    font-weight: bold;
}

table.list .alert {
    color: darkred;
    font-weight: bold;
}

table.list .confirm {
    color: darkgreen;
}

table.list .num {
    text-align: center;
}

table.list .check {
    width: 1%;
}

table.search th {
    background: rgba(var(--gSecondColor), 0.5);
}

table.list tr.disabled, table.list td.disabled, table.list th.disabled {
    color: var(--gBorderColor);
}

table.list tr:nth-child(even).disabled {
    background: var(--gLightBackgroundColor);
}

.userOrder .cur {
    background: rgba(var(--gSecondColor), 1.0);
    color: rgb(var(--gBgColor));
}

.userOrder a, .userOrder button {
    text-decoration: none;
    display: block;
    box-shadow: none;
    margin: 0;
    width: 98%;
    color: inherit;
    padding: 1%;
    text-align: left;
    border-radius: .5em;
    border: none;
    background: transparent;
}

.userOrder a:hover, .userOrder button:hover {
    background: rgba(var(--gBgColor), 0.5);
}

table.list .userOrder td, table.list .userOrder th {
    padding: .2em;
}

table.list .userOrder .check {
    padding-left: .5em;
}

.userOrder .icn {
    display: inline-block;
    color: rgb(var(--gMainColor));
    font-size: 1.5em;
    line-height: .2em;
    width: 1em;
    text-align: center;
    vertical-align: middle;
    font-weight: normal;
}

thead .cur .icn {
    color: rgb(var(--gBgColor));
}

table.list .actions {
    text-align: right;
}

table.list .separator {
    border-left: 2px dashed #999;
}

table.list .icon {
    width: 1.5em;
    color: rgba(var(--gTextColor), 0.3);
}

table.list .folder .icon {
    color: rgba(var(--gTextColor), 0.5);
}

/** Draggable table rows */
table .draggable {
    cursor: move;
    user-select: none;
}

table tr.placeholder {
    box-shadow: 0 10px 0px rgb(var(--gSecondColor));
}


table tr.dragging {
    opacity: 0.5;
    outline: 4px solid var(--gBorderColor) !important;
}

table.dragging td {
    opacity: 0;
}/** Accounting specifics */
.money {
    font-variant-numeric: tabular-nums;
    font-feature-settings: "tnum";
}

b.money {
    font-weight: inherit;
    white-space: pre;
}

.transaction-lines td.money {
    text-align: left;
}

.transaction-lines td.money input + b {
    display: none;
}

.transaction-lines select {
    max-width: 10em;
}

.transaction-lines input[type=text] {
    min-width: 0 !important;
}

nav.acc-year {
    color: rgb(var(--gTextColor));
    background: rgb(var(--gBgColor));
    text-align: center;
    border-radius: .5rem;
    border: .2rem solid rgba(var(--gMainColor), 0.5);
    display: flex;
    align-items: center;
    margin-bottom: .5rem;
}

nav.acc-year > * {
    padding: .2rem .5rem;
}

nav.acc-year h4 {
    font-weight: normal;
}

table.statement, table.statement table {
    width: 100%;
}

table.statement td, table.statement th {
    padding: .5rem;
    vertical-align: top;
}

table.statement table.list td, table.statement table.list th {
    padding: .2rem .5rem;
}

table.statement table {
    border: 1px solid rgba(var(--gSecondColor), 0.5);
}

td.money, th.money {
    text-align: right;
}

.statement table tfoot tr {
    background: rgba(var(--gSecondColor), 0.1);
    color: rgb(var(--gMainColor));
}

.year-header {
    text-align: center;
    margin-bottom: .8em;
    padding-bottom: .5em;
    border-bottom: 1pt solid var(--gBorderColor);
}

.year-header .print-btn button {
    font-size: 1.3rem;
}

.year-header form {
    max-width: 30em;
    margin: 1em auto;
}

.year-infos .graphs {
    text-align: center;
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
}

.year-infos .graphs figure {
    margin: 1rem;
}

.year-infos .graphs.small figure img {
    max-width: 500px;
}

table.accounts { width: 100%; }
table.accounts .actions { text-align: right; }
table.accounts tbody tr td:first-child { font-family: monospace; }
table.accounts th { font-weight: normal; }
table.accounts .account-level-1 th { font-size: 1.6em; }
table.accounts .account-level-2 th { padding-left: 1em; font-size: 1.3em; }
table.accounts .account-level-3 th { padding-left: 2em; }
table.accounts .account-level-4 th { padding-left: 3em; }
table.accounts .account-level-5 th { padding-left: 4em; }
table.accounts .account-level-6 th { padding-left: 5em; }
table.projects tr.title p.help { font-weight: normal; text-align: center; }

.attachments {
    text-align: center;
}

.attachments .files-list {
    justify-content: center;
}