html, body { min-height: 100%; vertical-align: baseline; }
html { margin: 0; padding: 0; }
html * { font-family: 'Noto Sans', sans-serif; box-sizing: border-box; }
input:not([type="checkbox"], [type="radio"]), textarea, select, option { font-size: 16px; }
body { background: #EEE; margin: 0; padding: 50px 0; }
a { text-decoration: none; color: #369; font-weight: bold; }
a:hover { color: #F00; }
h1, h2, h3 { display: block; margin: 0 0 18px 0; padding: 0; font-weight: bold; }
h1 { font-size: 22px; }
h2 { font-size: 21px; }
h3 { font-size: 20px; }
h4 { font-size: 20px; }
p { display: block; margin: 0 0 18px 0; padding: 0 10px; }
h2 { text-align: center; }
h4 { background: #369; color: #FFF; }
header { padding: 0; }
.logo { display: inline-block; margin: 0 0 0 10px; text-decoration: none; outline: none; font-weight: bold; background-image: url('/icon.png'); background-repeat: no-repeat; background-position: top 4px left 0; }
main { width: 1000px; max-width: 90%; margin: 0 auto; }
main img, main textarea, main input[type="text"] { max-width: 100%; }
nav { display: block; margin: 0; padding: 0; top: 0; }
nav div { color: #DDD; font-weight: bold; margin: 0; background-repeat: no-repeat; }
nav ul { display: none; margin: 0; padding: 0 0 5px 0; background: #468; box-shadow: 5px 5px 5px #123; border-radius: 0 0 0 10px; }
nav li { display: block; margin: 0; padding: 0; }
nav a { text-decoration: none; color: #DDD; border: none; }
nav ul a { display: block; margin: 0; padding: 2px 5px 2px 30px; }
nav ul a:hover { color: #FFF; background-color: #246; }
.loginform { text-align: center; }
.loginform label { display: block; }
.loginform div { margin: 0 0 1rem 0; }
footer { position: fixed; bottom: 0; width: 100%; background: #DDD; margin: 0; padding: 0; }
.footermenu p { margin: 0; }
.errors { color: #F00; }
label { font-weight: bold; }
form.inline { display: block; margin: 0 0 18px 0; vertical-align: baseline; }
form.inline, form.inline * { display: inline; line-height: 1; vertical-align: baseline; }
form.inline p { display: block; }
.companylist { display: block; margin: 0 0 20px 0; padding: 0; }
.companylist ul { display: block; margin: 10px 0 20px 0; padding: 0; }
.companylist li { display: block; margin: 0 0 20px 0; padding: 0 0 0 30px; line-height: 1; font-size: 20px; }
.companylist > li { background-repeat: no-repeat; background-size: 20px; }
.companylist >li:nth-child(odd) { background-color: #DDD; }
.companylist > li.active { background-image: url('/active.png'); }
.companylist > li.inactive { background-image: url('/inactive.png'); }
.companylist > li span { padding: 0 20px; color: #789; cursor: pointer; font-weight: bold; }
.companylist > li span:hover { color: #F00; }
.highlight { color: #900; font-weight: bold; }
input[type="submit"] { background-color: #DEF; color: #000; cursor: pointer; border-radius: 3px; font-weight: bold; }
table { min-width: 100%; border: 0; padding: 0; margin: 0; }
th { background: #369; color: #FFF; font-weight: bold; }
th, td { text-align: center; font-size: 14px; padding: 3px; margin: 0; white-space: nowrap; }
table .odd { background: #FFF; }
table .even { background: #EEE; }
.clear { display: block; font-size: 0; width: 0; height: 0; clear: both; }
.printbutton { display: block; float: right; height: 30px; width: 30px; cursor: pointer; background: url('/print.png'); background-size: contain; background-repeat: no-repeat; }
.content img { max-width: 100%; }
.ql-align-left { text-align: left!important; }
.ql-align-center { text-align: center!important; }
.ql-align-justify { text-align: justify!important; text-wrap: balance; }
.ql-align-right { text-align: right!important; }
.mobilescroll { display: block; overflow-x: auto; margin: 0 0 1rem 10px; padding: 0.5rem; white-space: nowrap; background: #FFF; }
.calendar { width: 100%; background: #FFF; }
.calendar td { padding: 0; margin: 0; border: solid 1px #000; width: calc(100% / 7); font-weight: bold; }
.calendar div { padding: 0; margin: 0; width: 100%; aspect-ratio: 1/1; }
.calendar p { text-align: left; margin: 0; }
.calendar td.dark { background: #579; color: #CCC; }
.calendar span { display: block; padding: 0; }
.calendar a { display: block; width: 100%; height: 100%; }
.calendar .incomplete { background: #C96; color: #FFF; }
.calendar .complete { background: #369; color: #FFF; }
.calendarnav { display: block; line-height: 1; padding: 0; font-size: 34px; margin-top: -10px; }
.gantt { width: 100%; background: #FFF; }
.gantt td { padding: 2px; margin: 0; border: solid 1px #000; }
.gantt td.ganttdone { background: #579; color: #FFF; }
.gantt td.ganttdue { background: #C96; color: #FFF; }
.ganttcompany { text-align: left; padding-left: 10px; font-weight: bold; }
.togglecompleted span { color: #369; cursor: pointer; }
.togglecompleted span:hover { color: #F00; }#errormodal { position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: rgba(0,0,0,0.4); margin: 0; padding: 100px 0 0 0; }
#errorwindow { margin: 0 auto; width: 500px; max-width: 90%; margin: 0 auto; background: #EEE; border: solid 1px #000; border-radius: 5px; padding: 0 0 15px 0; }
#errorwindow .closemodal { cursor: pointer; }
#errorwindow img.closemodal { float: right; width: 18px; height: 18px; margin: 2px; }
#errormessage { margin: 25px 5px; text-align: center; }
#errorwindow span.closemodal { display: block; width: 100px; margin: 0 auto; line-height: 2; background: #579; color: #FFF; text-align: center; border-radius: 2px; }
#companyselect .childcompany { font-style: italic; }