/* #region DOM */
*::placeholder { text-align:center; }
* { 
    user-select:none;
    cursor: var(--theme-cursor-default) 1 1, auto;
}


.selectable { user-select: text !important; cursor: var(--theme-cursor-default) 1 1, auto; }

/* input, input[type="text"], input[type="email"], input[type="password"], input[type="search"], input[type="date"], textarea, select { border-width:2px; border-style:solid; font-size: var(--fontSize); font-family: var(--fontFamily); border-radius:10px; padding:10px 12px; outline:none; transition:all var(--times-transition-colors) ease; width:auto; } */
input, input[type="text"], input[type="email"], input[type="password"], input[type="search"], input[type="date"], textarea, select { border-width:2px; border-style:solid; font-size: var(--fontSize); font-family: var(--fontFamily); border-radius:10px; padding:4px 6px; outline:none; transition:all var(--times-transition-colors) ease; width:auto; }
input.width\:100px { width:100px; }
input.width\:90px { width:90px; }
input.width\:75px { width:75px; }
input.width\:50px { width:50px; }
input.width\:25px { width:25px; }

*::placeholder, input[id="sAMAccountName"] { font-style:italic; font-weight:100; letter-spacing:3px; }

html, button { font-size: var(--fontSize); font-family: var(--fontFamily); }
/* button.monolyth, button.bluebutton, button.greenbutton, button.yellowbutton, button.redbutton { display:inline-block; padding:8px 10px; margin:0.2rem 1.6rem; font-weight:600; text-align:center; text-decoration:none; color:rgb(255, 255, 255); border:none; border-radius:8px; box-shadow:0 4px 6px rgba(0,0,0,0.1); transition:all var(--times-transition-colors) ease; } */
button.monolyth, button.bluebutton, button.greenbutton, button.yellowbutton, button.redbutton { display:inline-block; padding:4px 8px; margin:0px 5px; font-weight:600; text-align:center; text-decoration:none; color:rgb(255, 255, 255); border:none; border-radius:8px; box-shadow:0 4px 6px rgba(0,0,0,0.1); transition:all var(--times-transition-colors) ease; }

button.monolyth { background-color:transparent; }
button:not(:disabled).monolyth:hover { opacity:0.9; }
button.bluebutton { color:var(--theme-button-blue-default-color); background:var(--theme-button-blue-default-backcolor); }
button.greenbutton { color:var(--theme-button-green-default-color); background:var(--theme-button-green-default-backcolor); }
button.yellowbutton { color:var(--theme-button-yellow-default-color); background:var(--theme-button-yellow-default-backcolor); }
button.redbutton { color:var(--theme-button-red-default-color); background:var(--theme-button-red-default-backcolor); }
button:disabled { color:var(--theme-button-disabled-color); background:var(--theme-button-disabled-backcolor); }
button:not(:disabled).redbutton:hover { background:var(--theme-button-red-hover-color); background:var(--theme-button-red-hover-backcolor); }
button:not(:disabled).greenbutton:hover { background:var(--theme-button-green-hover-color); background:var(--theme-button-green-hover-backcolor); }
button:not(:disabled).bluebutton:hover { background:var(--theme-button-blue-hover-color); background:var(--theme-button-blue-hover-backcolor); }
button:not(:disabled).yellowbutton:hover { background:var(--theme-button-yellow-hover-color); background:var(--theme-button-yellow-hover-backcolor); }
/* #endregion */



/* #region Container */
.container.static { width:calc(100% - 10px); margin:5px auto; display:flex; gap:12px; min-height:0; overflow:auto; max-height:100%; flex-direction: column;}
/* .card.static { display:flex; flex-direction:column;flex: 0 0 auto; } */
.card.static.row { overflow:hidden; display:flex; flex-direction:row; flex-wrap: wrap;}
.card.static { overflow:hidden; display:flex; flex-direction:column; }

.container:not(.static) { width:calc(100% - 10px); margin:5px auto; display:grid; grid-template-columns:100%; gap:12px; min-height:0; overflow:auto; max-height:100%; }
.container:not(.static) * { box-sizing:border-box; }
.card { border-width:1px; border-style:solid; border-radius:8px; padding:15px; }

.grid { display:grid; gap:16px; grid-template-columns:repeat(auto-fit, minmax(200px, 1fr)); }
/* #endregion */


/* #region Copy icon */
.copy-icon { transition:opacity var(--times-transition-opaticty); cursor:var(--theme-cursor-pointer) -16 16, pointer; opacity:0.7; }
.copy-icon:hover { opacity:1; }
/* #endregion */


/* #region Tooltip */
.global-tooltip { position:fixed; padding:6px 8px; border-width:1px; border-style:solid; border-radius:10px; max-width:50vw; white-space:normal; z-index:999; pointer-events:none; opacity:0; transform:translateY(-30px); transition:opacity var(--times-transition-opaticty) ease; }
.global-tooltip.visible { opacity:1; }
/* #endregion*/


/* #region Scrollbar */
::-webkit-scrollbar { width:12px; height:12px; }
::-webkit-scrollbar-track { border-radius:0px; }
::-webkit-scrollbar-thumb { border-radius:6px; border-width:2px; border-style:solid; }
/* #endregion */


/* #region Messagebox */
#message-container { position: fixed; top: 1rem; right: 1px; display: flex; flex-direction: column; gap: 0.5rem; z-index: 1000; max-height: 80vh; padding-left: 15px; overflow-y: auto; overflow-x: visible; scrollbar-width: none; -ms-overflow-style: none; }
#message-container::-webkit-scrollbar { display: none; }
.message { border-radius: 8px; margin: 8px 8px 8px 0; padding: 10px 14px; width: auto; max-width: 45vw; animation: slideIn 0.4s ease-out; transition: transform var(--times-transition-transform) ease;  word-break: break-word; overflow-wrap: anywhere; }
.message:hover { transform:scale(1.02); }
.message-header { display:flex; justify-content:space-between; align-items:center; margin-bottom:6px; }
.message-title { flex:1; font-weight:600; }
.countdown { margin-right:8px; white-space:nowrap; }
.pin-div { margin-left:8px; cursor:var(--theme-cursor-pointer) -16 16, pointer; user-select:none; transition:transform 0.2s ease, color 0.2s ease; }
.pin-div:hover { transform:scale(1.2); }
.pin-div.pinned { transform:scale(1.1); }
@keyframes slideIn { 0% { opacity:0; transform:translateX(100%); } 60% { opacity:1; transform:translateX(-10px); } 80% { opacity:1; transform:translateX(5px); } 100% { opacity:1; transform:translateX(-10px); } }
@keyframes slideOut { 0% { opacity:1; transform:translateX(0); } 100% { opacity:1; transform:translateX(100%); } }
/* #endregion */


/* #region Toggle switch */
  /* 
    <label class="cb cb-switch">
      <input data-status="{{name}}" type="checkbox"  {{#if active}}checked{{/if}} >
      <span class="switch-track" aria-hidden="true">
        <span class="switch-thumb" aria-hidden="true"></span>
      </span>
      <span class="cb-label">Ein / Aus</span>
    </label> 
  */
.cb-switch input { position: absolute; opacity: 0; width: 0; height: 0; pointer-events: none; }
.switch-track { width: var(--responsive-switch-width); height: var(--responsive-switch-height); border-radius: 999px; padding: 3px; border: 1px solid; box-sizing: border-box; display: flex; align-items: center; position: relative; flex-shrink: 0; transition: background var(--times-transition-colors) ease, border-color var(--times-transition-colors) ease; }
.switch-thumb { position: absolute; top: 50%; left: 3px; width: calc(var(--responsive-switch-height) - 6px); height: calc(var(--responsive-switch-height) - 6px); background: var(--theme-switch-thumb); border-radius: 50%; box-shadow: 0 2px 6px rgba(0,0,0,.15); transform: translateY(-50%);transition: left var(--times-transition-transform) cubic-bezier(.2,.9,.2,1), background var(--times-transition-colors) ease; }
.cb-switch input:checked + .switch-track { background: var(--theme-switch-active); }
.cb-switch input:checked + .switch-track .switch-thumb { left: calc(var(--responsive-switch-width) - var(--responsive-switch-height) + 3px); }
.cb-switch input:not(:disabled):hover + .switch-track { border-color: var(--theme-switch-hover); }
.cb-switch input:focus-visible + .switch-track { box-shadow: 0 0 0 6px rgba(6, 193, 103, 0.12); }
.cb-switch input:disabled + .switch-track { background-color: dimgray; opacity: 0.6; }
.cb-switch input:disabled + .switch-track .switch-thumb { background-color: rgb(54, 50, 50); }
.cb-switch label { cursor: pointer; }

/* #region CheckBox */
  /*  
    <label class="cb cb-modern">
      <input data-status="{{name}}" type="checkbox" {{#if active}}checked{{/if}} disabled>
      <span class="cb-box" aria-hidden="true"></span>
    </label> 
  */
.cb { display:inline-grid;grid-auto-flow:column;align-items:center;gap:10px;user-select:none;vertical-align:middle; }
.cb input { position:absolute;opacity:0;width:0;height:0;pointer-events:none; }
.cb-box { width:20px;height:20px;border-radius:6px;background:var(--theme-checkbox-backcolor);border:2px solid;display:grid;place-items:center;transition:transform var(--times-transition-transform) ease,border-color var(--times-transition-colors) ease,background var(--times-transition-colors) ease;flex-shrink:0; }
.cb-box::after { content:"";width:10px;height:6px;border-left:2px solid #fff;border-bottom:2px solid #fff;transform:rotate(-45deg)scale(0);transform-origin:center;transition:transform var(--times-transition-transform)cubic-bezier(.2,.9,.2,1); }
.cb input:checked + .cb-box::after { transform: rotate(-45deg) scale(1) translate(1px, -1px); }
.cb input:checked + .cb-box { transform:translateY(-1px); }
.cb input:focus-visible + .cb-box { outline:none; }
/* #endregion */


/* #region Required */
.is-required-empty { border-width:2px; border-style:solid; }
/* #endregion */


/* #region Tabs */
.tabs { display: flex; flex:1 0 auto; margin-bottom: 5px; border-bottom-width: 2px; border-bottom-style: solid; overflow-x: auto; scrollbar-width: thin;}
.tab { padding: 5px 10px; text-wrap: nowrap; border: 1px solid transparent; border-top-left-radius: 5px; border-top-right-radius: 5px; margin-right: 5px; transition: background .25s, color .25s, border-color .25s; }
.tab-content { border-width: 1px; border-style: solid; border-radius: 5px; padding: 15px; }
.item { margin-bottom: 5px; }
/* #endregion */


/* #region Feebox */
.feedbox-overlay { position:fixed; top:0; left:0; width:100vw; height:100vh; display:flex; align-items:center; justify-content:center; z-index:999; }
.feedbox { border-radius:8px; max-width:50vw; max-width:90vw; padding:20px; animation:feedboxFadeIn 0.2s ease-out; max-height:80vh; display:flex; flex-direction:column; overflow:hidden; }
.feedbox h3 { margin:0 0 10px 0; }
.feedbox-message { margin-bottom:20px; line-height:1.4; flex:1; overflow-y: auto; /* font-size:1rem; */ }
.feedbox-actions { display:flex; justify-content:flex-end; gap:10px; flex-wrap:wrap; flex-shrink:0; }
@keyframes feedboxFadeIn { from { transform:translateY(-20px); opacity:0; } to { transform:translateY(0); opacity:1; } }

.feedbox-btn {
    padding:6px 14px;
    /* font-size:0.95rem; */
    border-radius:4px;
    border:1px solid #ccc;
    background:#f5f5f5;
    transition: color var(--times-transition-colors) ease, background var(--times-transition-colors) ease, border-color var(--times-transition-colors) ease;
}

.feedbox-btn:hover {
    background:#e5e5e5;
}

.feedbox-btn.primary {
    background:#4a90e2;
    color:#fff;
    border-color:#4a90e2;
}

.feedbox-btn.primary:hover {
    background:#357ABD;
}

.feedbox-btn.danger {
    background:#e94e3c;
    color:#fff;
    border-color:#e94e3c;
}

.feedbox-btn.danger:hover {
    background:#c0392b;
}

.feedbox-input {
    width:100%;
    padding:6px 8px;
    /* font-size:0.95rem; */
    margin-top:8px;
    margin-bottom:12px;
    border:1px solid #ccc;
    border-radius:4px;
    box-sizing:border-box;
}

.feedbox-btn:focus, .feedbox-input:focus {
    outline:2px solid #4a90e2;
    outline-offset:2px;
}

/* Responsive Small Screens */
@media (max-width:400px) {
    .feedbox {
        padding:15px;
    }

    .feedbox-actions {
        flex-direction:column-reverse;
        gap:8px;
    }

    .feedbox-btn {
        width:100%;
    }
}

/* #endregion */







.select-wrapper {
  position: relative;
  width: 250px;
}

.select-wrapper select {
  width: 100%;
  padding: 12px 40px 12px 14px;
  font-size: 16px;
  border: 2px solid #ddd;
  border-radius: 10px;
  background-color: #fff;
  color: #333;
  appearance: none;          /* entfernt Standard-Styling */
  -webkit-appearance: none;
  -moz-appearance: none;
  cursor: pointer;
  transition: all 0.2s ease;
}

/* Hover / Focus */
.select-wrapper select:hover {
  border-color: #999;
}

.select-wrapper select:focus {
  outline: none;
  border-color: #4a90e2;
  box-shadow: 0 0 0 3px rgba(74,144,226,0.2);
}

/* Custom Pfeil */
.select-wrapper::after {
  content: "▾";
  position: absolute;
  right: 14px;
  top: 50%;
  transform: translateY(-50%);
  pointer-events: none;
  font-size: 14px;
  color: #666;
}



.error-field { padding:12px 16px; border-radius:10px; border-width:1px; border-style:solid; }
.success-field { border-width: 1px; border-style: solid; padding:12px 16px; border-radius:10px; }

label { color:var(--muted); display:block; margin-bottom:6px; }


/* #region Dropzone */
.dropzone {
    max-width:360px;
    padding:12px;
    box-shadow:0 6px 18px rgba(0,0,0,.08);

    background:var(--theme-dropzone-default-backcolor);

    border:1px dashed #aaa;
    border-radius:8px;
    padding:10px;
    /* font-size:13px; */
    text-align:center;
    margin-bottom:8px;
    color:var(--theme-dropzone-default-color);
}

.dropzone.active {
    border-color:var(--theme-dropzone-active-border-color);
    color:var(--theme-dropzone-active-color);
    background:var(--theme-dropzone-active-backcolor);
}


.dropzone-area ul {
    list-style:none;
    padding:0;
    margin:0;
    max-height:120px;
    overflow-y:auto;
}

.dropzone-area li {
    display:flex;
    justify-content:space-between;
    align-items:center;
    /* font-size:13px; */
    padding:4px 0;
    border-bottom:1px solid #eee;
}

.removeButton {
    border:none;
    background:#d11a2a;
    color:white;
    cursor:var(--theme-cursor-pointer) -16 16, pointer;
    padding: 0 4px;
    border-radius: 47%;
    transition: background var(--times-transition-colors) ease, color var(--times-transition-colors) ease;
}

.removeButton:hover {
    background:#ec5d4d;
    color:white;
}



  input[type="file"] {
    display:none;
  }

  tr.drop-hover {
    outline:3px dashed var(--theme-dropzone-active-border-color);
    /* outline:2px dashed var(--primary-color, #4a90e2);
    background:rgba(74, 144, 226, 0.08); */
  }

  tr.no-drop-hover {
    outline:3px dashed red;
    cursor:no-drop !important;
    /* outline:2px dashed var(--primary-color, #4a90e2);
    background:rgba(74, 144, 226, 0.08); */
  }

/* #endregion */









/* #region Multiselect textbox */
.mst-wrapper {
    position:relative;
    display:block;
    border-radius:4px;
    padding:4px 8px;
    background:var(--theme-window-backcolor);

    cursor:text;
    width:300px; /* optional, je nach gewünschter Breite */
}

/* Eingabefeld oben */
.mst-input {
    width:100%;
    border:none;
    outline:none;
    /* font-size:14px; */
    padding:4px 0;
}

/* Container für Chips unterhalb des Inputs */
.mst-chips-container {
    display:flex;
    flex-wrap:wrap; /* Chips umbrechen */
    gap:4px;
    margin-top:4px;
}

/* Einzelner Chip */
.mst-chip {
    display:inline-flex;
    align-items:center;
    background-color:#007bff;
    color:#fff;
    border-radius:8px;
    padding:8px 8px;
    /* font-size:13px; */
}

/* Entfernen-Button im Chip */
.mst-chip-remove {
    margin-left:4px;
    cursor:var(--theme-cursor-pointer) -16 16, pointer;
    font-weight:bold;
}

/* Dropdown-Liste */
.mst-dropdown {
    position:absolute;
    top:100%;
    left:0;
    right:0;
    max-height:200px;
    overflow-y:auto;
    border:1px solid #ccc;
    background:inherit;
    z-index:1000;
}

.mst-item {
    padding:6px 8px;
    cursor:var(--theme-cursor-pointer) -16 16, pointer;
}

.mst-item:hover {
    background-color:var(--theme-accent-hover-backcolor);
}

.mst-item.new {
    font-style:italic;
    color:#555;
}

/* #endregion */


.tutorial-highlight {
  transition: all 0.3s ease;
}