@import "ress.css";
@import "color.css?ver=1323";
* {
  border: 0;
  margin: 0;
  outline: 0;
  padding: 0;
  background: none;
  box-sizing: border-box;
  font: inherit;
  font-family: inherit;
  font-size: 100%;
  font-style: inherit;
  font-weight: inherit;
  text-decoration: none;
  vertical-align: baseline;
  list-style: none;
  color: inherit;
}
:root {
  font-size: 0.75rem;
}
@media (min-width: 320px) {
  :root {
    font-size: calc(0.75rem + ((1vw - 0.2rem) * 0.5));
  }
}
@media (min-width: 1920px) {
  :root {
    font-size: 1.25rem;
  }
}
input[type=text],
input[type=number],
input[type=password],
input[type=date],
input[type=time],
textarea,
select,
button {
  padding: 0 0.5rem;
  border: 1px solid var(--border-color);
}
input[type=text]::placeholder,
input[type=number]::placeholder,
input[type=password]::placeholder,
input[type=date]::placeholder,
input[type=time]::placeholder,
textarea::placeholder,
select::placeholder,
button::placeholder {
  opacity: 0.5;
}
input[type="text"] {
  width: 100%;
}
@media (prefers-color-scheme: dark) {
  input[type="date"]::-webkit-calendar-picker-indicator {
    filter: invert(1);
  }
}
textarea {
  width: 100%;
  height: 10em;
  line-height: 1.2;
}
button {
  vertical-align: bottom;
  cursor: pointer;
  white-space: nowrap;
}
/* -----------------------------------
Common Utility Styles
----------------------------------- */
/* Display */
.none {
  display: none !important;
}
.hide {
  visibility: hidden !important;
}
.block {
  display: block !important;
}
.inline {
  display: inline !important;
}
.inlineBlock {
  display: inline-block !important;
}
.flex {
  display: flex !important;
}
.inlineFlex {
  display: inline-flex !important;
}
/* Flex alignment */
.justifyStart {
  justify-content: flex-start !important;
}
.justifyCenter {
  justify-content: center !important;
}
.justifyEnd {
  justify-content: flex-end !important;
}
.alignStart {
  align-items: flex-start !important;
}
.alignCenter {
  align-items: center !important;
}
.alignEnd {
  align-items: flex-end !important;
}
.flexColumn {
  flex-direction: column !important;
}
.flexRow {
  flex-direction: row !important;
}
/* Width / Height */
.w100 {
  width: 100% !important;
}
.wAuto {
  width: auto !important;
}
.h100 {
  height: 100% !important;
}
.hAuto {
  height: auto !important;
}
/* Text alignment */
.tL {
  text-align: left !important;
}
.tC {
  text-align: center !important;
}
.tR {
  text-align: right !important;
}
/* Font size */
.fs1r {
  font-size: 1rem !important;
}
.fs120 {
  font-size: 120% !important;
}
.fs150 {
  font-size: 150% !important;
}
.fs200 {
  font-size: 200% !important;
}
.fs250 {
  font-size: 250% !important;
}
.fs300 {
  font-size: 300% !important;
}
/* Color */
.fcRed {
  color: red !important;
}
.fcBlue {
  color: blue !important;
}
.fcGreen {
  color: green !important;
}
.fcWhite {
  color: #fff !important;
}
.fcBlack {
  color: #000 !important;
}
/* Margin / Padding shortcuts */
.m0 {
  margin: 0 !important;
}
.mt0 {
  margin-top: 0 !important;
}
.mb0 {
  margin-bottom: 0 !important;
}
.ml0 {
  margin-left: 0 !important;
}
.mr0 {
  margin-right: 0 !important;
}
.p0 {
  padding: 0 !important;
}
.pt0 {
  padding-top: 0 !important;
}
.pb0 {
  padding-bottom: 0 !important;
}
.pl0 {
  padding-left: 0 !important;
}
.pr0 {
  padding-right: 0 !important;
}
/* Text overflow */
.ellipsis {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
/* Cursor */
.cursorPointer {
  cursor: pointer !important;
}
.cursorDefault {
  cursor: default !important;
}
/* Border */
.rounded {
  border-radius: 4px !important;
}
/* Background */
.bgRed {
  background-color: red !important;
}
.bgBlue {
  background-color: blue !important;
}
.bgGray {
  background-color: #eee !important;
}
.bgWhite {
  background-color: #fff !important;
}
/* Z-index helpers */
.z1 {
  z-index: 1 !important;
}
.z10 {
  z-index: 10 !important;
}
.z100 {
  z-index: 100 !important;
}
/* Positioning */
.posRelative {
  position: relative !important;
}
.posAbsolute {
  position: absolute !important;
}
.posFixed {
  position: fixed !important;
}
.posSticky {
  position: sticky !important;
}
/* Overflow */
.overflowHidden {
  overflow: hidden !important;
}
.overflowAuto {
  overflow: auto !important;
}
.overflowScroll {
  overflow: scroll !important;
}
/* Max / Min */
.maxW100 {
  max-width: 100% !important;
}
.minW0 {
  min-width: 0 !important;
}
/* isMobile / isPC */
.isMobile {
  display: none !important;
}
.isPC {
  display: none;
}
html {
  overscroll-behavior: none;
}
body {
  overscroll-behavior: none;
  user-select: none;
  background: var(--background-bg);
  color: var(--text-color);
}
/* --- モバイル専用要素の制御 --- */
/* bodyにisMobileが「ついていない」時（＝PC時）は消す */
body:not(.is-state-mobile) [data-mobile-only] {
  display: none !important;
}
/* --- PC専用要素の制御 --- */
/* bodyにisMobileが「ついている」時（＝モバイル時）は消す */
body.is-state-mobile [data-pc-only] {
  display: none !important;
}
#body {
  display: flex;
  flex-direction: column;
  overflow: hidden;
}
header {
  border-bottom: 0.15rem solid hsl(from var(--color-primary-900) h calc(s - 80) calc(l + 30));
  background: var(--color-primary-900) linear-gradient(0deg, var(--color-primary-900), hsl(from var(--color-primary-800) h calc(s + 10) calc(l - 20)));
  padding: 0 0.5rem;
  height: 2rem;
  display: flex;
  justify-content: space-between;
  align-items: center;
  color: var(--base-text);
  font-size: 80%;
  color: #fff;
}
header svg.svg-inline--fa {
  margin-right: 0.4rem;
}
header {
  display: flex;
  justify-content: space-between;
}
header > * {
  display: flex;
  align-items: center;
  gap: 0.5rem;
}
header div.appTitle {
  display: flex;
  align-items: center;
  gap: 0.2rem;
}
header .loginStatus {
  position: relative;
  height: -webkit-fill-available;
}
header .loginStatus a {
  display: contents;
}
header .loginStatus > a > div {
  position: absolute;
  top: 0;
  right: 0;
  display: flex;
  align-items: center;
  gap: 0.2rem;
  width: 1em;
  white-space: nowrap;
  overflow-x: clip;
  transition: all 0.35s ease;
  border-radius: var(--radius);
}
header .loginStatus > a > div:hover {
  width: max-content;
  padding: 0 1em;
  background: #77777720;
}
header .loginStatus .loggedIn .icon {
  color: orange;
}
header .loginStatus .notLoggedIn {
  color: red !important;
}
header .saveStatus {
  opacity: 0.6;
}
header .saveStatus.saveFlag {
  opacity: 1;
  color: red;
}
header .saveStatus.saveHoldFlag {
  animation: blinking 1s ease-in-out infinite alternate;
}
header .lampStatus {
  font-size: 0.4rem;
  text-shadow: 0 0 2px #fff;
}
header .lampNetwork {
  font-size: 0.4rem;
  text-shadow: 0 0 2px #fff;
}
header .clock {
  visibility: hidden;
}
header .version::before {
  content: 'v ';
}
main {
  height: calc(100svh - 3rem);
  scrollbar-width: none;
  /* Firefox */
  -ms-overflow-style: none;
  /* IE・Edge */
}
main::-webkit-scrollbar {
  display: none;
  /* Chrome・Safari */
}
footer {
  padding: 0 0.5rem;
  height: 1rem;
  background: var(--color-primary-900);
  display: flex;
  flex-direction: row;
  gap: 0.5rem;
  justify-content: center;
  align-items: center;
  overflow: hidden;
  font-size: 60%;
  color: #fff;
}
/* material-symbols-outlined
-------------------------------*/
.material-symbols-outlined {
  color: inherit;
  font-size: 1em !important;
}
/* btn
-------------------------------*/
.btn {
  display: flex;
  justify-content: center;
  align-items: center;
  padding: 0 0.5rem;
  border: 1px solid var(--btn-border-color);
  border-radius: var(--border-radius);
  line-height: 1.5;
  letter-spacing: normal;
  vertical-align: middle;
  background: var(--btn-bg-color);
  cursor: pointer;
  text-decoration: none;
  color: var(--btn-text-color);
}
.btn:hover {
  background-color: var(--btn-bg-hover-color);
}
@keyframes rotate {
  from {
    transform: rotate(0deg);
  }
  /* 開始時 */
  to {
    transform: rotate(360deg);
  }
  /* 終了時 */
}
@keyframes rotate90 {
  from {
    transform: rotate(0deg);
  }
  /* 開始時 */
  to {
    transform: rotate(90deg);
  }
  /* 終了時 */
}
@keyframes fadeIn {
  0% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}
@keyframes fadeOut {
  0% {
    opacity: 1;
  }
  100% {
    opacity: 0;
  }
}
