926 lines
		
	
	
	
		
			18 KiB
		
	
	
	
		
			SCSS
		
	
	
	
	
	
			
		
		
	
	
			926 lines
		
	
	
	
		
			18 KiB
		
	
	
	
		
			SCSS
		
	
	
	
	
	
| @import './_variables.scss';
 | |
| 
 | |
| #app {
 | |
|   min-height: 100vh;
 | |
|   max-width: 100%;
 | |
|   overflow: hidden;
 | |
| }
 | |
| 
 | |
| .app-bg-wrapper {
 | |
|   position: fixed;
 | |
|   z-index: -1;
 | |
|   height: 100%;
 | |
|   left: 0;
 | |
|   right: -20px;
 | |
|   background-size: cover;
 | |
|   background-repeat: no-repeat;
 | |
|   background-position: 0 50%;
 | |
| }
 | |
| 
 | |
| i[class^='icon-'] {
 | |
|   user-select: none;
 | |
| }
 | |
| 
 | |
| h4 {
 | |
|   margin: 0;
 | |
| }
 | |
| 
 | |
| #content {
 | |
|   box-sizing: border-box;
 | |
|   padding-top: 60px;
 | |
|   margin: auto;
 | |
|   min-height: 100vh;
 | |
|   max-width: 980px;
 | |
|   align-content: flex-start;
 | |
| }
 | |
| .underlay {
 | |
|   background-color: rgba(0,0,0,0.15);
 | |
|   background-color: var(--underlay, rgba(0,0,0,0.15));
 | |
| }
 | |
| 
 | |
| .text-center {
 | |
|   text-align: center;
 | |
| }
 | |
| 
 | |
| html {
 | |
|   font-size: 14px;
 | |
| }
 | |
| 
 | |
| body {
 | |
|   font-family: sans-serif;
 | |
|   font-family: var(--interfaceFont, sans-serif);
 | |
|   margin: 0;
 | |
|   color: $fallback--text;
 | |
|   color: var(--text, $fallback--text);
 | |
|   max-width: 100vw;
 | |
|   overflow-x: hidden;
 | |
|   -webkit-font-smoothing: antialiased;
 | |
|   -moz-osx-font-smoothing: grayscale;
 | |
| 
 | |
|   &.hidden {
 | |
|     display: none;
 | |
|   }
 | |
| }
 | |
| 
 | |
| a {
 | |
|   text-decoration: none;
 | |
|   color: $fallback--link;
 | |
|   color: var(--link, $fallback--link);
 | |
| }
 | |
| 
 | |
| button {
 | |
|   user-select: none;
 | |
|   color: $fallback--text;
 | |
|   color: var(--btnText, $fallback--text);
 | |
|   background-color: $fallback--fg;
 | |
|   background-color: var(--btn, $fallback--fg);
 | |
|   border: none;
 | |
|   border-radius: $fallback--btnRadius;
 | |
|   border-radius: var(--btnRadius, $fallback--btnRadius);
 | |
|   cursor: pointer;
 | |
|   box-shadow: $fallback--buttonShadow;
 | |
|   box-shadow: var(--buttonShadow);
 | |
|   font-size: 14px;
 | |
|   font-family: sans-serif;
 | |
|   font-family: var(--interfaceFont, sans-serif);
 | |
| 
 | |
|   i[class*=icon-] {
 | |
|     color: $fallback--text;
 | |
|     color: var(--btnText, $fallback--text);
 | |
|   }
 | |
| 
 | |
|   &::-moz-focus-inner {
 | |
|     border: none;
 | |
|   }
 | |
| 
 | |
|   &:hover {
 | |
|     box-shadow: 0px 0px 4px rgba(255, 255, 255, 0.3);
 | |
|     box-shadow: var(--buttonHoverShadow);
 | |
|   }
 | |
| 
 | |
|   &:active {
 | |
|     box-shadow: 0px 0px 4px 0px rgba(255, 255, 255, 0.3), 0px 1px 0px 0px rgba(0, 0, 0, 0.2) inset, 0px -1px 0px 0px rgba(255, 255, 255, 0.2) inset;
 | |
|     box-shadow: var(--buttonPressedShadow);
 | |
|     color: $fallback--text;
 | |
|     color: var(--btnPressedText, $fallback--text);
 | |
|     background-color: $fallback--fg;
 | |
|     background-color: var(--btnPressed, $fallback--fg);
 | |
|     i {
 | |
|       color: $fallback--text;
 | |
|       color: var(--btnPressedText, $fallback--text);
 | |
|     }
 | |
|   }
 | |
| 
 | |
|   &:disabled {
 | |
|     cursor: not-allowed;
 | |
|     color: $fallback--text;
 | |
|     color: var(--btnDisabledText, $fallback--text);
 | |
|     background-color: $fallback--fg;
 | |
|     background-color: var(--btnDisabled, $fallback--fg);
 | |
|     i {
 | |
|       color: $fallback--text;
 | |
|       color: var(--btnDisabledText, $fallback--text);
 | |
|     }
 | |
|   }
 | |
| 
 | |
|   &.toggled {
 | |
|     color: $fallback--text;
 | |
|     color: var(--btnToggledText, $fallback--text);
 | |
|     background-color: $fallback--fg;
 | |
|     background-color: var(--btnToggled, $fallback--fg);
 | |
|     box-shadow: 0px 0px 4px 0px rgba(255, 255, 255, 0.3), 0px 1px 0px 0px rgba(0, 0, 0, 0.2) inset, 0px -1px 0px 0px rgba(255, 255, 255, 0.2) inset;
 | |
|     box-shadow: var(--buttonPressedShadow);
 | |
|     i {
 | |
|       color: $fallback--text;
 | |
|       color: var(--btnToggledText, $fallback--text);
 | |
|     }
 | |
|   }
 | |
| 
 | |
|   &.danger {
 | |
|     // TODO: add better color variable
 | |
|     color: $fallback--text;
 | |
|     color: var(--alertErrorPanelText, $fallback--text);
 | |
|     background-color: $fallback--alertError;
 | |
|     background-color: var(--alertError, $fallback--alertError);
 | |
|   }
 | |
| }
 | |
| 
 | |
| input, textarea, .select, .input {
 | |
| 
 | |
|   &.unstyled {
 | |
|     border-radius: 0;
 | |
|     background: none;
 | |
|     box-shadow: none;
 | |
|     height: unset;
 | |
|   }
 | |
| 
 | |
|   border: none;
 | |
|   border-radius: $fallback--inputRadius;
 | |
|   border-radius: var(--inputRadius, $fallback--inputRadius);
 | |
|   box-shadow: 0px 1px 0px 0px rgba(0, 0, 0, 0.2) inset, 0px -1px 0px 0px rgba(255, 255, 255, 0.2) inset, 0px 0px 2px 0px rgba(0, 0, 0, 1) inset;
 | |
|   box-shadow: var(--inputShadow);
 | |
|   background-color: $fallback--fg;
 | |
|   background-color: var(--input, $fallback--fg);
 | |
|   color: $fallback--lightText;
 | |
|   color: var(--inputText, $fallback--lightText);
 | |
|   font-family: sans-serif;
 | |
|   font-family: var(--inputFont, sans-serif);
 | |
|   font-size: 14px;
 | |
|   margin: 0;
 | |
|   box-sizing: border-box;
 | |
|   display: inline-block;
 | |
|   position: relative;
 | |
|   height: 28px;
 | |
|   line-height: 16px;
 | |
|   hyphens: none;
 | |
|   padding: 8px .5em;
 | |
| 
 | |
|   &.select {
 | |
|     padding: 0;
 | |
|   }
 | |
| 
 | |
|   &:disabled, &[disabled=disabled] {
 | |
|     cursor: not-allowed;
 | |
|     opacity: 0.5;
 | |
|   }
 | |
| 
 | |
|   .icon-down-open {
 | |
|     position: absolute;
 | |
|     top: 0;
 | |
|     bottom: 0;
 | |
|     right: 5px;
 | |
|     height: 100%;
 | |
|     color: $fallback--text;
 | |
|     color: var(--inputText, $fallback--text);
 | |
|     line-height: 28px;
 | |
|     z-index: 0;
 | |
|     pointer-events: none;
 | |
|   }
 | |
| 
 | |
|   select {
 | |
|     -webkit-appearance: none;
 | |
|     -moz-appearance: none;
 | |
|     appearance: none;
 | |
|     background: transparent;
 | |
|     border: none;
 | |
|     color: $fallback--text;
 | |
|     color: var(--inputText, --text, $fallback--text);
 | |
|     margin: 0;
 | |
|     padding: 0 2em 0 .2em;
 | |
|     font-family: sans-serif;
 | |
|     font-family: var(--inputFont, sans-serif);
 | |
|     font-size: 14px;
 | |
|     width: 100%;
 | |
|     z-index: 1;
 | |
|     height: 28px;
 | |
|     line-height: 16px;
 | |
|   }
 | |
| 
 | |
|   &[type=range] {
 | |
|     background: none;
 | |
|     border: none;
 | |
|     margin: 0;
 | |
|     box-shadow: none;
 | |
|     flex: 1;
 | |
|   }
 | |
| 
 | |
|   &[type=radio] {
 | |
|     display: none;
 | |
|     &:checked + label::before {
 | |
|       box-shadow: 0px 0px 2px black inset, 0px 0px 0px 4px $fallback--fg inset;
 | |
|       box-shadow: var(--inputShadow), 0px 0px 0px 4px var(--fg, $fallback--fg) inset;
 | |
|       background-color: var(--accent, $fallback--link);
 | |
|     }
 | |
|     &:disabled {
 | |
|       &,
 | |
|       & + label,
 | |
|       & + label::before {
 | |
|         opacity: .5;
 | |
|       }
 | |
|     }
 | |
|     + label::before {
 | |
|       flex-shrink: 0;
 | |
|       display: inline-block;
 | |
|       content: '';
 | |
|       transition: box-shadow 200ms;
 | |
|       width: 1.1em;
 | |
|       height: 1.1em;
 | |
|       border-radius: 100%; // Radio buttons should always be circle
 | |
|       box-shadow: 0px 0px 2px black inset;
 | |
|       box-shadow: var(--inputShadow);
 | |
|       margin-right: .5em;
 | |
|       background-color: $fallback--fg;
 | |
|       background-color: var(--input, $fallback--fg);
 | |
|       vertical-align: top;
 | |
|       text-align: center;
 | |
|       line-height: 1.1em;
 | |
|       font-size: 1.1em;
 | |
|       box-sizing: border-box;
 | |
|       color: transparent;
 | |
|       overflow: hidden;
 | |
|       box-sizing: border-box;
 | |
|     }
 | |
|   }
 | |
| 
 | |
|   &[type=checkbox] {
 | |
|     display: none;
 | |
|     &:checked + label::before {
 | |
|       color: $fallback--text;
 | |
|       color: var(--inputText, $fallback--text);
 | |
|     }
 | |
|     &:disabled {
 | |
|       &,
 | |
|       & + label,
 | |
|       & + label::before {
 | |
|         opacity: .5;
 | |
|       }
 | |
|     }
 | |
|     + label::before {
 | |
|       flex-shrink: 0;
 | |
|       display: inline-block;
 | |
|       content: '✔';
 | |
|       transition: color 200ms;
 | |
|       width: 1.1em;
 | |
|       height: 1.1em;
 | |
|       border-radius: $fallback--checkboxRadius;
 | |
|       border-radius: var(--checkboxRadius, $fallback--checkboxRadius);
 | |
|       box-shadow: 0px 0px 2px black inset;
 | |
|       box-shadow: var(--inputShadow);
 | |
|       margin-right: .5em;
 | |
|       background-color: $fallback--fg;
 | |
|       background-color: var(--input, $fallback--fg);
 | |
|       vertical-align: top;
 | |
|       text-align: center;
 | |
|       line-height: 1.1em;
 | |
|       font-size: 1.1em;
 | |
|       box-sizing: border-box;
 | |
|       color: transparent;
 | |
|       overflow: hidden;
 | |
|       box-sizing: border-box;
 | |
|     }
 | |
|   }
 | |
| }
 | |
| 
 | |
| option {
 | |
|   color: $fallback--text;
 | |
|   color: var(--text, $fallback--text);
 | |
|   background-color: $fallback--bg;
 | |
|   background-color: var(--bg, $fallback--bg);
 | |
| }
 | |
| 
 | |
| .hide-number-spinner {
 | |
|   -moz-appearance: textfield;
 | |
|   &[type=number]::-webkit-inner-spin-button,
 | |
|   &[type=number]::-webkit-outer-spin-button {
 | |
|     opacity: 0;
 | |
|     display: none;
 | |
|   }
 | |
| }
 | |
| 
 | |
| i[class*=icon-] {
 | |
|   color: $fallback--icon;
 | |
|   color: var(--icon, $fallback--icon)
 | |
| }
 | |
| 
 | |
| .btn-block {
 | |
|   display: block;
 | |
|   width: 100%;
 | |
| }
 | |
| 
 | |
| .btn-group {
 | |
|   position: relative;
 | |
|   display: inline-flex;
 | |
|   vertical-align: middle;
 | |
| 
 | |
|   button {
 | |
|     position: relative;
 | |
|     flex: 1 1 auto;
 | |
| 
 | |
|     &:not(:last-child) {
 | |
|       border-top-right-radius: 0;
 | |
|       border-bottom-right-radius: 0;
 | |
|     }
 | |
| 
 | |
|     &:not(:first-child) {
 | |
|       border-top-left-radius: 0;
 | |
|       border-bottom-left-radius: 0;
 | |
|     }
 | |
|   }
 | |
| }
 | |
| 
 | |
| .container {
 | |
|   display: flex;
 | |
|   flex-wrap: wrap;
 | |
|   margin: 0;
 | |
|   padding: 0 10px 0 10px;
 | |
| }
 | |
| 
 | |
| .item {
 | |
|   flex: 1;
 | |
|   line-height: 50px;
 | |
|   height: 50px;
 | |
|   overflow: hidden;
 | |
|   display: flex;
 | |
|   flex-wrap: wrap;
 | |
| 
 | |
|   .nav-icon {
 | |
|     margin-left: 0.4em;
 | |
|   }
 | |
| 
 | |
|   &.right {
 | |
|     justify-content: flex-end;
 | |
|   }
 | |
| }
 | |
| 
 | |
| .auto-size {
 | |
|   flex: 1
 | |
| }
 | |
| 
 | |
| .nav-bar {
 | |
|   padding: 0;
 | |
|   width: 100%;
 | |
|   align-items: center;
 | |
|   position: fixed;
 | |
|   height: 50px;
 | |
|   box-sizing: border-box;
 | |
| 
 | |
|   button {
 | |
|     &, i[class*=icon-] {
 | |
|       color: $fallback--text;
 | |
|       color: var(--btnTopBarText, $fallback--text);
 | |
|     }
 | |
| 
 | |
|     &:active {
 | |
|       background-color: $fallback--fg;
 | |
|       background-color: var(--btnPressedTopBar, $fallback--fg);
 | |
|       color: $fallback--text;
 | |
|       color: var(--btnPressedTopBarText, $fallback--text);
 | |
|     }
 | |
| 
 | |
|     &:disabled {
 | |
|       color: $fallback--text;
 | |
|       color: var(--btnDisabledTopBarText, $fallback--text);
 | |
|     }
 | |
| 
 | |
|     &.toggled {
 | |
|       color: $fallback--text;
 | |
|       color: var(--btnToggledTopBarText, $fallback--text);
 | |
|       background-color: $fallback--fg;
 | |
|       background-color: var(--btnToggledTopBar, $fallback--fg)
 | |
|     }
 | |
|   }
 | |
| 
 | |
| 
 | |
|   .logo {
 | |
|     display: flex;
 | |
|     position: absolute;
 | |
|     top: 0;
 | |
|     bottom: 0;
 | |
|     left: 0;
 | |
|     right: 0;
 | |
| 
 | |
|     align-items: stretch;
 | |
|     justify-content: center;
 | |
|     flex: 0 0 auto;
 | |
|     z-index: -1;
 | |
|     transition: opacity;
 | |
|     transition-timing-function: ease-out;
 | |
|     transition-duration: 100ms;
 | |
| 
 | |
|     .mask {
 | |
|       mask-repeat: no-repeat;
 | |
|       mask-position: center;
 | |
|       mask-size: contain;
 | |
|       background-color: $fallback--fg;
 | |
|       background-color: var(--topBarText, $fallback--fg);
 | |
|       position: absolute;
 | |
|       top: 0;
 | |
|       bottom: 0;
 | |
|       left: 0;
 | |
|       right: 0;
 | |
|     }
 | |
| 
 | |
|     img {
 | |
|       height: 100%;
 | |
|       object-fit: contain;
 | |
|       display: block;
 | |
|       flex: 0;
 | |
|     }
 | |
|   }
 | |
| 
 | |
|   .inner-nav {
 | |
|     position: relative;
 | |
|     margin: auto;
 | |
|     box-sizing: border-box;
 | |
|     padding-left: 10px;
 | |
|     padding-right: 10px;
 | |
|     display: flex;
 | |
|     align-items: center;
 | |
|     flex-basis: 970px;
 | |
|     height: 50px;
 | |
| 
 | |
|     a, a i {
 | |
|       color: $fallback--link;
 | |
|       color: var(--topBarLink, $fallback--link);
 | |
|     }
 | |
|   }
 | |
| }
 | |
| 
 | |
| main-router {
 | |
|   flex: 1;
 | |
| }
 | |
| 
 | |
| .status.compact {
 | |
|   color: rgba(0, 0, 0, 0.42);
 | |
|   font-weight: 300;
 | |
| 
 | |
|   p {
 | |
|     margin: 0;
 | |
|     font-size: 0.8em
 | |
|   }
 | |
| }
 | |
| 
 | |
| /* Panel */
 | |
| 
 | |
| .panel {
 | |
|   display: flex;
 | |
|   position: relative;
 | |
| 
 | |
|   flex-direction: column;
 | |
|   margin: 0.5em;
 | |
| 
 | |
|   background-color: $fallback--bg;
 | |
|   background-color: var(--bg, $fallback--bg);
 | |
| 
 | |
|   &::after, & {
 | |
|     border-radius: $fallback--panelRadius;
 | |
|     border-radius: var(--panelRadius, $fallback--panelRadius);
 | |
|   }
 | |
| 
 | |
|   &::after {
 | |
|     content: '';
 | |
|     position: absolute;
 | |
| 
 | |
|     top: 0;
 | |
|     bottom: 0;
 | |
|     left: 0;
 | |
|     right: 0;
 | |
| 
 | |
|     pointer-events: none;
 | |
| 
 | |
|     box-shadow: 1px 1px 4px rgba(0,0,0,.6);
 | |
|     box-shadow: var(--panelShadow);
 | |
|   }
 | |
| }
 | |
| 
 | |
| .panel-body:empty::before {
 | |
|   content: "¯\\_(ツ)_/¯"; // Could use words but it'd require translations
 | |
|   display: block;
 | |
|   margin: 1em;
 | |
|   text-align: center;
 | |
| }
 | |
| 
 | |
| .panel-heading {
 | |
|   display: flex;
 | |
|   flex: none;
 | |
|   border-radius: $fallback--panelRadius $fallback--panelRadius 0 0;
 | |
|   border-radius: var(--panelRadius, $fallback--panelRadius) var(--panelRadius, $fallback--panelRadius) 0 0;
 | |
|   background-size: cover;
 | |
|   padding: .6em .6em;
 | |
|   text-align: left;
 | |
|   line-height: 28px;
 | |
|   color: var(--panelText);
 | |
|   background-color: $fallback--fg;
 | |
|   background-color: var(--panel, $fallback--fg);
 | |
|   align-items: baseline;
 | |
|   box-shadow: var(--panelHeaderShadow);
 | |
| 
 | |
|   .title {
 | |
|     flex: 1 0 auto;
 | |
|     font-size: 1.3em;
 | |
|   }
 | |
| 
 | |
|   .faint {
 | |
|     background-color: transparent;
 | |
|     color: $fallback--faint;
 | |
|     color: var(--panelFaint, $fallback--faint);
 | |
|   }
 | |
|   .faint-link {
 | |
|     color: $fallback--faint;
 | |
|     color: var(--faintLink, $fallback--faint);
 | |
|   }
 | |
| 
 | |
|   .alert {
 | |
|     white-space: nowrap;
 | |
|     text-overflow: ellipsis;
 | |
|     overflow-x: hidden;
 | |
|   }
 | |
| 
 | |
|   button {
 | |
|     flex-shrink: 0;
 | |
|   }
 | |
| 
 | |
|   button, .alert {
 | |
|     // height: 100%;
 | |
|     line-height: 21px;
 | |
|     min-height: 0;
 | |
|     box-sizing: border-box;
 | |
|     margin: 0;
 | |
|     margin-left: .5em;
 | |
|     min-width: 1px;
 | |
|     align-self: stretch;
 | |
|   }
 | |
| 
 | |
|   button {
 | |
|     &, i[class*=icon-] {
 | |
|       color: $fallback--text;
 | |
|       color: var(--btnPanelText, $fallback--text);
 | |
|     }
 | |
| 
 | |
|     &:active {
 | |
|       background-color: $fallback--fg;
 | |
|       background-color: var(--btnPressedPanel, $fallback--fg);
 | |
|       color: $fallback--text;
 | |
|       color: var(--btnPressedPanelText, $fallback--text);
 | |
|     }
 | |
| 
 | |
|     &:disabled {
 | |
|       color: $fallback--text;
 | |
|       color: var(--btnDisabledPanelText, $fallback--text);
 | |
|     }
 | |
| 
 | |
|     &.toggled {
 | |
|       color: $fallback--text;
 | |
|       color: var(--btnToggledPanelText, $fallback--text);
 | |
|     }
 | |
|   }
 | |
| 
 | |
|   a {
 | |
|     color: $fallback--link;
 | |
|     color: var(--panelLink, $fallback--link)
 | |
|   }
 | |
| }
 | |
| 
 | |
| .panel-heading.stub {
 | |
|   border-radius: $fallback--panelRadius;
 | |
|   border-radius: var(--panelRadius, $fallback--panelRadius);
 | |
| }
 | |
| 
 | |
| .panel-footer {
 | |
|   border-radius: 0 0 $fallback--panelRadius $fallback--panelRadius;
 | |
|   border-radius: 0 0 var(--panelRadius, $fallback--panelRadius) var(--panelRadius, $fallback--panelRadius);
 | |
| 
 | |
| 
 | |
|   .faint {
 | |
|     color: $fallback--faint;
 | |
|     color: var(--panelFaint, $fallback--faint);
 | |
|   }
 | |
| 
 | |
|   a {
 | |
|     color: $fallback--link;
 | |
|     color: var(--panelLink, $fallback--link)
 | |
|   }
 | |
| }
 | |
| 
 | |
| .panel-body > p {
 | |
|   line-height: 18px;
 | |
|   padding: 1em;
 | |
|   margin: 0;
 | |
| }
 | |
| 
 | |
| .container > * {
 | |
|   min-width: 0px;
 | |
| }
 | |
| 
 | |
| .fa {
 | |
|   color: grey;
 | |
| }
 | |
| 
 | |
| nav {
 | |
|   z-index: 1000;
 | |
|   color: var(--topBarText);
 | |
|   background-color: $fallback--fg;
 | |
|   background-color: var(--topBar, $fallback--fg);
 | |
|   color: $fallback--faint;
 | |
|   color: var(--faint, $fallback--faint);
 | |
|   box-shadow: 0px 0px 4px rgba(0,0,0,.6);
 | |
|   box-shadow: var(--topBarShadow);
 | |
| }
 | |
| 
 | |
| .fade-enter-active, .fade-leave-active {
 | |
|   transition: opacity .2s
 | |
| }
 | |
| .fade-enter, .fade-leave-active {
 | |
|   opacity: 0
 | |
| }
 | |
| 
 | |
| .main {
 | |
|   flex-basis: 50%;
 | |
|   flex-grow: 1;
 | |
|   flex-shrink: 1;
 | |
| }
 | |
| 
 | |
| .sidebar-bounds {
 | |
|   flex: 0;
 | |
|   flex-basis: 35%;
 | |
| }
 | |
| 
 | |
| .sidebar-flexer {
 | |
|   flex: 1;
 | |
|   flex-basis: 345px;
 | |
|   width: 365px;
 | |
| }
 | |
| 
 | |
| .mobile-shown {
 | |
|   display: none;
 | |
| }
 | |
| 
 | |
| @media all and (min-width: 800px) {
 | |
|   body {
 | |
|     overflow-y: scroll;
 | |
|   }
 | |
| 
 | |
|   .sidebar-bounds {
 | |
|     overflow: hidden;
 | |
|     max-height: 100vh;
 | |
|     width: 345px;
 | |
|     position: fixed;
 | |
|     margin-top: -10px;
 | |
| 
 | |
|     .sidebar-scroller {
 | |
|       height: 96vh;
 | |
|       width: 365px;
 | |
|       padding-top: 10px;
 | |
|       padding-right: 50px;
 | |
|       overflow-x: hidden;
 | |
|       overflow-y: scroll;
 | |
|     }
 | |
| 
 | |
|     .sidebar {
 | |
|       width: 345px;
 | |
|     }
 | |
|   }
 | |
|   .sidebar-flexer {
 | |
|     max-height: 96vh;
 | |
|     flex-shrink: 0;
 | |
|     flex-grow: 0;
 | |
|   }
 | |
| }
 | |
| .badge {
 | |
|   display: inline-block;
 | |
|   border-radius: 99px;
 | |
|   min-width: 22px;
 | |
|   max-width: 22px;
 | |
|   min-height: 22px;
 | |
|   max-height: 22px;
 | |
|   font-size: 15px;
 | |
|   line-height: 22px;
 | |
|   text-align: center;
 | |
|   vertical-align: middle;
 | |
|   white-space: nowrap;
 | |
|   padding: 0;
 | |
| 
 | |
|   &.badge-notification {
 | |
|     background-color: $fallback--cRed;
 | |
|     background-color: var(--badgeNotification, $fallback--cRed);
 | |
|     color: white;
 | |
|     color: var(--badgeNotificationText, white);
 | |
|   }
 | |
| }
 | |
| 
 | |
| .alert {
 | |
|   margin: 0.35em;
 | |
|   padding: 0.25em;
 | |
|   border-radius: $fallback--tooltipRadius;
 | |
|   border-radius: var(--tooltipRadius, $fallback--tooltipRadius);
 | |
|   min-height: 28px;
 | |
|   line-height: 28px;
 | |
| 
 | |
|   &.error {
 | |
|     background-color: $fallback--alertError;
 | |
|     background-color: var(--alertError, $fallback--alertError);
 | |
|     color: $fallback--text;
 | |
|     color: var(--alertErrorText, $fallback--text);
 | |
| 
 | |
|     .panel-heading & {
 | |
|       color: $fallback--text;
 | |
|       color: var(--alertErrorPanelText, $fallback--text);
 | |
|     }
 | |
|   }
 | |
| 
 | |
|   &.warning {
 | |
|     background-color: $fallback--alertWarning;
 | |
|     background-color: var(--alertWarning, $fallback--alertWarning);
 | |
|     color: $fallback--text;
 | |
|     color: var(--alertWarningText, $fallback--text);
 | |
| 
 | |
|     .panel-heading & {
 | |
|       color: $fallback--text;
 | |
|       color: var(--alertWarningPanelText, $fallback--text);
 | |
|     }
 | |
|   }
 | |
| }
 | |
| 
 | |
| .faint {
 | |
|   color: $fallback--faint;
 | |
|   color: var(--faint, $fallback--faint);
 | |
| }
 | |
| 
 | |
| .faint-link {
 | |
|   color: $fallback--faint;
 | |
|   color: var(--faint, $fallback--faint);
 | |
| 
 | |
|   &:hover {
 | |
|     text-decoration: underline;
 | |
|   }
 | |
| }
 | |
| 
 | |
| @media all and (min-width: 800px) {
 | |
|   .logo {
 | |
|     opacity: 1 !important;
 | |
|   }
 | |
| }
 | |
| 
 | |
| .item.right {
 | |
|   text-align: right;
 | |
| }
 | |
| 
 | |
| .visibility-notice {
 | |
|   padding: .5em;
 | |
|   border: 1px solid $fallback--faint;
 | |
|   border: 1px solid var(--faint, $fallback--faint);
 | |
|   border-radius: $fallback--inputRadius;
 | |
|   border-radius: var(--inputRadius, $fallback--inputRadius);
 | |
| }
 | |
| 
 | |
| .notice-dismissible {
 | |
|   padding-right: 4rem;
 | |
|   position: relative;
 | |
| 
 | |
|   .dismiss {
 | |
|     position: absolute;
 | |
|     top: 0;
 | |
|     right: 0;
 | |
|     padding: .5em;
 | |
|     color: inherit;
 | |
|   }
 | |
| }
 | |
| 
 | |
| .button-icon {
 | |
|   font-size: 1.2em;
 | |
| }
 | |
| 
 | |
| @keyframes shakeError {
 | |
|   0% {
 | |
|     transform: translateX(0);
 | |
|   }
 | |
|   15% {
 | |
|     transform: translateX(0.375rem);
 | |
|   }
 | |
|   30% {
 | |
|     transform: translateX(-0.375rem);
 | |
|   }
 | |
|   45% {
 | |
|     transform: translateX(0.375rem);
 | |
|   }
 | |
|   60% {
 | |
|     transform: translateX(-0.375rem);
 | |
|   }
 | |
|   75% {
 | |
|     transform: translateX(0.375rem);
 | |
|   }
 | |
|   90% {
 | |
|     transform: translateX(-0.375rem);
 | |
|   }
 | |
|   100% {
 | |
|     transform: translateX(0);
 | |
|   }
 | |
| }
 | |
| 
 | |
| @media all and (max-width: 800px) {
 | |
|   .mobile-hidden {
 | |
|     display: none;
 | |
|   }
 | |
| 
 | |
|   .panel-switcher {
 | |
|     display: flex;
 | |
|   }
 | |
| 
 | |
|   .container {
 | |
|     padding: 0;
 | |
|   }
 | |
| 
 | |
|   .panel {
 | |
|     margin: 0.5em 0 0.5em 0;
 | |
|   }
 | |
| 
 | |
|   .menu-button {
 | |
|     display: block;
 | |
|     margin-right: 0.8em;
 | |
|   }
 | |
| }
 | |
| 
 | |
| .select-multiple {
 | |
|   display: flex;
 | |
|   .option-list {
 | |
|     margin: 0;
 | |
|     padding-left: .5em;
 | |
|   }
 | |
| }
 | |
| .setting-list,
 | |
| .option-list{
 | |
|   list-style-type: none;
 | |
|   padding-left: 2em;
 | |
|   li {
 | |
|     margin-bottom: 0.5em;
 | |
|   }
 | |
|   .suboptions {
 | |
|     margin-top: 0.3em
 | |
|   }
 | |
| }
 | |
| 
 | |
| .login-hint {
 | |
|   text-align: center;
 | |
| 
 | |
|   @media all and (min-width: 801px) {
 | |
|     display: none;
 | |
|   }
 | |
| 
 | |
|   a {
 | |
|     display: inline-block;
 | |
|     padding: 1em 0px;
 | |
|     width: 100%;
 | |
|   }
 | |
| }
 | |
| 
 | |
| .btn.btn-default {
 | |
|   min-height: 28px;
 | |
| }
 | |
| 
 | |
| .animate-spin {
 | |
|   animation: spin 2s infinite linear;
 | |
|   display: inline-block;
 | |
| }
 | |
| 
 | |
| @keyframes spin {
 | |
|   0% {
 | |
|     transform: rotate(0deg);
 | |
|   }
 | |
| 
 | |
|   100% {
 | |
|     transform: rotate(359deg);
 | |
|   }
 | |
| }
 | |
| 
 | |
| .new-status-notification {
 | |
|   position:relative;
 | |
|   margin-top: -1px;
 | |
|   font-size: 1.1em;
 | |
|   border-width: 1px 0 0 0;
 | |
|   border-style: solid;
 | |
|   border-color: var(--border, $fallback--border);
 | |
|   padding: 10px;
 | |
|   z-index: 1;
 | |
|   background-color: $fallback--fg;
 | |
|   background-color: var(--panel, $fallback--fg);
 | |
| }
 | 
