@import url('https://fonts.googleapis.com/css2?family=Inter:ital,wght@0,400;0,700;1,400;1,700&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Open+Sans:ital,wght@0,300..800;1,300..800&display=swap');

:root {
    --gutter:15%;
    --fs:16px;
    --fg:#3e3e3e;
    --secondary-fg:#505050;
    --primary:#03739f;
    --bg:#d1d1d1;
    --secondary-bg:#f6f6f6;
    --transparent-bg:rgba(246, 246, 246, 0.5);
    --button-bg:#3a3a3a;
    --light-bg:#505050;
    --border:#afafaf;
    --secondary-border:#c1c1c1;
    --light-border:#cdcdcd;
    --padding:5px;
    --secondary-padding:8px;
    --radius:10px;
    --small-shadow:0 4px 12px rgba(5, 5, 5, 0.08);
    --shadow:0 8px 32px rgba(0, 0, 0, 0.1);
    --darker-shadow:4px 4px 10px rgba(0, 0, 0, 0.3);
    --blur:15px;
    --zoom:1.025;
    --red:#d5251c;
    --orange:#ff9500;
    --yellow:#ffcc00;
    --green:#1a973c;
    --blue:#007aff;
    --indigo:#5856d6;
    --violet:#af52de;
    --pink:#a5009a;
}

::-webkit-scrollbar {width:8px;height:8px}
::-webkit-scrollbar-button {display:none !important;width:0;height:0;opacity:0}
::-webkit-scrollbar-track {background:transparent}
::-webkit-scrollbar-track-piece {background:transparent;display:none}
::-webkit-scrollbar-thumb {background-color:var(--bg);border-radius:8px;border:2px solid transparent}
::-webkit-scrollbar-thumb:hover {background-color:var(--border)}
* {scrollbar-width:thin;scrollbar-color:var(--bg) transparent}
.no-scroll::-webkit-scrollbar {height:0;width:0}
.no-scroll {scrollbar-width:none}
.no-scroll {-ms-overflow-style:none}
.no-scrollbars {overflow:visible;scrollbar-width:none;-ms-overflow-style:none}
.no-scrollbars::-webkit-scrollbar {display:none}

/*TOOL TIPS*/
.tooltip {position:absolute;background-color:var(--primary);color:white;padding:5px 10px;border-radius:var(--radius);font-size:14px;z-index:91100;opacity:0.6;display:none;pointer-events:none;max-width:200px}
.tooltip::after {content:'';position:absolute}

/*BACKGROUND COLOR CLASSES*/
.no-background {background-color:rgba(0, 0, 0, 0)}
.background-red {background-color:var(--red) !important}
.background-orange {background-color:var(--orange) !important}
.background-yellow {background-color:var(--yellow) !important}
.background-green {background-color:var(--green) !important}
.background-blue {background-color:var(--blue) !important}
.background-indigo {background-color:var(--indigo) !important}
.background-violet {background-color:var(--violet) !important}
.background-pink {background-color:var(--pink) !important}
.background-black {background-color:#000 !important}
.background-white {background-color:#fff !important}
.background-background {background-color:var(--bg) !important}
.background-primary {background-color:var(--primary) !important}
.background-secondary {background-color:var(--secondary-bg) !important}
.background-border {background-color:var(--border) !important}

.faded-background-primary {background-color:rgba(13, 125, 175, 0.24) !important;backdrop-filter:opacity(0.5)}

/*TEXT MODIFICATIONS*/
.text-color {color:var(--fg) !important}
.text-primary {color:var(--primary) !important}
.text-red, .text-hover-red:hover {color:var(--red) !important;stroke:var(--red) !important}
.text-orange {color:var(--orange) !important;stroke:var(--orange) !important}
.text-yellow {color:var(--yellow) !important;stroke:var(--yellow) !important}
.text-green {color:var(--green) !important;stroke:var(--green) !important}
.text-blue {color:var(--blue) !important;stroke:var(--blue) !important}
.text-indigo {color:var(--indigo) !important}
.text-violet {color:var(--violet) !important}
.text-pink {color:var(--pink) !important}
.text-foreground {color:var(--fg) !important;stroke:var(--fg) !important}

.align-left {text-align:left !important}
.center, .align-center {text-align:center;justify-content:center}
.align-right {text-align:right !important}
.no-wrap {white-space:nowrap}
.scroller {overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch;scrollbar-width:none;-ms-overflow-style:none}
.scroller::-webkit-scrollbar {display:none}
.smaller {font-size:calc(var(--fs) - 4px)}
.bold {font-weight:bold}

/*BORDER COLORS*/
.border-red {border-color:var(--red) !important}
.border-orange {border-color:var(--orange) !important}
.border-yellow {border-color:var(--yellow) !important}
.border-green {border-color:var(--green) !important}
.border-green-focus:focus {border-color:var(--green) !important}
.border-blue {border-color:var(--blue) !important}
.border-indigo {border-color:var(--indigo) !important}
.border-violet {border-color:var(--violet) !important}
.border-pink {border-color:var(--pink) !important}
.primary-border {border-color:var(--primary) !important}

/*POSITIONAL*/
.float-right {float:right !important}
.float-left {float:left}
.left {left:10px}
.right {right:35px}
.top, .align-top {vertical-align:top !important}
.vertical-center {vertical-align:middle}
.bottom, .align-bottom {vertical-align:bottom !important}
.relative {position:relative}
.absolute {position:absolute}
.fixed {position:fixed}
.top-right {top:0;right:0}
.top-left {top:0;left:0}
.small-space-right {margin-right:5px}
.space-right {margin-right:10px}
.space-left {margin-left:10px}
.space-right svg {width:18px;height:18px;float:left;margin:1px 6px 0 0}

/*GENERAL DISPLAY*/
.inline {display:inline-block !important}
.none {display:none}
.brick {display:block}
.brick .float-right {margin-top:10px}
.switcher:not(.adjust-top):not(.large-adjust-top) {margin-top:0}
.hidden {overflow:hidden}
.visible {overflow:visible}
.on-top {z-index:2988}
.max-width {max-width:240px}

/*SPACING MODIFIERS*/
.small-spaced, .small-spacer {margin-top:0;margin-bottom:4px}
.spaced, .spacer {margin-top:15px}
.big-spacer {padding-top:30px}
.no-margin {margin:0 !important}
.no-margin-top {margin:0 !important}
.tiny-margin-right {margin-right:6px}
.tiny-margin-left {margin-left:6px}
.small-margin-right {margin-right:10px}
.small-margin-left {margin-left:10px}
.margin-right {margin-right:15px}
.margin-left {margin-left:15px}
.small-margin-top {margin-top:5px}
.small-margin-bottom {margin-bottom:5px}
.medium-margin-top {margin-top:10px}
.margin-top {margin-top:15px}
.medium-margin-top {margin-top:30px}
.large-margin-top {margin-top:60px}
.large-margin-bottom {margin-bottom:60px}
.medium-margin-bottom {margin-bottom:10px}
.margin-bottom {margin-bottom:15px}
.padded {padding:var(--secondary-padding)}
.no-padding {padding:0}
.padding-left {padding-left:10px}
.padding-right {padding-right:10px}
.small-padding {padding:5px}
.medium-padding {padding:15px}
.large-padding {padding:30px}
.very-small-padding-top {padding-top:3px}
.very-small-padding {padding-top:1px}
.very-small-padding svg {width:20px;height:20px}
.small-padding-top {padding-top:5px}
.padding-top {padding-top:10px}
.padding-bottom {padding-bottom:10px}
.medium-padding-top {padding-top:15px}
.large-padding-top {padding-top:30px}
.larger-padding-top {padding-top:45px}
.large-padding-bottom {padding-bottom:30px}
.small-padding-left {padding-left:5px}
.small-padding-right {padding-right:5px}
.bottomed {bottom:10px}
.large-adjust-top {margin-top:-6px}
.adjust-top {margin-top:-3px}
.tiny-text {font-size:calc(var(--fs) - 4px)}
.super-tiny-text {font-size:calc(var(--fs) - 6px)}
.strong {font-weight:bold}

/*VISUAL CLASSES*/
.hover-zoom {transition:all 100ms}
.hover-zoom:hover {transform:scale(1.05)}
.blurred {backdrop-filter:blur(var(--blur))}
.pointer {cursor:pointer}
.events {pointer-events:all}
.no-events {pointer-events:none}

/*SHAPES*/
.cube {width:25px;height:25px;margin:0 2px 0 2px}
.round {border-radius:50% !important}

/*IMAGES*/
.margined-icon {width:40px;height:40px;margin-right:10px;object-fit:contain}
.contained {object-fit:contain}
.filled {object-fit:fill}
.cover {object-fit:cover}
.tiny-icon {width:15px !important;height:15px !important}
.smaller-icon {width:18px !important;height:18px !important}
.small-icon {width:20px !important;height:20px !important}
.icon {width:40px;height:40px}
.medium-icon {width:60px;height:60px}
.large-icon {width:80px !important;height:80px !important}
.real-large-icon {width:120px !important;height:120px !important}

/*CONTEXT MENU*/
.custom-context-menu {position:fixed;z-index:7000;box-shadow:var(--shadow);padding:5px;border-radius:var(--radius);border:1px solid var(--secondary-border);backdrop-filter:blur(var(--blur));background-color:var(--transparent-bg)}
.custom-context-menu.hidden {display:none}
.context-menu-item {transition:all 100ms;opacity:0.75;cursor:pointer;padding:6px 10px 6px 8px;border-radius:calc(var(--radius) - 2px)}
.context-menu-item:hover {opacity:1;transform:scale(var(--zoom));box-shadow:var(--shadow);background-color:var(--secondary-bg)}
.context-menu-item svg {width:18px;height:18px;margin-right:8px;vertical-align:bottom}

/*MESSAGES (TOAST NOTIFICATIONS)*/
.message {z-index:42069;position:fixed;bottom:24px;left:50%;transform:translateX(-50%) translateY(100%);background:var(--secondary-bg);color:var(--fg);padding:12px 18px;border-radius:var(--radius);font-size:14px;box-shadow:0 8px 24px rgba(0,0,0,0.25);opacity:0;pointer-events:none;transition:transform 0.35s ease, opacity 0.35s ease}
.message.show {transform:translateX(-50%) translateY(0);opacity:1}
.message.background-red, .message.background-green {color:white}
.standard-notification-tray {position:fixed;top:14px;right:14px;z-index:42070;display:flex;flex-direction:column;gap:10px;width:min(360px,calc(100vw - 28px));pointer-events:none}
.standard-notification {pointer-events:auto;overflow:hidden;border:1px solid var(--border);border-radius:var(--radius);background:var(--transparent-bg);color:var(--fg);box-shadow:var(--shadow);backdrop-filter:blur(var(--blur));opacity:0;transform:translateX(18px);transition:opacity 180ms ease, transform 180ms ease}
.standard-notification.show {opacity:1;transform:translateX(0)}
.standard-notification-main {display:grid;grid-template-columns:34px minmax(0,1fr) auto auto;align-items:center;gap:10px;padding:12px}
.standard-notification-icon {width:34px;height:34px;display:flex;align-items:center;justify-content:center;border:1px solid var(--border);border-radius:var(--radius);background:var(--secondary-bg)}
.standard-notification-icon svg {width:22px;height:22px;display:block;color:var(--fg)}
.standard-notification-copy {min-width:0}
.standard-notification-title {font-weight:700;font-size:14px;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.standard-notification-message {margin-top:3px;font-size:12px;line-height:1.3;color:var(--faded);overflow-wrap:anywhere}
.standard-notification-dismiss, .standard-notification-toggle {width:30px;height:30px;padding:4px;display:flex;align-items:center;justify-content:center}
.standard-notification-dismiss svg, .standard-notification-toggle svg {width:18px;height:18px}
.standard-notification[data-expanded="true"] .standard-notification-toggle svg {transform:rotate(180deg)}
.standard-notification-details {display:none;border-top:1px solid var(--border);padding:10px 12px 12px 56px;font-size:12px;line-height:1.35;color:var(--fg);background:var(--secondary-bg)}
.standard-notification[data-expanded="true"] .standard-notification-details {display:block}
@media (max-width: 560px) {.standard-notification-tray {top:10px;right:10px;width:calc(100vw - 20px)}}
.file-open-progress {z-index:42068;position:fixed;bottom:24px;left:50%;transform:translateX(-50%) translateY(100%);min-width:min(420px,calc(100vw - 32px));max-width:min(480px,calc(100vw - 32px));background:var(--secondary-bg);color:var(--fg);padding:12px 14px;border-radius:var(--radius);box-shadow:0 8px 24px rgba(0,0,0,0.25);opacity:0;pointer-events:none;transition:transform 0.35s ease, opacity 0.35s ease}
.file-open-progress.interactive {pointer-events:auto}
.file-open-progress.show {transform:translateX(-50%) translateY(0);opacity:1}
.file-open-progress-header {display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:13px;margin-bottom:8px}
.file-open-progress-label {font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.file-open-progress-value {font-size:12px;opacity:.75}
.file-open-progress-track {height:8px;border-radius:999px;overflow:hidden;background:var(--bg);border:1px solid var(--border)}
.file-open-progress-bar {height:100%;width:0%;background:var(--primary);transition:width 120ms ease}
.file-open-progress.indeterminate .file-open-progress-bar {width:35%;animation:file-open-progress-indeterminate 1.1s ease-in-out infinite}
.file-upload-multi-progress {max-width:min(520px,calc(100vw - 32px))}
.file-upload-multi-header {grid-template-columns:28px minmax(0,1fr) auto;display:grid}
.file-upload-multi-toggle {width:28px;height:28px;display:inline-flex;align-items:center;justify-content:center;padding:0;font-weight:700;line-height:1}
.file-upload-multi-title {min-width:0}
.file-upload-multi-current {margin-top:2px;font-size:12px;opacity:.72;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.file-upload-multi-pending {margin-top:10px;padding-top:10px;border-top:1px solid var(--border)}
.file-upload-multi-pending-label {font-size:11px;opacity:.65;margin-bottom:6px;text-transform:uppercase}
.file-upload-multi-pending-list {display:flex;flex-direction:column;gap:5px;max-height:150px;overflow:auto}
.file-upload-multi-pending-item {display:grid;grid-template-columns:24px minmax(0,1fr);align-items:center;gap:8px;font-size:12px}
.file-upload-multi-pending-index {display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border:1px solid var(--border);border-radius:999px;opacity:.75}
.file-upload-multi-pending-name {white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.file-upload-multi-pending-empty {font-size:12px;opacity:.7}
@keyframes file-open-progress-indeterminate {0% {transform:translateX(-120%)} 50% {transform:translateX(90%)} 100% {transform:translateX(240%)}}

/*COLOR PICKER*/
.colors {display:flex;border-radius:var(--radius);overflow:hidden;margin-top:10px;min-height:30px;border:1px solid var(--border)}
.color-option {transition:all 100ms;min-width:8px;flex:1;height:30px;cursor:pointer;clear:both;margin:0;display:inline-block;padding:0;border:0;gap:0}
.color-option .color-name {display:none;color:white;font-size:12px;padding-top:8px;text-shadow:var(--shadow);text-align:center}
.color-option:hover {flex:6;z-index:420}
.color-option:hover .color-name {display:block}

/*NUMBER PICKER*/
.number-picker {white-space:nowrap;overflow-x:auto}
.number-picker .number {transition:all 100ms;padding:10px;display:inline-block;font-size:var(--font-size);color:#808080;cursor:pointer}
.number-picker .number:hover, .number-picker .selected-number {transform:scale(2);color:var(--primary)}
