@charset "UTF-8";

* {
}

:root {
	--surface1: hsl(from var(--base-color) h s calc(l + 5));
	--surface2: hsl(from var(--base-color) h s calc(l + 4));
	--surface3: hsl(from var(--base-color) h s calc(l + 10));
    --surface4: hsl(from var(--base-color) h s calc(l + 15));
    --surface5: hsl(from var(--base-color) h s calc(l + 20));
	--surface6: hsl(from var(--base-color) h s calc(l + 25));
    --surface7: hsl(from var(--base-color) h s calc(l + 30));
    
    
    --text1: hsl(from var(--text-base) h s l);
    --text2: hsl(from var(--text-base) h s calc(l + 10));
    --text3: #78c6ff;
    --white: #ffffff;
    --black: #000000;
    --red: rgb(255, 112, 112);
    --green: rgb(112, 255, 112);
	
}


.my-color-warning {
	color: var(--red);
}

.my-color-info {
	color: var(--green);
}

html {
	font-size: 16px;
	background-color: var(--surface1);
	color: var(--text1)
}

*,
::before,
::after {
	box-sizing: border-box;
}

@font-face {
	font-family: "icomoon";
	src: url("icomoon/fonts/icomoon.eot");
	src: url("icomoon/fonts/icomoon.eot?#iefix") format("embedded-opentype"),
		url("icomoon/fonts/icomoon.woff") format("woff"),
		url("icomoon/fonts/icomoon.ttf") format("truetype"),
		url("icomoon/fonts/icomoon.svg#icomoon") format("svg");
	font-weight: normal;
	font-style: normal;
}

body {
	/*font-family: "Segoe UI";*/
	font-family: 'Ropa Sans', sans-serif;
	margin: 0;
	font-size: clamp(1.2rem, 4vw, 1.2rem);
	font-weight: 400;
	line-height: 1.3;
	-webkit-text-size-adjust: 100%;
	-webkit-tap-highlight-color: transparent;
}

nav {
	/*background-color: var(--surface4);*/
	display: flex;
	gap: .5rem;
	align-items: center;
	padding: .5rem 0rem;
	flex-wrap: wrap;
}
 

button, a.button {
	display: flex;
	justify-content: center;
	align-items: center;
	padding: .5rem .5rem;
	border: 1px solid var(--shadow-strength);
	background: var(--surface2);
	color: var(--text1);
	text-decoration: unset;
	white-space: nowrap;
}


button > :nth-child(2), a.button > :nth-child(2) {
	padding-left: 8px;
}
	
button > i, a.button > i {
	padding: 0 4px;
}

button:disabled {
	opacity: 0.3
}

button:hover:not([disabled]), a.button:hover {
	background: var(--text1);
	color: var(--surface1);
	cursor: pointer;
	transition: 0.2s;
}

h1,
h2,
h3,
h4,
h5,
h6 {
	margin-top: 0;
	margin-bottom: 0.3rem;
	font-weight: 500;
	line-height: 1.2;
}

h1, .font-s1 {
	font-size: clamp(1.5rem, 4vw, 1.8rem);
}

h2, .font-s2 {
	font-size: clamp(1.4rem, 4vw, 1.7rem);
}

h3, .font-s3 {
	font-size: clamp(1.3rem, 4vw, 1.6rem);
}

h4, .font-s4 {
	font-size: clamp(1.2rem, 4vw, 1.5rem);
}

h5, .font-s5 {
	font-size: clamp(1.1rem, 4vw, 1.4rem);
}

h6, .font-s6 {
	font-size: clamp(1rem, 4vw, 1.2rem);
}

button,
input,
optgroup,
select,
textarea {
	margin: 0;
	font-family: inherit;
	font-size: inherit;
	line-height: inherit;
}

input,
select, 
textarea {
	border: 1px solid var(--text1);
	border-radius: 2px;
	background-color: var(--surface2) ;
	padding: 3px 8px;
	width: 100%;
	color: var(--text1);
}

input:focus,
textarea:focus,
select:focus {
	outline: 1px solid var(--text1) !important;
	color: var(--text1);
	background-color: var(--surface5);
}

input[type="color"] 
{
	padding: unset;
	border-radius: 2px;
	width: 5rem;
	height: 3rem;
}


select {
	 height: 2.5rem;
	 width: 100%;
}


input[readonly], textarea[readonly] {
  color: var(--text1) !important; 
  background-color: var(--surface3) !important;
}

input[readonly]:focus , textarea[readonly]:focus {
  outline: none;
  box-shadow: none; 
}

input[type=file] {
	display:none;
}

a {
	color: var(--my-btn-bg-hover-color);
	text-decoration: underline;
}

i {
	display: inline-block;
}

p {
	line-height: normal;
}

/* ======================================= 
   Font sizes
   ======================================= */
.my-font-0-8 {
	font-size: clamp(.8rem, 4vw, 1rem);
}

.my-font-1 {
	font-size: clamp(1rem, 4vw, 1.4rem);
}

.my-font-1-4 {
	font-size: clamp(1.4rem, 4vw, 2rem);
}

.my-font-2 {
	font-size: clamp(2rem, 5vw, 3rem);
}

.my-font-3 {
	font-size: clamp(3rem, 8vw, 5rem);
}

.my-font-4 {
	font-size: clamp(4rem, 12vw, 7rem);
}

/* ======================================= 
   My global 
   ======================================= */

/* HTML: <div class="loader"></div> */
.my-loader {
	position: absolute;
	top: calc(50% - 4rem);
	width: 8rem;
	left: calc(50% - 4rem);
  padding: 1.5rem;
  aspect-ratio: 1;
  border-radius: 50%;
  background: #25b09b;
  --_m: 
    conic-gradient(#0000 10%,#000),
    linear-gradient(#000 0 0) content-box;
  -webkit-mask: var(--_m);
          mask: var(--_m);
  -webkit-mask-composite: source-out;
          mask-composite: subtract;
  animation: l3 1s infinite linear;
}
@keyframes l3 {to{transform: rotate(1turn)}}



.my-shadow {
	border: 1px solid var(--surface2);
	box-shadow: 1rem 1rem 2rem 0.5rem var(--surface2);
	/*	
	box-shadow: 0 1rem .5rem -.5rem;
	box-shadow: 0 2.8px 2.2px hsl(var(--surface-shadow)/ calc(var(--shadow-strength) + .03)), 0 6.7px 5.3px hsl(var(--surface-shadow)/ calc(var(--shadow-strength) + .01)), 0 12.5px 10px hsl(var(--surface-shadow)/ calc(var(--shadow-strength) + .02)), 0 22.3px 17.9px hsl(var(--surface-shadow)/ calc(var(--shadow-strength) + .02)), 0 41.8px 33.4px hsl(var(--surface-shadow)/ calc(var(--shadow-strength) + .03)), 0 100px 80px hsl(var(--surface-shadow) / var(--shadow-strength))
	*/
}


/* ======================================= 
   Buttons
   ======================================= */
.my-btn {
	background: none;
	border-radius: 5px;
	height: 2.5rem;
	cursor: not-allowed;
	line-height: 1;
	background-color: var(--my-btn-bg-color);
	color: var(--my-btn-bg-hover-color);
	font-size: clamp(1.1rem, 4vw, 1.4rem);
	font-weight: 400;
	border: 1px solid var(--my-btn-bg-hover-color);
	/*padding: 0.6rem 1rem;*/
	padding: 0.2rem 0.6rem;
	text-decoration: none;
	vertical-align: middle;
	text-align: left;
	display: flex;
	align-items: center;
	gap: 0.5rem;
}

.my-btn-label {
	justify-content: center;
	text-align: center;
}

.my-btn:not([disabled]) {
	color: var(--my-btn-color);
	cursor: pointer;
}

.my-btn i {
	text-align: center;
	flex: 0 1 0%;
}

.my-btn span {
	flex: 1 1 0%;
}

.my-btn-icon {
	/*font-size: 1.2rem;*/
	width: 2.0rem;
	height: 2.0rem;
	padding: 0rem;
	border: none;
	padding-top: 0.1rem;
	min-width: 2rem;
}

.my-btn-icon i {
	flex: 1 1 0%;
}

.my-btn:hover:not([disabled]) {
	background-color: var(--my-light);
	transition: 0.2s;
	/*border-radius: 5px;*/
}

/* ======================================= 
   Form elements  
   ======================================= */

.my-checkbox {
	width: 2rem !important;
	height: 2rem !important;
}

.my-hidden {
	display: none !important; 
}

/* ------------------
    General
   ------------------ */
.my-overlay {
	position: fixed;
	top: 0;
	bottom: 0;
	left: 0;
	right: 0;
	width: 100%;
	height: 100%;
	background: rgba(0, 0, 0, 0.5);
	backdrop-filter: blur(1px);
	/*z-index: 2000;*/
}

.my-fit-content {
	height: fit-content;
}

.my-flex {
	display: flex;
	gap: .5rem;
} 

.my-col-0 {
	display: flex;
	flex: 0 0 0%;
	flex-flow: column nowrap;
}

.my-col-1 {
	display: flex;
	flex: 1 0 0%;
	flex-flow: column nowrap;
}

.my-col-2 {
	display: flex;
	flex: 2 0 0%;
	flex-flow: column nowrap;
}

.my-row-0 {
	display: flex;
	flex: 0 0 0%;
	flex-flow: row nowrap;
	gap: .5rem;
}

.my-row-1 {
	display: flex;
	flex: 1 0 0%;
	flex-flow: row nowrap;
	gap: .5rem;
}

@media (max-width : 480px) {
	.my-row-0:not(.my-fix-size), 
	.my-row-1:not(.my-fix-size) {
		flex-direction: column !important;
	}
}


/* ============== vertical align ============== */
.my-align-top {
	align-items: flex-start;
}

.my-align-middle {
	align-items: center;
}

.my-align-bottom {
	align-items: flex-end;
}

/* ============= horizontal align ==============*/
.my-align-start {
	justify-content: flex-start;
	text-align: left;
}

.my-align-center {
	justify-content: center;
	text-align: center;
}

.my-align-end {
	justify-content: flex-end;
	text-align: right;
}

/* ------------------ */
.my-nowrap {
	flex-wrap: nowrap;
	overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
}

.my-scrollable {
	overflow-y: auto;
}

.my-disabled, .my-disabled * {
  opacity: 0.6;
  cursor: not-allowed;
}

/* ------------------
   Framed box 
   ------------------ */
   
   .my-frame-box {
      position: relative;
      border: 1px solid;
      padding: .7rem 0.5rem 0.5rem 0.5rem;
      width: 100%;
      margin: 1rem auto;
    }

    .my-frame-box > div:first-child {
      position: absolute;
      top: -11px;
      font-size: 16px;
      background-color: var(--surface3);
    }
    
    .my-frame-box > div:first-child::before {
  		content: "\00a0 ";
	}
	.my-frame-box > div:first-child::after {
  		content: "\00a0 ";
	}

/* ------------------
   Attachment 
   ------------------ */
.my-input-group {
	position: relative;
	display: flex;
	flex-wrap: nowrap;
	align-items: stretch;
}

.my-input-btn {
	border-radius: 0.25rem 0rem 0rem 0.25rem;
	flex: 1 0 0px;
}

.my-btn-input {
	border-radius: 0rem 0.25rem 0.25rem 0rem;
	border: 1px solid var(--my-border-color);
	height: unset;
	margin-right: 0.6rem;
}

.my-input-group label {
	margin: 0 0.5rem;
}

.my-input-alarm {
	color: var(--my-alarm-color);
	font-size: small;
	white-space: pre-wrap;
	word-wrap: break-word;
}

/* ======================================= 
   header - body - footer
   ======================================= */
.my-main-frame {
	max-width: 600px;
}

.my-container {
	display: flex;
	flex-direction: column;
	background-color: var(--my-bg-color);
	width: 100%;
	height: 100%;
	overflow-y: clip;
}

.my-header {
	display: flex;
	position: sticky;
	padding: 0.3rem 0rem 0.3rem 0.5rem;
	/*z-index: 10;*/
	background-color: var(--my-head-bg-color);
	color: var(--my-head-color);
}

.my-body {
	position: relative;
	flex: 1 1 0%;
	display: flex;
	flex-flow: column nowrap;
}

.my-body-scrollable {
	overflow-y: auto;
	border-left: 1px solid var(--my-tab-border-color);
	border-right: 1px solid var(--my-tab-border-color);
	border-bottom: 1px solid var(--my-tab-border-color);
	background-color: var(--my-tab-bg-color);
}

.my-scrollable {
	overflow: auto;
}

.my-footer {
	position: sticky;
	padding: 0.1rem .3rem .1rem .3rem;
	/*z-index: 10;*/
	background-color: var(--my-head-bg-color);
	display: flex;
	flex: 0 1 0%;
	flex-flow: row wrap;
	gap: 0.5rem;
	align-items: center;
	font-size: 0.8rem;
}

.my-body .slide-box {
	display: flex;
	flex-flow: column nowrap;
	height: 100%;
}

.my-screen-center {
	position: absolute;
	top: 50%;
	left: 50%;
	-webkit-transform: translate(-50%, -50%);
	transform: translate(-50%, -50%);
}


[draggable=true] {
  cursor: grab;
}

.my-disable-touch-select {
    -webkit-touch-callout: none; /* iOS Safari */
    -webkit-user-select: none;   /* Chrome/Safari/Opera */
    -khtml-user-select: none;    /* Old Safari */
    -moz-user-select: none;      /* Firefox */
    -ms-user-select: none;       /* IE/Edge */
    user-select: none;
}


/* ======================================= 
   collapse 
   ======================================= */
.my-collapse-open {}

.my-collapse-close {
	display: none;
	opacity: 0;
}

/* ======================================= 
   Tab                                     
   ======================================= */
.my-tab {
	display: flex;
	width: 100%;
	height: 100%;
}

.my-tab ul {
	display: flex;
	flex-wrap: wrap;
	padding-left: 0;
	margin-top: 0;
	margin-bottom: 0;
	list-style: none;
	align-items: flex-end;
	border-bottom: 1px solid var(--my-tab-border-color);
	width: 100%;
}

.my-tab li {
	display: inline-block;
}

.my-tab li .my-btn {
	float: left;
	border: none;
	outline: none;
	border-radius: 0px;
	background-color: var(--my-body-color);
	color: var(--my-tab-color);
	border-top-left-radius: 0.25rem;
	border-top-right-radius: 0.25rem;
	margin-right: 1px;
}

.my-tab li .my-active {
	margin-bottom: -1px;
	background-color: var(--my-tab-bg-color) !important;
	color: var(--my-btn-hover-color) !important;
	border-top: 1px solid var(--my-tab-border-color) !important;
	border-left: 1px solid var(--my-tab-border-color) !important;
	border-right: 1px solid var(--my-tab-border-color) !important;
	border-bottom: 1px solid var(--my-tab-bg-color) !important;
	border-top-left-radius: 0.25rem;
	border-top-right-radius: 0.25rem;
}

.my-tab-box {
	display: none;
	padding: 6px 12px;
	border: 1px solid #ccc;
	border-top: none;
}

/* ======================================= *
   badge                                   
   ======================================= */
.my-badge {
	display: flex;
	justify-content: center;
	align-items: center;
	color: var(--btn-color);
	padding: 0.1rem 0.1rem;
	/*margin: 0.1rem 0.2rem;*/
	font-weight: 500;
	background: var(--btn-bg-hover-color);
	border-radius: 9999px;
	padding: .2rem .5rem;
}

.my-badge .my-label {
	font-size: 0.75rem;
	padding: 0rem 0.5rem;
}

.my-badge .my-btn {
	padding: 0.1rem 0.5rem 0rem 0rem;
	font-size: 0.75rem;
}

.my-badge .my-btn:hover {
	cursor: pointer;
}

.my-badge .my-icon {
	padding: 0.1rem 0.5rem 0rem 0rem;
	font-size: 0.75rem;
}

.my-pill {
	display: inline-block;
	color: var(--btn-color);
	font-size: .75em;
	font-weight: 700;
	background: var(--btn-bg-hover-color);
	border-radius: 9999px;
	padding: 0.35em 0.65em;
	line-height: 1;
	margin-left: 0.5rem;
}

/* =======================================
   swicth ON OFF                                  
   ======================================= */
.switch {
	position: relative;
	display: inline-block;
	width: 60px;
	height: 34px;
}

/* Hide default HTML checkbox */
.switch input {
	opacity: 0;
	width: 0;
	height: 0;
}