sailboat-design
Version:
A simple sailboat simulator
1,060 lines (934 loc) • 26.7 kB
CSS
*,
*::before,
*::after {
box-sizing: border-box; }
body {
margin: 0;
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
font-size: 1rem;
font-weight: 400;
line-height: 1.5;
color: #212529;
background-color: #fff;
-webkit-text-size-adjust: 100%;
-webkit-tap-highlight-color: rgba(0, 0, 0, 0); }
[tabindex="-1"]:focus:not(:focus-visible) {
outline: 0 ; }
hr {
margin: 1rem 0;
color: inherit;
background-color: currentColor;
border: 0;
opacity: 0.25; }
hr:not([size]) {
height: 1px; }
h1, h2, h3, h4, h5, h6 {
margin-top: 0;
margin-bottom: 0.5rem;
font-weight: 500;
line-height: 1.2; }
h1 {
font-size: 2.5rem; }
h2 {
font-size: 2rem; }
h3 {
font-size: 1.75rem; }
h4 {
font-size: 1.5rem; }
h5 {
font-size: 1.25rem; }
h6 {
font-size: 1rem; }
p {
margin-top: 0;
margin-bottom: 1rem; }
abbr[title],
abbr[data-original-title] {
text-decoration: underline;
text-decoration: underline dotted;
cursor: help;
text-decoration-skip-ink: none; }
address {
margin-bottom: 1rem;
font-style: normal;
line-height: inherit; }
ol,
ul {
padding-left: 2rem; }
ol,
ul,
dl {
margin-top: 0;
margin-bottom: 1rem; }
ol ol,
ul ul,
ol ul,
ul ol {
margin-bottom: 0; }
dt {
font-weight: 700; }
dd {
margin-bottom: .5rem;
margin-left: 0; }
blockquote {
margin: 0 0 1rem; }
b,
strong {
font-weight: bolder; }
small {
font-size: 0.875em; }
sub,
sup {
position: relative;
font-size: 0.75em;
line-height: 0;
vertical-align: baseline; }
sub {
bottom: -.25em; }
sup {
top: -.5em; }
a {
color: #0d6efd;
text-decoration: none; }
a:hover {
color: #024dbc;
text-decoration: underline; }
a:not([href]), a:not([href]):hover {
color: #024dbc;
text-decoration: none; }
pre,
code,
kbd,
samp {
font-family: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
font-size: 1em; }
pre {
display: block;
margin-top: 0;
margin-bottom: 1rem;
overflow: auto;
font-size: 0.875em; }
pre code {
font-size: inherit;
color: inherit;
word-break: normal; }
code {
font-size: 0.875em;
color: #d63384;
word-wrap: break-word; }
a > code {
color: inherit; }
figure {
margin: 0 0 1rem; }
img {
vertical-align: middle; }
svg {
overflow: hidden;
vertical-align: middle; }
table {
border-collapse: collapse; }
caption {
padding-top: .5rem;
padding-bottom: .5rem;
color: #6c757d;
text-align: left;
caption-side: bottom; }
th {
text-align: inherit; }
label {
display: inline-block;
margin-bottom: .5rem; }
button {
border-radius: 0; }
input,
button,
select,
optgroup,
textarea {
margin: 0;
font-family: inherit;
font-size: inherit;
line-height: inherit; }
button,
input {
overflow: visible; }
button,
select {
text-transform: none; }
select {
word-wrap: normal; }
[list]::-webkit-calendar-picker-indicator {
display: none; }
button,
[type="button"],
[type="reset"],
[type="submit"] {
-webkit-appearance: button; }
button:not(:disabled),
[type="button"]:not(:disabled),
[type="reset"]:not(:disabled),
[type="submit"]:not(:disabled) {
cursor: pointer; }
::-moz-focus-inner {
padding: 0;
border-style: none; }
input[type="date"],
input[type="time"],
input[type="datetime-local"],
input[type="month"] {
-webkit-appearance: textfield; }
textarea {
overflow: auto;
resize: vertical; }
fieldset {
min-width: 0;
padding: 0;
margin: 0;
border: 0; }
legend {
float: left;
width: 100%;
padding: 0;
margin-bottom: 0.5rem;
font-size: 1.5rem;
line-height: inherit;
color: inherit;
white-space: normal; }
mark {
padding: 0.2em;
background-color: #fcf8e3; }
progress {
vertical-align: baseline; }
::-webkit-datetime-edit {
overflow: visible;
line-height: 0; }
[type="search"] {
outline-offset: -2px;
-webkit-appearance: textfield; }
::-webkit-search-decoration {
-webkit-appearance: none; }
::-webkit-color-swatch-wrapper {
padding: 0; }
::-webkit-file-upload-button {
font: inherit;
-webkit-appearance: button; }
output {
display: inline-block; }
summary {
display: list-item;
cursor: pointer; }
template {
display: none; }
main {
display: block; }
[hidden] {
display: none ; }
.zoom-in-top-enter {
opacity: 0;
transform: scaleY(0); }
.zoom-in-top-enter-active {
opacity: 1;
transform: scaleY(1);
transition: transform 300ms cubic-bezier(0.23, 1, 0.32, 1) 100ms, opacity 300ms cubic-bezier(0.23, 1, 0.32, 1) 100ms;
transform-origin: center top; }
.zoom-in-top-exit {
opacity: 1; }
.zoom-in-top-exit-active {
opacity: 0;
transform: scaleY(0);
transition: transform 300ms cubic-bezier(0.23, 1, 0.32, 1) 100ms, opacity 300ms cubic-bezier(0.23, 1, 0.32, 1) 100ms;
transform-origin: center top; }
.zoom-in-left-enter {
opacity: 0;
transform: scale(0.45, 0.45); }
.zoom-in-left-enter-active {
opacity: 1;
transform: scale(1, 1);
transition: transform 300ms cubic-bezier(0.23, 1, 0.32, 1) 100ms, opacity 300ms cubic-bezier(0.23, 1, 0.32, 1) 100ms;
transform-origin: top left; }
.zoom-in-left-exit {
opacity: 1; }
.zoom-in-left-exit-active {
opacity: 0;
transform: scale(0.45, 0.45);
transition: transform 300ms cubic-bezier(0.23, 1, 0.32, 1) 100ms, opacity 300ms cubic-bezier(0.23, 1, 0.32, 1) 100ms;
transform-origin: top left; }
.zoom-in-right-enter {
opacity: 0;
transform: scale(0.45, 0.45); }
.zoom-in-right-enter-active {
opacity: 1;
transform: scale(1, 1);
transition: transform 300ms cubic-bezier(0.23, 1, 0.32, 1) 100ms, opacity 300ms cubic-bezier(0.23, 1, 0.32, 1) 100ms;
transform-origin: top right; }
.zoom-in-right-exit {
opacity: 1; }
.zoom-in-right-exit-active {
opacity: 0;
transform: scale(0.45, 0.45);
transition: transform 300ms cubic-bezier(0.23, 1, 0.32, 1) 100ms, opacity 300ms cubic-bezier(0.23, 1, 0.32, 1) 100ms;
transform-origin: top right; }
.zoom-in-bottom-enter {
opacity: 0;
transform: scaleY(0); }
.zoom-in-bottom-enter-active {
opacity: 1;
transform: scaleY(1);
transition: transform 300ms cubic-bezier(0.23, 1, 0.32, 1) 100ms, opacity 300ms cubic-bezier(0.23, 1, 0.32, 1) 100ms;
transform-origin: center bottom; }
.zoom-in-bottom-exit {
opacity: 1; }
.zoom-in-bottom-exit-active {
opacity: 0;
transform: scaleY(0);
transition: transform 300ms cubic-bezier(0.23, 1, 0.32, 1) 100ms, opacity 300ms cubic-bezier(0.23, 1, 0.32, 1) 100ms;
transform-origin: center bottom; }
.btn {
position: relative;
display: inline-block;
font-weight: 400;
line-height: 1.5;
color: #212529;
white-space: nowrap;
text-align: center;
vertical-align: middle;
background-image: none;
border: 1px solid transparent;
padding: 0.375rem 0.75rem;
font-size: 1rem;
border-radius: 0.25rem;
box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 1px rgba(0, 0, 0, 0.075);
cursor: pointer;
transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; }
.btn.disabled, .btn[disabled] {
cursor: not-allowed;
opacity: 0.65;
box-shadow: none; }
.btn.disabled > *, .btn[disabled] > * {
pointer-events: none; }
.btn-size-lg {
padding: 0.5rem 1rem;
font-size: 1.25rem;
border-radius: 0.3rem; }
.btn-size-sm {
padding: 0.25rem 0.5rem;
font-size: 0.875rem;
border-radius: 0.2rem; }
.btn-primary {
background-color: #0d6efd;
border-color: #0d6efd;
color: #fff; }
.btn-primary:hover {
background-color: #3385fd;
border-color: #408cfd;
color: white; }
.btn-primary:focus, .btn-primary.focus {
border-color: #408cfd;
color: white; }
.btn-primary:disabled, .btn-primary.disabled {
color: #fff;
background: #0d6efd;
border-color: #0d6efd; }
.btn-danger {
background-color: #dc3545;
border-color: #dc3545;
color: #fff; }
.btn-danger:hover {
background-color: #e25663;
border-color: #e4606d;
color: white; }
.btn-danger:focus, .btn-danger.focus {
border-color: #e4606d;
color: white; }
.btn-danger:disabled, .btn-danger.disabled {
color: #fff;
background: #dc3545;
border-color: #dc3545; }
.btn-default {
background-color: #fff;
border-color: #ced4da;
color: #212529; }
.btn-default:hover {
background-color: #fff;
border-color: #0d6efd;
color: #0d6efd; }
.btn-default:focus, .btn-default.focus {
border-color: #0d6efd;
color: #0d6efd; }
.btn-default:disabled, .btn-default.disabled {
color: #212529;
background: #fff;
border-color: #ced4da; }
.btn-link {
font-weight: 400;
color: #0d6efd;
text-decoration: none;
box-shadow: none; }
.btn-link:hover {
color: #024dbc;
text-decoration: underline; }
.btn-link:focus, .btn-link.focus {
text-decoration: underline;
box-shadow: none; }
.btn-link:disabled, .btn-link.disabled {
cursor: none;
color: #6c757d;
pointer-events: none; }
.alert {
position: fixed;
top: 80px;
left: 50%;
transform: translateX(-50%);
display: flex;
width: 340px;
padding: 0.75rem 1.25rem;
margin-bottom: 1rem;
border-radius: 0.25rem;
background-image: none;
border: 1px solid transparent;
box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15);
color: #fff; }
.alert .alert-container {
width: 320px; }
.alert .alert-container .alert-title {
font-size: 1rem;
font-weight: 700; }
.alert .alert-container .alert-desc {
font-size: 0.875rem;
margin-top: 0.3rem; }
.alert .alert-close {
font-size: 1rem;
font-weight: 700;
padding: 0 .2em;
cursor: pointer; }
.alert-closed {
opacity: 0;
pointer-events: none; }
.alert-default {
background-color: #0d6efd; }
.alert-danger {
background-color: #dc3545; }
.alert-success {
background-color: #52c41a; }
.alert-warning {
background-color: #fd7e14; }
.menu {
display: flex;
position: relative;
flex-wrap: wrap;
padding-left: 0;
list-style: none;
border-bottom: 1px solid #dee2e6;
box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 1px rgba(0, 0, 0, 0.075); }
.menu > .menu-active_bar {
position: absolute;
background-color: #0d6efd;
transition: all 0.3s ease-in-out;
border-radius: 4px; }
.menu > .menu-item {
padding: 0.5rem 1rem;
cursor: pointer;
transition: all 0.15s ease-in-out; }
.menu > .menu-item:hover, .menu > .menu-item:focus {
text-decoration: none; }
.menu > .menu-item.is-disabled {
color: #6c757d;
pointer-events: none;
cursor: none; }
.menu > .menu-item:hover {
color: #0d6efd; }
.menu > .menu-item.is-active {
color: #0d6efd; }
.menu .submenu-item {
position: relative; }
.menu .submenu-item .submenu-title {
display: flex;
align-items: center; }
.menu .submenu-item .arrow-icon {
transition: transform .25s ease-in-out;
margin-left: 3px; }
.menu .submenu-item:hover .arrow-icon {
transform: rotate(-180deg); }
.menu .is-vertical .arrow-icon {
transform: rotate(-90deg) ; }
.menu .is-vertical.is-opened .arrow-icon {
transform: rotate(-180deg) ; }
.menu .submenu {
display: block;
list-style: none;
padding-left: 0;
white-space: nowrap;
transition: all 0.15s ease-in-out; }
.menu .submenu .menu-item {
padding: 0.5rem 1rem;
cursor: pointer;
transition: all 0.15s ease-in-out;
color: #212529; }
.menu .submenu .menu-item.is-active, .menu .submenu .menu-item:hover {
color: #0d6efd ; }
.menu .submenu .menu-item.is-disabled {
color: #6c757d;
pointer-events: none;
cursor: none; }
.menu-horizontal {
padding-bottom: 2px; }
.menu-horizontal > .menu-item {
border-bottom: 3px solid transparent; }
.menu-horizontal > .menu-active_bar {
bottom: 0;
left: 0;
height: 3px; }
.menu-horizontal .submenu {
position: absolute;
background: #fff;
z-index: 100;
top: calc(100% + 8px);
left: 0;
border: 1px solid #dee2e6;
box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.12), 0 0 6px 0 rgba(0, 0, 0, 0.04); }
.menu-vertical {
flex-direction: column;
border-bottom: 0px;
margin: 10px 20px;
border-right: 1px solid #dee2e6;
padding-left: 2px; }
.menu-vertical > .menu-active_bar {
top: 0;
left: 0;
width: 3px; }
.menu-vertical > .menu-item {
border-left: 3px solid transparent; }
.menu-vertical > .menu-item:hover {
border-bottom: 0px; }
.menu-vertical > .menu-item.is-active {
border-bottom: 0px; }
.sail-tabs {
display: flex;
position: relative;
flex-wrap: wrap;
padding-left: 0;
list-style: none;
border-bottom: 1px solid #dee2e6;
border-radius: 0.25rem;
box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 1px rgba(0, 0, 0, 0.075); }
.sail-tabs > .sail-tabs-active_bar {
position: absolute;
background-color: #0d6efd;
transition: all 0.3s ease-in-out;
border-radius: 4px; }
.sail-tabs > .sail-tab {
padding: 0.5rem 1rem;
cursor: pointer;
transition: all 0.15s ease-in-out, border-color 0.15s ease-in-out; }
.sail-tabs > .sail-tab:hover, .sail-tabs > .sail-tab:focus {
text-decoration: none; }
.sail-tabs > .sail-tab.is-disabled {
color: #6c757d;
pointer-events: none;
cursor: none; }
.sail-tabs > .sail-tab:hover {
color: #0d6efd; }
.sail-tabs > .sail-tab.is-active {
color: #0d6efd;
background-color: #fff; }
.sail-tabs_card {
padding-bottom: 0; }
.sail-tabs_card > .sail-tab {
border: 1px solid rgba(0, 0, 0, 0);
margin-bottom: -1px; }
.sail-tabs_card > .sail-tab.is-active {
color: #0d6efd;
background-color: #fff;
border-top-left-radius: .25rem;
border-top-right-radius: .25rem;
background-color: #fff;
border-color: #dee2e6 #dee2e6 #fff; }
.sail-tabs {
padding-bottom: 0px;
padding-top: 2px;
box-shadow: none; }
.sail-tabs > .sail-tabs-active_bar {
bottom: 0;
left: 0;
height: 3px; }
.sail-tabs_vertical {
flex-direction: column;
border-bottom: 0px;
margin: 10px 20px;
border-right: 1px solid #dee2e6;
padding-left: 2px;
box-shadow: none; }
.sail-tabs_vertical > .sail-tabs-active_bar {
top: 0;
left: 0;
width: 3px; }
.sail-tabs_vertical > .sail-tab:hover {
border-bottom: 0px; }
.sail-tabs_vertical > .sail-tab.is-active {
border-bottom: 0px; }
.sail-icon-primary {
color: #0d6efd; }
.sail-icon-secondary {
color: #6c757d; }
.sail-icon-success {
color: #52c41a; }
.sail-icon-info {
color: #17a2b8; }
.sail-icon-warning {
color: #fd7e14; }
.sail-icon-danger {
color: #dc3545; }
.sail-icon-light {
color: #f8f9fa; }
.sail-icon-dark {
color: #343a40; }
.sailboat-input-wrapper {
display: flex;
width: 100%;
position: relative; }
.sailboat-input-wrapper .icon-wrapper {
position: absolute;
height: 100%;
width: 35px;
justify-content: center;
color: #495057;
right: 0;
top: 0;
display: flex;
align-items: center; }
.sailboat-input-wrapper .icon-wrapper svg {
color: #6c757d; }
.icon-wrapper + .sailboat-input-inner {
padding-right: 35px; }
.sailboat-input-inner {
width: 100%;
padding: 0.375rem 0.75rem;
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
font-size: 1rem;
font-weight: 400;
line-height: 1.5;
color: #495057;
background-color: #fff;
background-clip: padding-box;
border: 1px solid #ced4da;
border-radius: 0.25rem;
box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.075);
transition: border-color 0.3s ease-in-out, box-shadow 0.3s ease-in-out; }
.sailboat-input-inner:focus {
color: #495057;
background-color: #fff;
border-color: #8bbafe;
outline: 0;
box-shadow: 0 0 0 0.08rem rgba(13, 110, 253, 0.25); }
.sailboat-input-inner::placeholder {
color: #6c757d;
opacity: 1; }
.sailboat-input-inner:disabled, .sailboat-input-inner[readonly] {
background-color: #e9ecef;
opacity: 1; }
.sailboat-input-group-prepend,
.sailboat-input-group-append {
display: flex;
align-items: center;
padding: 0.375rem 0.75rem;
margin-bottom: 0;
font-size: 1rem;
font-weight: 400;
line-height: 1.5;
color: #495057;
text-align: center;
white-space: nowrap;
background-color: #e9ecef;
border: 1px solid #ced4da;
border-radius: 0.25rem; }
.sailboat-input-group-append + .btn {
padding: 0;
border: 0; }
.input-group > .sailboat-input-group-prepend,
.input-group.input-group-append > .sailboat-input-inner {
border-top-right-radius: 0;
border-bottom-right-radius: 0; }
.input-group > .sailboat-input-group-append,
.input-group.input-group-prepend > .sailboat-input-inner {
border-top-left-radius: 0;
border-bottom-left-radius: 0; }
.input-size-sm .sailboat-input-inner {
padding: 0.25rem 0.5rem;
font-size: 0.875rem;
border-radius: 0.2rem; }
.input-size-lg .sailboat-input-inner {
padding: 0.5rem 1rem;
font-size: 1.25rem;
border-radius: 0.3rem; }
.sailboat-auto-complete {
position: relative; }
.sailboat-suggestion-list {
list-style: none;
padding-left: 0;
white-space: nowrap;
position: absolute;
background: #fff;
z-index: 100;
top: calc(100% + 8px);
left: 0;
border: 1px solid #dee2e6;
box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.12), 0 0 6px 0 rgba(0, 0, 0, 0.04);
width: 100%; }
.sailboat-suggestion-list .suggestion-loading-icon {
display: flex;
align-items: center;
justify-content: center;
min-height: 75px; }
.sailboat-suggestion-list .suggestion-item {
padding: 0.5rem 1rem;
cursor: pointer;
transition: all 0.15s ease-in-out;
color: #212529;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap; }
.sailboat-suggestion-list .suggestion-item.is-active {
background: #0d6efd ;
color: #fff ; }
.sailboat-suggestion-list .suggestion-item:hover {
color: #0d6efd ; }
.sailboat-select {
position: relative; }
.sailboat-select .sailboat-input-wrapper {
cursor: pointer; }
.sailboat-select .sailboat-input-wrapper:hover input {
border-color: #0d6efd ; }
.sailboat-select input[readonly] {
background-color: #fff;
border-color: #ced4da;
cursor: pointer;
opacity: 1; }
.sailboat-select input:disabled {
background-color: #e9ecef;
opacity: 1;
cursor: not-allowed; }
.sailboat-select .icon-wrapper {
transition: transform .25s ease-in-out;
transform: rotate(0deg) ;
cursor: pointer; }
.sailboat-select.menu-is-open .icon-wrapper {
transform: rotate(180deg) ; }
.sailboat-select-dropdown {
list-style: none;
padding-left: 0;
white-space: nowrap;
position: absolute;
background: #fff;
z-index: 100;
top: calc(100% + 8px);
left: 0;
border: 1px solid #dee2e6;
box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.12), 0 0 6px 0 rgba(0, 0, 0, 0.04);
width: 100%; }
.sailboat-select-dropdown .sailboat-select-item {
padding: 0.5rem 1rem;
cursor: pointer;
transition: all 0.15s ease-in-out;
color: #212529;
display: flex;
align-items: center;
justify-content: space-between; }
.sailboat-select-dropdown .sailboat-select-item.is-selected {
color: #0d6efd;
font-weight: 700; }
.sailboat-select-dropdown .sailboat-select-item.is-disabled {
color: #6c757d;
pointer-events: none;
cursor: default; }
.sailboat-select-dropdown .sailboat-select-item:hover {
background-color: rgba(13, 110, 253, 0.1); }
.sailboat-selected-tags {
position: absolute;
z-index: 100;
top: 0;
left: 0;
height: 100%;
max-width: 100%;
display: flex;
justify-content: center;
align-items: center;
flex-wrap: wrap; }
.sailboat-selected-tags .sailboat-tag {
display: flex;
align-items: center;
height: 80%;
padding: 2px 5px;
box-sizing: border-box;
border: 1px solid rgba(13, 110, 253, 0.2);
margin-left: 6px;
border-radius: 3px;
color: #0d6efd;
background-color: rgba(13, 110, 253, 0.1); }
.sailboat-selected-tags .sailboat-tag_icon {
margin-left: 3px;
cursor: pointer; }
.sailboat-selected-tags .sailboat-icon {
margin-left: 3px;
cursor: pointer; }
.sailboat-selected-tags .sailboat-icon:hover {
color: #0257d5; }
.sailboat-upload-component {
padding: 10px;
width: 300px; }
.sailboat-file-list {
padding: 10px 8px;
margin: 0;
max-width: 300px; }
.sailboat-file-list .sailboat-file-item {
transition: all 0.3s;
display: flex;
align-items: center;
justify-content: space-between;
list-style: none;
padding: 2px 0;
margin: 0;
border-radius: 3px; }
.sailboat-file-list .sailboat-file-item:hover {
cursor: pointer;
background-color: #e9ecef; }
.sailboat-file-list .sailboat-file-item:hover .file-status {
display: none; }
.sailboat-file-list .sailboat-file-item:hover .file-actions {
display: block; }
.sailboat-file-list .sailboat-file-item .file-name {
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
margin-right: 8px; }
.sailboat-file-list .sailboat-file-item .file-name span {
margin-left: 8px; }
.sailboat-file-list .sailboat-file-item .file-name-error {
color: #dc3545; }
.sailboat-file-list .sailboat-file-item .file-actions {
padding: 0 2px;
display: none; }
.sailboat-file-list .sailboat-file-process-line {
width: 100%;
height: 4px;
border-radius: 4px;
background-color: #f8f9fa;
overflow: hidden; }
.sailboat-file-list .sailboat-file-process-line .sailboat-file-process-line-inner {
display: flex;
align-items: center;
justify-content: center;
border-radius: 4px;
height: 100%;
transition: width 0.3s; }
.sailboat-file-list .sailboat-file-process-line .color--primary {
background-color: #0d6efd; }
.sailboat-file-list .sailboat-file-process-line .color--secondary {
background-color: #6c757d; }
.sailboat-file-list .sailboat-file-process-line .color--success {
background-color: #52c41a; }
.sailboat-file-list .sailboat-file-process-line .color--info {
background-color: #17a2b8; }
.sailboat-file-list .sailboat-file-process-line .color--warning {
background-color: #fd7e14; }
.sailboat-file-list .sailboat-file-process-line .color--danger {
background-color: #dc3545; }
.sailboat-file-list .sailboat-file-process-line .color--light {
background-color: #f8f9fa; }
.sailboat-file-list .sailboat-file-process-line .color--dark {
background-color: #343a40; }
.sailboat-upload-dragger {
display: flex;
height: 150px;
align-items: center;
justify-content: center;
flex-direction: column;
margin: 0 8px;
border: 2px dashed #dee2e6;
border-radius: 4px;
cursor: pointer;
transition: all 0.3s; }
.sailboat-upload-dragger.upload-draggering.color--primary {
border-color: #0d6efd;
background-color: rgba(13, 110, 253, 0.15); }
.sailboat-upload-dragger.upload-draggering.color--secondary {
border-color: #6c757d;
background-color: rgba(108, 117, 125, 0.15); }
.sailboat-upload-dragger.upload-draggering.color--success {
border-color: #52c41a;
background-color: rgba(82, 196, 26, 0.15); }
.sailboat-upload-dragger.upload-draggering.color--info {
border-color: #17a2b8;
background-color: rgba(23, 162, 184, 0.15); }
.sailboat-upload-dragger.upload-draggering.color--warning {
border-color: #fd7e14;
background-color: rgba(253, 126, 20, 0.15); }
.sailboat-upload-dragger.upload-draggering.color--danger {
border-color: #dc3545;
background-color: rgba(220, 53, 69, 0.15); }
.sailboat-upload-dragger.upload-draggering.color--light {
border-color: #f8f9fa;
background-color: rgba(248, 249, 250, 0.15); }
.sailboat-upload-dragger.upload-draggering.color--dark {
border-color: #343a40;
background-color: rgba(52, 58, 64, 0.15); }
.sailboat-upload-dragger.color--primary:hover {
border-color: #0d6efd;
background-color: rgba(13, 110, 253, 0.15); }
.sailboat-upload-dragger.color--secondary:hover {
border-color: #6c757d;
background-color: rgba(108, 117, 125, 0.15); }
.sailboat-upload-dragger.color--success:hover {
border-color: #52c41a;
background-color: rgba(82, 196, 26, 0.15); }
.sailboat-upload-dragger.color--info:hover {
border-color: #17a2b8;
background-color: rgba(23, 162, 184, 0.15); }
.sailboat-upload-dragger.color--warning:hover {
border-color: #fd7e14;
background-color: rgba(253, 126, 20, 0.15); }
.sailboat-upload-dragger.color--danger:hover {
border-color: #dc3545;
background-color: rgba(220, 53, 69, 0.15); }
.sailboat-upload-dragger.color--light:hover {
border-color: #f8f9fa;
background-color: rgba(248, 249, 250, 0.15); }
.sailboat-upload-dragger.color--dark:hover {
border-color: #343a40;
background-color: rgba(52, 58, 64, 0.15); }
.sailboat-form .sailboat-row {
position: relative;
display: flex;
align-items: center;
margin-bottom: 25px; }
.sailboat-form .sailboat-row.sailboat-row-no-label {
flex-direction: row-reverse; }
.sailboat-form .sailboat-row .sailboat-form-item {
flex-basis: 70%; }
.sailboat-form .sailboat-row .sailboat-form-item-has-error input {
transition: border-color 0.3s;
border-color: #dc3545;
box-shadow: 0 0 0 0.08rem rgba(220, 53, 69, 0.25); }
.sailboat-form .sailboat-row .sailboat-form-item-error {
position: absolute;
color: #dc3545; }
.sailboat-form .sailboat-row .sailboat-form-item-label {
flex-basis: 30%;
text-align: right;
padding-right: 20px; }
.sailboat-form .sailboat-row label {
margin-bottom: 0; }
.sailboat-form .sailboat-row .sailboat-form-item-required::before {
display: inline-block;
margin-right: 4px;
color: #dc3545;
font-size: 14px;
line-height: 1;
content: '*'; }
.sailboat-form .sailboat-row .sailboat-form-submit {
display: flex;
align-items: center;
justify-content: center; }
.sailboat-form-submit-area {
display: flex;
align-items: center;
justify-content: center; }