2826 lines
96 KiB
CSS
2826 lines
96 KiB
CSS
:root{font-family:Arial,sans-serif;color:#222;background:#f3f5f7}*{box-sizing:border-box}body{margin:0}header{height:58px;background:#036;color:#fff;display:flex;align-items:center;padding:0 24px;gap:36px}.brand{font-size:22px;font-weight:bold}nav{display:flex;gap:20px}header a{color:#fff;text-decoration:none}main{width:100%;max-width:none;margin:24px 0;padding:0 24px}.toolbar{display:flex;justify-content:space-between;align-items:center}.button,button{background:#0878bd;color:#fff;border:0;border-radius:4px;padding:10px 15px;text-decoration:none;cursor:pointer}.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:16px}.card{display:flex;gap:14px;background:#fff;border:1px solid #d8dde2;border-radius:6px;padding:14px;text-decoration:none;color:#222}.card img,.placeholder{width:58px;height:58px;object-fit:cover;border-radius:5px}.placeholder{display:grid;place-items:center;background:#dbeaf3;font-size:26px}.card small{display:block;color:#667;margin-top:8px}table{width:100%;border-collapse:collapse;background:#fff}th,td{text-align:left;border-bottom:1px solid #ddd;padding:10px}th{background:#e8edf1}a{color:#056ca8}.filters{display:flex;gap:10px;margin:12px 0 18px;flex-wrap:wrap}.filters a{background:#fff;border:1px solid #ccd4da;padding:7px 10px;border-radius:4px;text-decoration:none}form{background:#fff;padding:20px;border:1px solid #d8dde2;border-radius:6px}label{display:block;margin-bottom:14px;font-weight:bold}input,select,textarea{display:block;width:100%;padding:9px;margin-top:5px;border:1px solid #bbb;border-radius:4px;font:inherit}textarea{min-height:100px}.detail{display:grid;grid-template-columns:280px 1fr;gap:24px;background:#fff;padding:20px}.asset-image{max-width:100%;max-height:260px;object-fit:contain}dl{display:grid;grid-template-columns:220px 1fr;margin:0}dt,dd{padding:9px;border-bottom:1px solid #eee;margin:0}dt{font-weight:bold}@media(max-width:700px){.detail{grid-template-columns:1fr}dl{grid-template-columns:1fr}header{padding:0 10px;gap:12px}nav{gap:9px}}
|
|
.panel{background:#fff;border:1px solid #ccd4dc;border-radius:4px;padding:18px;margin-top:18px;overflow:auto}.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px}.card{background:#fff;border:1px solid #ccd4dc;padding:16px;display:flex;flex-direction:column}.card strong{font-size:28px}.config-list{display:grid;grid-template-columns:minmax(130px,220px) 1fr;gap:8px 16px}.sync-status{display:inline-block;padding:3px 8px;border-radius:12px;background:#e5e7eb}.status-success,.status-synced,.status-created,.status-updated{background:#d9f2df}.status-conflict,.status-partial{background:#fff0c2}.status-error,.status-missing{background:#ffd9d9}code{word-break:break-all}
|
|
.log-header{display:flex;align-items:center;justify-content:space-between;gap:16px}.log-header h2{margin:0}.sync-log{height:340px;overflow:auto;background:#111827;color:#e5e7eb;border-radius:5px;padding:12px;font-family:Consolas,"Courier New",monospace;font-size:13px;line-height:1.55;white-space:pre-wrap}.log-line{padding:1px 0}.log-debug{color:#9ca3af}.log-info{color:#dbeafe}.log-success{color:#86efac}.log-warning{color:#fde68a}.log-error{color:#fca5a5}button:disabled{opacity:.65;cursor:wait}
|
|
.toolbar-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.inline-form{display:inline;margin:0;padding:0;background:transparent;border:0}.button-danger{background:#b42318}.button-danger:hover{background:#912018}.empty-state{text-align:center;color:#667;padding:24px}
|
|
.table-scroll{overflow:auto}.table-hint{color:#667;font-size:13px}.multiline{white-space:pre-line;min-width:140px}#asset-table th[draggable=true]{cursor:grab;user-select:none}#asset-table th.dragging{opacity:.45}#asset-table{min-width:900px}
|
|
|
|
@media(max-width:700px){main{padding:0 10px}}
|
|
.button-secondary{background:#546675}.column-filter-row th{padding:6px;background:#f5f7f9}.column-filter-row input{margin:0;min-width:110px;padding:6px;font-size:13px}.sortable-column{cursor:pointer;user-select:none;padding-right:24px;position:relative}.sortable-column.sort-asc::after{content:"▲";position:absolute;right:7px;font-size:10px}.sortable-column.sort-desc::after{content:"▼";position:absolute;right:7px;font-size:10px}tr[hidden]{display:none}.history-old,.history-new{white-space:pre-wrap}
|
|
|
|
/* Tabellen: fixierte Kopfzeilen und kompakte Aktionsschaltflächen */
|
|
.sticky-table{max-height:calc(100vh - 170px);overflow:auto;border:1px solid #d8dde2;background:#fff}
|
|
.sticky-table thead tr:first-child th{position:sticky;top:0;z-index:4}
|
|
.sticky-table thead .column-filter-row th{position:sticky;top:41px;z-index:3}
|
|
.actions-column,.row-actions{white-space:nowrap;text-align:center;min-width:145px}
|
|
.row-actions{white-space:nowrap;text-align:center}
|
|
.icon-button{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;border:0;border-radius:4px;text-decoration:none;color:#fff;cursor:pointer;font-size:16px;line-height:1}
|
|
.button-issue{background:#198754}.button-issue:hover{background:#146c43}
|
|
.button-return{background:#d97706}.button-return:hover{background:#b45309}
|
|
.button-duplicate{background:#6f42c1}.button-duplicate:hover{background:#59359a}
|
|
.button-save{background:#0878bd}.notice{padding:10px 14px;background:#fff3cd;border:1px solid #ffe69c;border-radius:4px}
|
|
.checkbox{width:auto;display:inline-block}.form-actions{margin-top:16px}
|
|
|
|
/* Temporäre Hinweise und Fehlermeldungen */
|
|
.toast-container {
|
|
position: fixed;
|
|
z-index: 5000;
|
|
display: flex;
|
|
width: min(430px, calc(100vw - 2rem));
|
|
flex-direction: column;
|
|
gap: .65rem;
|
|
pointer-events: none;
|
|
}
|
|
.toast {
|
|
display: grid;
|
|
grid-template-columns: auto 1fr auto;
|
|
align-items: center;
|
|
gap: .7rem;
|
|
padding: .85rem 1rem;
|
|
border: 1px solid rgba(0,0,0,.12);
|
|
border-radius: .55rem;
|
|
background: #fff;
|
|
box-shadow: 0 .45rem 1.4rem rgba(0,0,0,.22);
|
|
opacity: 1;
|
|
transform: translateY(0);
|
|
transition: opacity .35s ease, transform .35s ease;
|
|
pointer-events: auto;
|
|
}
|
|
.toast-error { border-left: .42rem solid #b42318; }
|
|
.toast-warning { border-left: .42rem solid #b7791f; }
|
|
.toast-success { border-left: .42rem solid #137333; }
|
|
.toast-symbol { font-weight: 700; }
|
|
.toast-error .toast-symbol { color: #b42318; }
|
|
.toast-warning .toast-symbol { color: #b7791f; }
|
|
.toast-success .toast-symbol { color: #137333; }
|
|
.toast-close {
|
|
border: 0;
|
|
background: transparent;
|
|
padding: 0 .15rem;
|
|
font-size: 1.35rem;
|
|
line-height: 1;
|
|
cursor: pointer;
|
|
}
|
|
.toast-hide { opacity: 0; transform: translateY(-.5rem); }
|
|
|
|
/* v0.3.0: Branding, Navigation und breite/responsive Tabellen */
|
|
html,body{max-width:100%;overflow-x:hidden}main{min-width:0}.main-header{min-height:58px;height:auto;flex-wrap:wrap}.brand{display:flex;align-items:center;gap:10px;color:#fff;text-decoration:none;white-space:nowrap}.brand img{width:38px;height:38px;object-fit:contain;border-radius:4px;background:#fff}.main-nav{flex:1;flex-wrap:wrap}.user-menu{position:relative;margin-left:auto}.user-menu summary{cursor:pointer;list-style:none;color:#fff;white-space:nowrap}.user-menu summary::-webkit-details-marker{display:none}.user-menu-panel{position:absolute;right:0;top:calc(100% + 10px);z-index:100;background:#fff;color:#222;border:1px solid #ccd4da;border-radius:5px;box-shadow:0 8px 24px rgba(0,0,0,.18);min-width:210px;padding:8px}.user-menu-panel a,.user-menu-panel span{display:block;padding:9px 10px}.user-menu-panel a{text-decoration:none}.disabled-link{pointer-events:none;opacity:.55}.muted{color:#667;font-size:13px}.settings-form{max-width:900px}.settings-section{margin-bottom:26px}.settings-section h2{margin-top:0}.logo-preview{display:flex;align-items:center;gap:18px;margin:12px 0}.logo-preview img{max-width:220px;max-height:90px;object-fit:contain;border:1px solid #ddd;padding:6px;background:#fff}.checkbox-label{display:flex;align-items:center;gap:8px;margin:0}.table-scroll,.sticky-table{width:100%;max-width:100%;overflow-x:auto;overflow-y:auto}.data-table{width:max-content;min-width:100%;table-layout:auto}.data-table th,.data-table td{max-width:420px;overflow-wrap:anywhere}.data-table th{white-space:nowrap}.sticky-table{overscroll-behavior:contain}.sticky-table::-webkit-scrollbar{height:14px;width:14px}
|
|
@media(max-width:900px){header{gap:14px;padding:10px 14px}.main-nav{order:3;width:100%;overflow-x:auto;flex-wrap:nowrap;padding-bottom:4px}main{padding:0 12px}.toolbar{align-items:flex-start;gap:12px;flex-wrap:wrap}.toolbar-actions{width:100%}.detail{grid-template-columns:1fr}}
|
|
|
|
/* v0.3.1: Firmenname und Benutzerverwaltung */
|
|
.brand-company{font-size:15px;font-weight:normal;opacity:.9}.settings-subsection{padding:16px;border:1px solid #d8dde2;border-radius:6px;background:#f8fafb}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.checkbox-row{display:flex;gap:24px;flex-wrap:wrap;margin-bottom:14px}.auth-card{max-width:520px;margin:40px auto;background:#fff;padding:24px;border:1px solid #d8dde2;border-radius:8px}.auth-card form{padding:0;border:0}.profile-panel{max-width:850px}.compact-form{padding:0;border:0}.user-inline-form{display:grid;grid-template-columns:repeat(3,minmax(120px,1fr)) auto auto auto;gap:6px;align-items:center;padding:0;border:0;background:transparent;min-width:760px}.user-inline-form input{margin:0;padding:6px}.user-inline-form .checkbox-label{margin:0;font-size:12px}.user-inline-form button{padding:7px 10px}@media(max-width:700px){.form-grid{grid-template-columns:1fr}.brand-company{display:none}}
|
|
|
|
/* Benutzer-Dropdown: Links müssen sich von der weißen Navigation unterscheiden. */
|
|
.user-menu-panel a { color:#1f2933 !important; }
|
|
.user-menu-panel a:visited { color:#1f2933 !important; }
|
|
.user-menu-panel a:hover { color:#0b4f86 !important; background:#eef4f8; border-radius:4px; }
|
|
.user-menu-panel .muted { color:#667085 !important; }
|
|
.group-checkboxes{display:flex;flex-wrap:wrap;gap:.5rem 1rem}.user-permission-form fieldset{margin:.75rem 0;padding:.75rem}dialog{border:0;border-radius:10px;padding:1.25rem;box-shadow:0 20px 60px rgba(0,0,0,.25);min-width:min(420px,90vw)}dialog::backdrop{background:rgba(0,0,0,.35)}dialog form{display:grid;gap:1rem}
|
|
|
|
|
|
/* Baustruktur */
|
|
.tree-filters{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1rem;align-items:end;margin-bottom:1.25rem}.tree-scroll{overflow:auto;padding:1rem 0}.asset-tree,.asset-tree ul{list-style:none;margin:0;padding:0;display:flex;justify-content:center;gap:1.25rem;position:relative}.asset-tree ul{padding-top:1.6rem}.tree-item{display:flex;flex-direction:column;align-items:center;position:relative}.tree-item>ul:before{content:"";position:absolute;top:0;left:50%;height:1.6rem;border-left:1px solid #aeb8c2}.tree-card{width:230px;min-height:88px;background:#fff;border:1px solid #d7dde3;border-radius:10px;box-shadow:0 2px 8px rgba(31,41,51,.08);display:flex;overflow:hidden}.tree-card img,.tree-placeholder{width:72px;min-width:72px;height:88px;object-fit:cover;background:#eef2f5;display:flex;align-items:center;justify-content:center;font-size:1.5rem}.tree-card-body{padding:.65rem;min-width:0}.tree-name{display:block;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tree-meta,.tree-category{font-size:.78rem;color:#667085;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tree-category{margin-top:.25rem;color:#0b4f86}@media(max-width:800px){.asset-tree,.asset-tree ul{justify-content:flex-start}.tree-card{width:205px}}
|
|
|
|
/* Baustruktur v0.3.4.3: kompakte Kategorie-Icons und Mehrfachfilter */
|
|
.tree-category-filter{margin:0;padding:.55rem .7rem;border:1px solid #d7dde3;border-radius:7px;min-width:0}.tree-category-filter legend{padding:0 .25rem;font-weight:600}.tree-category-options{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:.25rem .7rem;max-height:130px;overflow:auto}.tree-category-filter small{display:block;margin-top:.35rem;color:#667085}.tree-hide-option{align-self:center}.tree-card{width:215px;min-height:78px;align-items:center}.tree-category-icon{width:48px;min-width:48px;height:78px;background:#eef4f8;color:#0b4f86;display:flex;align-items:center;justify-content:center}.tree-category-icon svg{width:28px;height:28px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.tree-category-icon svg circle{fill:currentColor;stroke:none}.tree-card-body{padding:.55rem .65rem}.tree-card img,.tree-placeholder{display:none}@media(max-width:800px){.tree-card{width:195px}.tree-category-icon{width:42px;min-width:42px}}
|
|
|
|
/* Baustruktur v0.3.4.6: durchgehende Verbindungslinien mit Abzweigern */
|
|
.tree-scroll {
|
|
--tree-line-color: #8ea4b8;
|
|
--tree-line-width: 2px;
|
|
--tree-branch-height: 30px;
|
|
padding: 1.25rem 1rem 2rem;
|
|
}
|
|
|
|
/* Die alten, nur senkrechten Verbindungslinien deaktivieren. */
|
|
.asset-tree .tree-item > ul::before {
|
|
display: none;
|
|
}
|
|
|
|
.asset-tree,
|
|
.asset-tree ul {
|
|
gap: 0;
|
|
overflow: visible;
|
|
}
|
|
|
|
.asset-tree > .tree-item {
|
|
margin-inline: 1rem;
|
|
}
|
|
|
|
.asset-tree .tree-item {
|
|
position: relative;
|
|
padding-inline: .7rem;
|
|
}
|
|
|
|
/* Abstand zwischen Elternkarte und der darunterliegenden Abzweigung. */
|
|
.asset-tree .tree-item > ul {
|
|
position: relative;
|
|
padding-top: calc(var(--tree-branch-height) * 2);
|
|
}
|
|
|
|
/* Senkrechte Leitung von der Elternkarte bis zur horizontalen Sammelschiene. */
|
|
.asset-tree .tree-item > ul::after {
|
|
content: "";
|
|
position: absolute;
|
|
top: 0;
|
|
left: 50%;
|
|
width: 0;
|
|
height: var(--tree-branch-height);
|
|
border-left: var(--tree-line-width) solid var(--tree-line-color);
|
|
transform: translateX(-50%);
|
|
}
|
|
|
|
/* Obere Hälfte der Verbindung jedes Kindes: horizontale Sammelschiene. */
|
|
.asset-tree .tree-item > ul > .tree-item::before,
|
|
.asset-tree .tree-item > ul > .tree-item::after {
|
|
content: "";
|
|
position: absolute;
|
|
top: calc(var(--tree-branch-height) * -1);
|
|
width: 50%;
|
|
height: var(--tree-branch-height);
|
|
border-top: var(--tree-line-width) solid var(--tree-line-color);
|
|
pointer-events: none;
|
|
}
|
|
|
|
.asset-tree .tree-item > ul > .tree-item::before {
|
|
right: 50%;
|
|
}
|
|
|
|
.asset-tree .tree-item > ul > .tree-item::after {
|
|
left: 50%;
|
|
border-left: var(--tree-line-width) solid var(--tree-line-color);
|
|
border-top-left-radius: 9px;
|
|
}
|
|
|
|
/* Erstes Kind: keine Linie über die linke Außenkante hinaus. */
|
|
.asset-tree .tree-item > ul > .tree-item:first-child::before {
|
|
border-top: 0;
|
|
}
|
|
|
|
.asset-tree .tree-item > ul > .tree-item:first-child::after {
|
|
border-top-left-radius: 9px;
|
|
}
|
|
|
|
/* Letztes Kind: rechte Außenkante abschließen und abrunden. */
|
|
.asset-tree .tree-item > ul > .tree-item:last-child::after {
|
|
border-top: 0;
|
|
border-left: 0;
|
|
}
|
|
|
|
.asset-tree .tree-item > ul > .tree-item:last-child::before {
|
|
border-right: var(--tree-line-width) solid var(--tree-line-color);
|
|
border-top-right-radius: 9px;
|
|
}
|
|
|
|
/* Ein einziges Kind benötigt keine horizontale Sammelschiene. */
|
|
.asset-tree .tree-item > ul > .tree-item:only-child::before,
|
|
.asset-tree .tree-item > ul > .tree-item:only-child::after {
|
|
border: 0;
|
|
}
|
|
|
|
.asset-tree .tree-item > ul > .tree-item:only-child::after {
|
|
left: 50%;
|
|
width: 0;
|
|
border-left: var(--tree-line-width) solid var(--tree-line-color);
|
|
border-radius: 0;
|
|
}
|
|
|
|
/* Die senkrechte Leitung endet sauber mittig an der Gerätekarte. */
|
|
.asset-tree .tree-item > ul > .tree-item > .tree-card::before {
|
|
content: "";
|
|
position: absolute;
|
|
top: calc(var(--tree-branch-height) * -1);
|
|
left: 50%;
|
|
width: 0;
|
|
height: var(--tree-branch-height);
|
|
border-left: var(--tree-line-width) solid var(--tree-line-color);
|
|
transform: translateX(-50%);
|
|
pointer-events: none;
|
|
}
|
|
|
|
.asset-tree .tree-card {
|
|
position: relative;
|
|
z-index: 1;
|
|
}
|
|
|
|
/* Bei mehreren unabhängigen Wurzeln werden keine künstlichen Linien gezogen. */
|
|
.asset-tree > .tree-item::before,
|
|
.asset-tree > .tree-item::after,
|
|
.asset-tree > .tree-item > .tree-card::before {
|
|
display: none;
|
|
}
|
|
|
|
@media (max-width: 800px) {
|
|
.tree-scroll {
|
|
--tree-branch-height: 24px;
|
|
padding-inline: .5rem;
|
|
}
|
|
.asset-tree .tree-item {
|
|
padding-inline: .45rem;
|
|
}
|
|
}
|
|
|
|
/* Diagramme v0.3.5 */
|
|
:root {
|
|
--chart-color-0:#2563eb; --chart-color-1:#16a34a; --chart-color-2:#f59e0b;
|
|
--chart-color-3:#dc2626; --chart-color-4:#7c3aed; --chart-color-5:#0891b2;
|
|
--chart-color-6:#ea580c; --chart-color-7:#4f46e5; --chart-color-8:#65a30d;
|
|
--chart-color-9:#db2777; --chart-color-10:#0f766e; --chart-color-11:#64748b;
|
|
}
|
|
.chart-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,430px),1fr));gap:1rem;margin:1rem 0 1.5rem}.chart-card{background:#fff;border:1px solid #dfe4ea;border-radius:12px;padding:1rem;min-width:0;box-shadow:0 1px 3px rgba(15,23,42,.06)}.chart-card-head{display:flex;justify-content:space-between;gap:1rem;align-items:flex-start;margin-bottom:1rem}.chart-card-head h3{margin:0 0 .25rem}.chart-card-head p{margin:0;color:#64748b;font-size:.9rem}.chart-total{white-space:nowrap;background:#eef2ff;color:#1f2937;border-radius:999px;padding:.3rem .55rem;font-size:.8rem;font-weight:700}.donut-layout{display:flex;align-items:center;gap:1.4rem;min-height:230px}.donut-chart{width:190px;aspect-ratio:1;border-radius:50%;position:relative;flex:0 0 auto}.donut-chart:after{content:"";position:absolute;inset:27%;background:#fff;border-radius:50%;box-shadow:0 0 0 1px #eef2f7}.donut-chart span{position:absolute;inset:0;display:grid;place-items:center;z-index:1;font-size:1.5rem;font-weight:800}.donut-chart.pie-chart:after{display:none}.donut-chart.pie-chart span{color:#fff;text-shadow:0 1px 3px #0008}.chart-legend{display:grid;gap:.45rem;min-width:0;flex:1}.chart-legend>div{display:grid;grid-template-columns:12px minmax(0,1fr) auto;align-items:center;gap:.45rem;font-size:.88rem}.chart-legend i,.stack-legend i{width:10px;height:10px;border-radius:3px;background:var(--legend-color);display:inline-block}.chart-legend span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bar-chart{display:grid;gap:.65rem}.bar-row{display:grid;grid-template-columns:minmax(90px,28%) minmax(120px,1fr) 35px;gap:.6rem;align-items:center}.bar-label{font-size:.86rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bar-track{height:25px;border-radius:6px;background:#eef2f7;overflow:hidden;display:flex}.bar-segment{height:100%;min-width:2px;background:var(--segment-color);display:flex;align-items:center;justify-content:flex-end;color:#fff;font-size:.75rem;font-weight:700}.bar-segment span{padding:0 .4rem;text-shadow:0 1px 1px #0005}.bar-value{text-align:right;font-size:.85rem}.stack-legend{display:flex;flex-wrap:wrap;gap:.75rem;margin:-.2rem 0 .9rem;font-size:.8rem}.stack-legend span{display:flex;align-items:center;gap:.3rem}.chart-empty{display:grid;place-items:center;min-height:180px;color:#64748b}.section-heading{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-top:1.5rem}.section-heading h2{margin:0}.form-card{background:#fff;border:1px solid #dfe4ea;border-radius:12px;padding:1rem;max-width:980px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.chart-form label{display:grid;gap:.35rem}.checkbox-row{display:flex;flex-wrap:wrap;gap:1.25rem;margin:1rem 0}.checkbox-row label{display:flex;align-items:center;gap:.4rem}.muted-disabled{opacity:.45}.block{display:block}.dashboard-charts .chart-card{min-height:280px}@media(max-width:700px){.donut-layout{flex-direction:column}.form-grid{grid-template-columns:1fr}.bar-row{grid-template-columns:90px minmax(90px,1fr) 30px}}
|
|
|
|
/* Mehrfachauswahl und Massenänderung v0.3.6.2 */
|
|
.selection-column{width:42px;min-width:42px;text-align:center}.selection-column input{width:18px;height:18px;cursor:pointer}.toolbar-actions button:disabled{opacity:.5;cursor:not-allowed}.bulk-edit-panel{max-width:900px}.compact-list{columns:2;column-gap:2rem}.compact-list li{break-inside:avoid;margin:.25rem 0}.hidden-control{display:none!important}.user-delete-form{margin-top:.75rem;padding-top:.75rem;border-top:1px solid #e5e7eb}.user-delete-form .button-danger{width:auto}@media(max-width:700px){.compact-list{columns:1}}
|
|
.header-actions{display:flex;align-items:center;gap:.5rem}.language-menu{position:relative}.language-menu summary{cursor:pointer;list-style:none;padding:.45rem .65rem;border-radius:.45rem}.menu-button{display:block;width:100%;border:0;background:transparent;text-align:left;padding:.55rem .8rem;cursor:pointer}.menu-button:hover,.menu-button.active{background:rgba(0,0,0,.06)}.translation-import{margin-top:1rem}.translation-import input[type=file]{margin-right:1rem}.table-wrap textarea{min-width:240px;width:100%;resize:vertical}.toolbar-actions{display:flex;gap:.5rem;flex-wrap:wrap}
|
|
|
|
/* v0.3.8.0 central field catalog */
|
|
.field-capabilities{display:flex;flex-wrap:wrap;gap:.5rem 1rem}.field-capabilities .checkbox-label{min-width:150px}.data-table input[type=checkbox]{width:auto;margin:.2rem auto}.mesh-mapping-table input,.mesh-mapping-table select{min-width:130px}.settings-form small{display:block;margin-top:.3rem;color:#667085;font-weight:normal}
|
|
.mesh-mapping-table{min-width:1750px}.mesh-mapping-table input,.mesh-mapping-table select{min-width:130px}.mesh-mapping-table .mapping-path{min-width:360px;font-family:monospace}.mesh-mapping-table .mapping-priority{min-width:65px;width:75px}.mesh-mapping-table .mapping-separator{min-width:65px;width:75px}
|
|
|
|
/* Dropdown forms inherit the compact menu styling instead of the global form card. */
|
|
.user-menu-panel form{margin:0;padding:0;border:0;border-radius:0;background:transparent;box-shadow:none;width:100%}
|
|
.user-menu-panel .menu-button{display:block;width:100%;margin:0;padding:9px 10px;border:0;border-radius:4px;background:transparent;color:#222;text-align:left;cursor:pointer}
|
|
.user-menu-panel .menu-button:hover{background:#eef4f8;color:#0b4f86}
|
|
.user-menu-panel .menu-button.active{background:#e4edf5;color:#0b4f86;font-weight:600}
|
|
|
|
|
|
/* v0.3.8.6: benutzerspezifische Toast-Position */
|
|
.toast-position-top-left{top:1rem;left:1rem;align-items:flex-start}
|
|
.toast-position-top-center{top:1rem;left:50%;transform:translateX(-50%);align-items:center}
|
|
.toast-position-top-right{top:1rem;right:1rem;align-items:flex-end}
|
|
.toast-position-bottom-left{bottom:1rem;left:1rem;align-items:flex-start;flex-direction:column-reverse}
|
|
.toast-position-bottom-center{bottom:1rem;left:50%;transform:translateX(-50%);align-items:center;flex-direction:column-reverse}
|
|
.toast-position-bottom-right{bottom:1rem;right:1rem;align-items:flex-end;flex-direction:column-reverse}
|
|
@media(max-width:520px){.toast-container{left:1rem!important;right:1rem!important;width:auto;transform:none!important}.toast-position-top-left,.toast-position-top-center,.toast-position-top-right{top:1rem}.toast-position-bottom-left,.toast-position-bottom-center,.toast-position-bottom-right{bottom:1rem}}
|
|
|
|
/* Diagramm-Statusfilter */
|
|
.checkbox-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:8px 16px;margin:10px 0}
|
|
.checkbox-option{display:flex;align-items:center;gap:8px;margin:0;padding:8px 10px;border:1px solid #d8dde2;border-radius:6px;background:#f8fafc}
|
|
.checkbox-option input{width:auto;margin:0}
|
|
.inline-form{display:inline-block;margin:0;padding:0;border:0;background:transparent}
|
|
|
|
/* Geräteinventar mit aufklappbarer Baumansicht */
|
|
.inventory-header{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;flex-wrap:wrap}
|
|
.inventory-header h2{margin-bottom:4px}.inventory-meta{display:flex;gap:18px;flex-wrap:wrap;padding:12px 0 16px;border-bottom:1px solid #d9e1e8}.inventory-meta code{word-break:break-all}
|
|
.inventory-tabs{display:flex;gap:4px;flex-wrap:wrap;margin:18px 0 0;border-bottom:1px solid #cbd6df}.inventory-tab{border:0;background:transparent;color:#111;padding:10px 14px;cursor:pointer;border-bottom:3px solid transparent;font-weight:600}.inventory-tab:hover{color:#000;background:rgba(0,0,0,.035)}.inventory-tab.active{color:#000;border-bottom-color:#0b4f86;background:rgba(0,0,0,.04)}
|
|
.inventory-tab-content{display:none;padding-top:16px}.inventory-tab-content.active{display:block}.inventory-tree{position:relative;padding-left:4px}.inventory-node{margin:4px 0}.inventory-node>summary{display:flex;align-items:center;gap:8px;cursor:pointer;padding:7px 9px;border-radius:5px;font-weight:600}.inventory-node>summary:hover{background:rgba(0,0,0,.05)}.inventory-count{font-size:.8em;font-weight:400;opacity:.65;border:1px solid currentColor;border-radius:10px;padding:0 6px}.inventory-children{position:relative;margin-left:15px;padding-left:18px;border-left:2px solid #c9d5df}.inventory-children:before{content:"";position:absolute;left:-2px;top:0;width:14px;border-top:2px solid #c9d5df}.inventory-property{display:grid;grid-template-columns:minmax(150px,280px) minmax(180px,1fr);gap:16px;position:relative;padding:7px 9px;margin:2px 0;border-radius:4px}.inventory-property:before{content:"";position:absolute;left:-20px;top:50%;width:18px;border-top:2px solid #c9d5df}.inventory-property:hover{background:rgba(0,0,0,.035)}.inventory-property>span{word-break:break-word}.inventory-property>strong{font-weight:500;word-break:break-word}.json-viewer{max-height:650px;overflow:auto;background:#111827;color:#e5e7eb;padding:16px;border-radius:6px;white-space:pre-wrap;word-break:break-word}.empty-state{padding:24px;border:1px dashed #b9c6d0;border-radius:6px;text-align:center}.table-filter-row{max-width:480px;margin-bottom:12px}.table-filter-row label{display:block}.table-filter-row input{width:100%}.table-scroll{overflow:auto}
|
|
@media(max-width:700px){.inventory-property{grid-template-columns:1fr;gap:3px}.inventory-children{margin-left:6px;padding-left:12px}.inventory-property:before{left:-14px;width:12px}}
|
|
|
|
|
|
/* v0.3.9.1: Inventar-Icons und globaler CSS-Editor */
|
|
.inventory-section-icon{display:inline-grid;place-items:center;width:1.45rem;min-width:1.45rem;height:1.45rem;font-size:1.05rem;line-height:1;filter:saturate(1.15)}
|
|
.custom-css-editor{display:block;width:100%;min-height:360px;resize:vertical;font-family:Consolas,"Liberation Mono",Menlo,monospace;font-size:.9rem;line-height:1.5;tab-size:2;white-space:pre}
|
|
|
|
|
|
/* v0.3.9.7: record count in the upper-right toolbar */
|
|
.record-count{
|
|
display:inline-flex;
|
|
align-items:center;
|
|
min-height:36px;
|
|
padding:7px 11px;
|
|
border:1px solid #c9d3dc;
|
|
border-radius:4px;
|
|
background:#fff;
|
|
color:#44515c;
|
|
font-size:13px;
|
|
font-weight:600;
|
|
white-space:nowrap;
|
|
}
|
|
.toolbar-actions{
|
|
display:flex;
|
|
align-items:center;
|
|
justify-content:flex-end;
|
|
gap:8px;
|
|
flex-wrap:wrap;
|
|
}
|
|
|
|
/* v0.3.9.7: use exactly one vertical scrollbar on pages with sticky tables */
|
|
body.single-scroll-list{
|
|
height:100vh;
|
|
min-height:0;
|
|
overflow:hidden;
|
|
display:flex;
|
|
flex-direction:column;
|
|
}
|
|
body.single-scroll-list .main-header{
|
|
flex:0 0 auto;
|
|
}
|
|
body.single-scroll-list main{
|
|
flex:1 1 auto;
|
|
min-height:0;
|
|
overflow:hidden;
|
|
display:flex;
|
|
flex-direction:column;
|
|
margin-top:14px;
|
|
margin-bottom:0;
|
|
}
|
|
body.single-scroll-list .sticky-table{
|
|
flex:1 1 auto;
|
|
min-height:0;
|
|
max-height:none;
|
|
overflow:auto;
|
|
margin-bottom:0;
|
|
}
|
|
body.single-scroll-list .sticky-table + .muted{
|
|
flex:0 0 auto;
|
|
margin:6px 0 8px;
|
|
}
|
|
@media(max-width:900px){
|
|
body.single-scroll-list{
|
|
height:auto;
|
|
min-height:100vh;
|
|
overflow:auto;
|
|
display:block;
|
|
}
|
|
body.single-scroll-list main{
|
|
display:block;
|
|
overflow:visible;
|
|
}
|
|
body.single-scroll-list .sticky-table{
|
|
max-height:calc(100vh - 220px);
|
|
}
|
|
}
|
|
|
|
|
|
/* v0.3.9.8: direct asset edit action */
|
|
.button-edit{background:#0b6fa4}
|
|
.button-edit:hover{background:#07577f}
|
|
|
|
/* v0.3.9.8: category list - valid table geometry and compact attributes */
|
|
.categories-table td,
|
|
.categories-table th{vertical-align:middle}
|
|
.categories-table .category-actions{white-space:nowrap;min-width:285px}
|
|
.categories-table .action-buttons{display:flex;align-items:center;gap:6px;justify-content:flex-start}
|
|
.categories-table .action-buttons .button{padding:7px 10px}
|
|
.category-attributes{min-width:320px;max-width:620px}
|
|
.attribute-chip{
|
|
display:inline-block;
|
|
margin:2px 4px 2px 0;
|
|
padding:3px 7px;
|
|
border:1px solid #c9d3dc;
|
|
border-radius:999px;
|
|
background:#f5f7f9;
|
|
color:#44515c;
|
|
font-size:12px;
|
|
white-space:nowrap;
|
|
}
|
|
.attribute-chip-list{
|
|
border-color:#8ab9d4;
|
|
background:#eaf5fb;
|
|
color:#07577f;
|
|
}
|
|
|
|
/* Uploaded favicon preview should remain favicon-sized. */
|
|
.favicon-preview img{
|
|
width:48px;
|
|
height:48px;
|
|
object-fit:contain;
|
|
image-rendering:auto;
|
|
}
|
|
|
|
/* Keep action cell borders aligned; flex belongs inside the cell, not on td. */
|
|
.row-actions{
|
|
display:table-cell;
|
|
vertical-align:middle;
|
|
text-align:center;
|
|
}
|
|
.row-actions > .inline-form,
|
|
.row-actions > .icon-button{
|
|
margin:2px;
|
|
}
|
|
|
|
|
|
/* v0.3.9.9: accessible horizontal scrolling */
|
|
.table-scrollbar-top{
|
|
width:100%;
|
|
height:16px;
|
|
overflow-x:auto;
|
|
overflow-y:hidden;
|
|
border:1px solid #d8dde2;
|
|
border-bottom:0;
|
|
background:#f5f7f9;
|
|
}
|
|
.table-scrollbar-top > div{height:1px}
|
|
.table-scrollbar-top[hidden]{display:none}
|
|
#asset-table-scroll{border-top:0}
|
|
|
|
/* Column visibility dialog and header context menu */
|
|
.column-settings-dialog{width:min(520px,92vw)}
|
|
.column-settings-dialog form{padding:0;border:0}
|
|
.dialog-heading{display:flex;align-items:center;justify-content:space-between;gap:1rem}
|
|
.dialog-heading h2{margin:0}
|
|
.column-settings-list{
|
|
display:grid;
|
|
grid-template-columns:repeat(2,minmax(0,1fr));
|
|
gap:8px;
|
|
max-height:55vh;
|
|
overflow:auto;
|
|
margin:14px 0;
|
|
}
|
|
.column-context-menu{
|
|
position:fixed;
|
|
z-index:7000;
|
|
min-width:190px;
|
|
padding:5px;
|
|
border:1px solid #c9d3dc;
|
|
border-radius:6px;
|
|
background:#fff;
|
|
box-shadow:0 8px 24px rgba(0,0,0,.2);
|
|
}
|
|
.column-context-menu button{
|
|
display:block;
|
|
width:100%;
|
|
padding:8px 10px;
|
|
border:0;
|
|
border-radius:4px;
|
|
background:transparent;
|
|
color:#222;
|
|
text-align:left;
|
|
}
|
|
.column-context-menu button:hover{background:#eef4f8;color:#0b4f86}
|
|
|
|
/* Fixed field widths should clip long values instead of expanding the table. */
|
|
#asset-table th[style*="width"],
|
|
#asset-table td[style*="width"]{
|
|
overflow:hidden;
|
|
text-overflow:ellipsis;
|
|
}
|
|
#asset-table td[style*="width"]{
|
|
white-space:nowrap;
|
|
}
|
|
@media(max-width:700px){
|
|
.column-settings-list{grid-template-columns:1fr}
|
|
}
|
|
|
|
|
|
/* v0.3.10.0: thicker and easier-to-grab asset table scrollbars */
|
|
#asset-table-scroll-top{
|
|
height:24px;
|
|
scrollbar-width:auto;
|
|
}
|
|
#asset-table-scroll{
|
|
scrollbar-width:auto;
|
|
}
|
|
#asset-table-scroll-top::-webkit-scrollbar,
|
|
#asset-table-scroll::-webkit-scrollbar{
|
|
width:20px;
|
|
height:20px;
|
|
}
|
|
#asset-table-scroll-top::-webkit-scrollbar-track,
|
|
#asset-table-scroll::-webkit-scrollbar-track{
|
|
background:#e7ebef;
|
|
border:1px solid #c5ced6;
|
|
}
|
|
#asset-table-scroll-top::-webkit-scrollbar-thumb,
|
|
#asset-table-scroll::-webkit-scrollbar-thumb{
|
|
background:#8797a5;
|
|
border:3px solid #e7ebef;
|
|
border-radius:10px;
|
|
}
|
|
#asset-table-scroll-top::-webkit-scrollbar-thumb:hover,
|
|
#asset-table-scroll::-webkit-scrollbar-thumb:hover{
|
|
background:#607383;
|
|
}
|
|
|
|
/* About dialog */
|
|
.header-help-button{
|
|
display:inline-grid;
|
|
place-items:center;
|
|
width:30px;
|
|
height:30px;
|
|
padding:0;
|
|
border:1px solid rgba(255,255,255,.45);
|
|
border-radius:50%;
|
|
background:transparent;
|
|
color:#fff;
|
|
font-weight:700;
|
|
}
|
|
.header-help-button:hover{background:rgba(255,255,255,.16)}
|
|
.about-dialog{width:min(620px,92vw)}
|
|
.about-dialog form{padding:0;border:0}
|
|
.about-logo{text-align:center;margin:8px 0 16px}
|
|
.about-logo img{max-width:220px;max-height:90px;object-fit:contain}
|
|
.about-manufacturer-logo{text-align:center;margin:8px 0 18px}
|
|
.about-manufacturer-logo img{display:block;width:auto;height:auto;max-width:150px;max-height:150px;object-fit:contain;margin:0 auto}
|
|
.about-details{grid-template-columns:150px minmax(0,1fr)}
|
|
.about-details dd{overflow-wrap:anywhere}
|
|
|
|
|
|
/* v0.3.12.0: duplicate search in current filtered asset list */
|
|
.duplicate-search-dialog{width:min(570px,92vw)}
|
|
.duplicate-search-dialog form{padding:0;border:0}
|
|
#asset-table tbody tr.duplicate-hidden{display:none!important}
|
|
#asset-table tbody tr.duplicate-match td{
|
|
background:#fff8d8;
|
|
}
|
|
#asset-table tbody tr.duplicate-match:hover td{
|
|
background:#fff1ad;
|
|
}
|
|
|
|
|
|
/* v0.3.13.0: hidden technical forms do not create whitespace */
|
|
.hidden-utility-form{
|
|
display:none!important;
|
|
width:0!important;
|
|
height:0!important;
|
|
margin:0!important;
|
|
padding:0!important;
|
|
border:0!important;
|
|
}
|
|
|
|
.merge-order-table tbody tr{cursor:grab}
|
|
.merge-order-table tbody tr.dragging{opacity:.45}
|
|
.merge-drag-handle{width:70px;text-align:center;font-size:20px;user-select:none;cursor:grab}
|
|
.merge-order-table td{vertical-align:top}
|
|
|
|
|
|
/* v0.3.13.1: category controls and dashboard cards must keep text inside */
|
|
.filters{
|
|
align-items:flex-start;
|
|
}
|
|
.filters a{
|
|
display:inline-flex;
|
|
align-items:center;
|
|
justify-content:center;
|
|
min-height:34px;
|
|
max-width:100%;
|
|
white-space:normal;
|
|
overflow-wrap:anywhere;
|
|
word-break:normal;
|
|
line-height:1.2;
|
|
text-align:center;
|
|
}
|
|
|
|
.cards{
|
|
grid-template-columns:repeat(auto-fit,minmax(180px,1fr));
|
|
}
|
|
.cards .card{
|
|
min-width:0;
|
|
overflow:hidden;
|
|
}
|
|
.cards .card > *{
|
|
min-width:0;
|
|
max-width:100%;
|
|
}
|
|
.cards .card h2,
|
|
.cards .card h3,
|
|
.cards .card strong,
|
|
.cards .card span,
|
|
.cards .card a{
|
|
white-space:normal;
|
|
overflow-wrap:anywhere;
|
|
word-break:normal;
|
|
}
|
|
.cards .card h2,
|
|
.cards .card h3{
|
|
line-height:1.12;
|
|
margin-top:.35rem;
|
|
margin-bottom:.35rem;
|
|
}
|
|
|
|
|
|
/* v0.3.14.0: compact global sidebar */
|
|
.app-shell{display:grid;grid-template-columns:220px minmax(0,1fr);min-height:calc(100vh - 58px);transition:grid-template-columns .16s ease}
|
|
.app-shell.sidebar-collapsed{grid-template-columns:58px minmax(0,1fr)}
|
|
.side-nav{position:relative;background:#f5f7f9;border-right:1px solid #d7dee5;padding:10px 8px;overflow:visible;z-index:30}
|
|
.side-nav>a,.side-nav-settings>.settings-trigger,.side-nav-toggle{display:flex;align-items:center;gap:10px;width:100%;min-height:40px;padding:8px 10px;border:0;border-radius:5px;background:transparent;color:inherit;text-decoration:none;white-space:nowrap;box-sizing:border-box}
|
|
.side-nav>a:hover,.side-nav-settings>.settings-trigger:hover,.side-nav-toggle:hover{background:#e5edf3}
|
|
.nav-icon{display:inline-flex;width:24px;min-width:24px;justify-content:center;font-size:18px}
|
|
.nav-label{overflow:hidden;text-overflow:ellipsis}
|
|
.nav-caret{margin-left:auto}
|
|
.sidebar-collapsed .nav-label,.sidebar-collapsed .nav-caret{display:none}
|
|
.sidebar-collapsed .side-nav>a,.sidebar-collapsed .side-nav-settings>.settings-trigger,.sidebar-collapsed .side-nav-toggle{justify-content:center;padding-left:6px;padding-right:6px}
|
|
.app-content{min-width:0;padding:14px}
|
|
.settings-hover-menu{display:none;position:absolute;left:calc(100% - 5px);top:0;min-width:235px;background:#fff;border:1px solid #cbd5df;border-radius:5px;box-shadow:0 8px 24px rgba(0,0,0,.16);padding:6px;z-index:100}
|
|
.side-nav-settings{position:relative}
|
|
.side-nav-settings:hover .settings-hover-menu,.side-nav-settings:focus-within .settings-hover-menu{display:block}
|
|
.settings-hover-menu a{display:block;padding:8px 10px;border-radius:4px;color:inherit;text-decoration:none;white-space:nowrap}
|
|
.settings-hover-menu a:hover{background:#eaf2f7}
|
|
|
|
/* Settings page with independent left submenu */
|
|
.settings-layout{display:grid;grid-template-columns:210px minmax(0,1fr);gap:18px;align-items:start}
|
|
.settings-subnav{position:sticky;top:12px;border:1px solid #d7dee5;border-radius:6px;background:#fff;padding:10px}
|
|
.settings-subnav h2{margin:4px 8px 10px}
|
|
.settings-subnav a{display:block;padding:8px 10px;border-radius:4px;text-decoration:none;color:inherit}
|
|
.settings-subnav a:hover,.settings-subnav a.active{background:#e5edf3}
|
|
.settings-main{min-width:0}
|
|
.system-info-grid{display:grid;grid-template-columns:minmax(160px,220px) minmax(0,1fr);gap:8px 18px;margin:0}
|
|
.system-info-grid dt{font-weight:700}
|
|
.system-info-grid dd{margin:0;overflow-wrap:anywhere}
|
|
@media(max-width:900px){.app-shell,.app-shell.sidebar-collapsed{grid-template-columns:58px minmax(0,1fr)}.nav-label,.nav-caret{display:none}.settings-layout{grid-template-columns:1fr}.settings-subnav{position:static}}
|
|
|
|
|
|
/* v0.3.14.1: no duplicate settings navigation inside content */
|
|
.settings-main{display:contents}
|
|
.settings-action-grid{
|
|
display:grid;
|
|
grid-template-columns:repeat(auto-fit,minmax(320px,1fr));
|
|
gap:16px;
|
|
}
|
|
|
|
/* v0.3.14.4: stable first paint and right aligned header menus */
|
|
.main-header{display:flex;align-items:center;flex-wrap:nowrap}
|
|
.header-actions{margin-left:auto;justify-content:flex-end;flex:0 0 auto}
|
|
html.sidebar-collapsed-preset .app-shell{grid-template-columns:58px minmax(0,1fr)}
|
|
html.sidebar-collapsed-preset .nav-label,html.sidebar-collapsed-preset .nav-caret{display:none}
|
|
html.sidebar-collapsed-preset .side-nav>a,html.sidebar-collapsed-preset .side-nav-settings>.settings-trigger,html.sidebar-collapsed-preset .side-nav-toggle{justify-content:center;padding-left:6px;padding-right:6px}
|
|
.app-shell:not(.sidebar-ready){transition:none}
|
|
.asset-list-initializing #asset-table-scroll,.asset-list-initializing #asset-table-scroll-top{visibility:hidden}
|
|
.asset-list-page #asset-table-scroll{contain:layout paint}
|
|
@media(max-width:700px){.main-header{flex-wrap:wrap}.header-actions{margin-left:auto}}
|
|
|
|
|
|
/* v0.3.14.5: coordinated asset-page initialization */
|
|
.asset-page-loader{
|
|
display:none;
|
|
min-height:calc(100vh - 110px);
|
|
align-items:center;
|
|
justify-content:center;
|
|
padding:24px;
|
|
box-sizing:border-box;
|
|
}
|
|
html.asset-page-booting .asset-page-loader{display:flex}
|
|
html.asset-page-booting .asset-list-page{
|
|
position:absolute;
|
|
left:-100000px;
|
|
top:0;
|
|
width:calc(100% - 28px);
|
|
visibility:hidden;
|
|
pointer-events:none;
|
|
}
|
|
.asset-page-loader-card{
|
|
display:flex;
|
|
flex-direction:column;
|
|
align-items:center;
|
|
justify-content:center;
|
|
gap:10px;
|
|
min-width:min(360px,90vw);
|
|
padding:28px 34px;
|
|
border:1px solid #d7dee5;
|
|
border-radius:8px;
|
|
background:#fff;
|
|
box-shadow:0 8px 24px rgba(0,0,0,.08);
|
|
text-align:center;
|
|
}
|
|
.asset-page-spinner{
|
|
width:30px;
|
|
height:30px;
|
|
border:3px solid #d7dee5;
|
|
border-top-color:currentColor;
|
|
border-radius:50%;
|
|
animation:asset-page-spin .75s linear infinite;
|
|
}
|
|
@keyframes asset-page-spin{to{transform:rotate(360deg)}}
|
|
@media (prefers-reduced-motion:reduce){
|
|
.asset-page-spinner{animation-duration:1.6s}
|
|
}
|
|
|
|
|
|
/* v0.3.15.0: asset-table performance refactoring */
|
|
#asset-table.asset-table-fixed{
|
|
table-layout:fixed;
|
|
max-width:none;
|
|
}
|
|
#asset-table.asset-table-fixed th,
|
|
#asset-table.asset-table-fixed td{
|
|
box-sizing:border-box;
|
|
overflow:hidden;
|
|
text-overflow:ellipsis;
|
|
}
|
|
#asset-table.asset-table-fixed td{
|
|
white-space:nowrap;
|
|
}
|
|
#asset-table.asset-table-fixed td.multiline{
|
|
white-space:nowrap;
|
|
}
|
|
|
|
|
|
|
|
/* v0.3.15.2: complete scroll-height chain for the sidebar layout */
|
|
body.asset-list-scroll-page{
|
|
height:100vh;
|
|
min-height:0;
|
|
overflow:hidden;
|
|
display:flex;
|
|
flex-direction:column;
|
|
}
|
|
|
|
body.asset-list-scroll-page > .main-header{
|
|
flex:0 0 auto;
|
|
}
|
|
|
|
body.asset-list-scroll-page > .app-shell{
|
|
flex:1 1 auto;
|
|
height:auto;
|
|
min-height:0;
|
|
overflow:hidden;
|
|
}
|
|
|
|
body.asset-list-scroll-page .side-nav{
|
|
min-height:0;
|
|
}
|
|
|
|
body.asset-list-scroll-page .app-content{
|
|
min-height:0;
|
|
overflow:hidden;
|
|
display:flex;
|
|
flex-direction:column;
|
|
}
|
|
|
|
body.asset-list-scroll-page #asset-page-loader{
|
|
flex:1 1 auto;
|
|
min-height:0;
|
|
}
|
|
|
|
body.asset-list-scroll-page #asset-list-page{
|
|
flex:1 1 auto;
|
|
min-height:0;
|
|
overflow:hidden;
|
|
display:flex;
|
|
flex-direction:column;
|
|
}
|
|
|
|
body.asset-list-scroll-page #asset-list-page > .toolbar,
|
|
body.asset-list-scroll-page #asset-list-page > .filters,
|
|
body.asset-list-scroll-page #asset-list-page > .table-hint,
|
|
body.asset-list-scroll-page #asset-list-page > .hidden-utility-form,
|
|
body.asset-list-scroll-page #asset-list-page > #asset-table-scroll-top,
|
|
body.asset-list-scroll-page #asset-list-page > .muted{
|
|
flex:0 0 auto;
|
|
}
|
|
|
|
body.asset-list-scroll-page #asset-table-scroll{
|
|
flex:1 1 auto;
|
|
width:100%;
|
|
max-width:100%;
|
|
min-height:0;
|
|
max-height:none;
|
|
overflow-x:auto;
|
|
overflow-y:auto;
|
|
overscroll-behavior:contain;
|
|
}
|
|
|
|
/* The older containment rule prevents reliable scroll sizing in this layout. */
|
|
body.asset-list-scroll-page .asset-list-page #asset-table-scroll{
|
|
contain:none;
|
|
}
|
|
|
|
@media(max-width:900px){
|
|
body.asset-list-scroll-page{
|
|
height:auto;
|
|
min-height:100vh;
|
|
overflow:auto;
|
|
display:block;
|
|
}
|
|
|
|
body.asset-list-scroll-page > .app-shell{
|
|
min-height:calc(100vh - 58px);
|
|
overflow:visible;
|
|
}
|
|
|
|
body.asset-list-scroll-page .app-content,
|
|
body.asset-list-scroll-page #asset-list-page{
|
|
overflow:visible;
|
|
display:block;
|
|
}
|
|
|
|
body.asset-list-scroll-page #asset-table-scroll{
|
|
max-height:calc(100vh - 240px);
|
|
overflow:auto;
|
|
}
|
|
}
|
|
|
|
|
|
/* v0.4.0.1 backup management */
|
|
.backup-page{max-width:1400px}.backup-page-header{display:flex;justify-content:space-between;align-items:flex-start;gap:24px;margin-bottom:22px}.backup-page-header h1{margin-bottom:6px}.backup-create-form{padding:0;border:0;background:transparent}.backup-primary-action{min-height:42px;padding:10px 18px}.backup-summary-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-bottom:18px}.backup-summary-card{display:flex;align-items:center;gap:14px;min-height:92px;padding:18px;background:#fff;border:1px solid #ccd4dc;border-radius:8px;box-shadow:0 1px 2px rgba(0,0,0,.03)}.backup-summary-icon{display:grid;place-items:center;width:44px;height:44px;flex:0 0 44px;border-radius:8px;background:#eef4f8;font-size:22px}.backup-summary-card div{display:flex;flex-direction:column;gap:7px;min-width:0}.backup-summary-label{font-size:12px;color:#667085;text-transform:uppercase;letter-spacing:.04em}.backup-summary-card strong{font-size:16px;overflow-wrap:anywhere}.backup-summary-card code{font-size:14px}.backup-panel{padding:22px;margin-top:16px;overflow:visible}.backup-panel-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:18px;margin-bottom:18px}.backup-panel-heading h2{margin:0 0 6px}.backup-panel-heading p{margin:0}.backup-status-badge,.backup-count{display:inline-flex;align-items:center;justify-content:center;min-width:34px;padding:5px 10px;border-radius:999px;background:#d9f2df;color:#185c2c;font-size:12px;font-weight:700}.backup-content-note{display:flex;align-items:flex-start;gap:10px;padding:14px 16px;border:1px solid #d9e4ec;border-radius:7px;background:#f7fafc}.backup-content-note p{margin:0;color:#53606d;line-height:1.5}.backup-upload-form{display:grid;grid-template-columns:minmax(260px,1fr) auto;gap:12px;align-items:end;padding:16px;border:1px solid #d8e0e7;border-radius:7px;background:#f8fafb}.backup-upload-form input[type=file]{margin:0;width:100%;background:#fff}.backup-table-wrap{border:1px solid #d8e0e7;border-radius:7px}.backup-table{margin:0}.backup-table th{background:#f5f7f9}.backup-actions{display:flex;flex-wrap:wrap;gap:7px;align-items:center}.backup-actions form{display:inline;padding:0;border:0;background:transparent}.backup-dialog{max-width:560px;border:0;border-radius:8px;padding:0;box-shadow:0 16px 50px rgba(0,0,0,.3)}.backup-dialog::backdrop{background:rgba(20,30,40,.45)}.backup-dialog form{padding:24px;border:0}.backup-empty-state{display:flex;flex-direction:column;align-items:center;text-align:center;padding:38px 18px;border:1px dashed #c8d1da;border-radius:8px;background:#fafbfc}.backup-empty-state>span{font-size:34px;margin-bottom:10px}.backup-empty-state p{margin:6px 0 0}@media(max-width:900px){.backup-summary-grid{grid-template-columns:1fr}.backup-page-header{flex-direction:column}.backup-upload-form{grid-template-columns:1fr}.backup-create-form,.backup-create-form button{width:100%}}
|
|
|
|
|
|
|
|
|
|
/* v0.4.0.3: one vertical scroll area on management pages */
|
|
.management-table-scroll{
|
|
width:100%;
|
|
max-width:100%;
|
|
max-height:none;
|
|
min-height:0;
|
|
overflow-x:auto;
|
|
overflow-y:visible;
|
|
overscroll-behavior-x:contain;
|
|
border:1px solid #d8dde2;
|
|
border-radius:6px;
|
|
background:#fff;
|
|
}
|
|
|
|
.management-table-scroll .data-table{
|
|
margin:0;
|
|
}
|
|
|
|
/* Sticky headers only need to follow the browser scroll on these pages. */
|
|
.management-table-scroll thead tr:first-child th{
|
|
position:sticky;
|
|
top:58px;
|
|
z-index:4;
|
|
}
|
|
|
|
.management-table-scroll thead .column-filter-row th{
|
|
position:sticky;
|
|
top:99px;
|
|
z-index:3;
|
|
}
|
|
|
|
/* Asset tree category selector */
|
|
.tree-category-filter{
|
|
min-width:0;
|
|
padding:0;
|
|
border:1px solid #cfd7df;
|
|
border-radius:8px;
|
|
background:#fff;
|
|
overflow:hidden;
|
|
}
|
|
|
|
.tree-category-filter legend{
|
|
margin-left:12px;
|
|
padding:0 8px;
|
|
font-weight:700;
|
|
color:#253544;
|
|
}
|
|
|
|
.tree-category-options{
|
|
display:grid;
|
|
grid-template-columns:repeat(auto-fit,minmax(150px,1fr));
|
|
gap:8px;
|
|
max-height:190px;
|
|
padding:14px;
|
|
overflow:auto;
|
|
scrollbar-gutter:stable;
|
|
background:#f8fafc;
|
|
border-top:1px solid #e7ebef;
|
|
border-bottom:1px solid #e7ebef;
|
|
}
|
|
|
|
.tree-category-option{
|
|
display:flex;
|
|
align-items:center;
|
|
gap:9px;
|
|
min-width:0;
|
|
padding:9px 10px;
|
|
border:1px solid #dfe5ea;
|
|
border-radius:6px;
|
|
background:#fff;
|
|
cursor:pointer;
|
|
transition:border-color .15s ease, box-shadow .15s ease, background .15s ease;
|
|
}
|
|
|
|
.tree-category-option:hover{
|
|
border-color:#9eb4c7;
|
|
background:#f5f9fc;
|
|
}
|
|
|
|
.tree-category-option:has(input:focus-visible){
|
|
outline:2px solid currentColor;
|
|
outline-offset:2px;
|
|
}
|
|
|
|
.tree-category-option:has(input:checked){
|
|
border-color:#55758e;
|
|
background:#eef5fa;
|
|
box-shadow:inset 3px 0 0 #55758e;
|
|
}
|
|
|
|
.tree-category-option input{
|
|
position:absolute;
|
|
opacity:0;
|
|
pointer-events:none;
|
|
}
|
|
|
|
.tree-category-check{
|
|
flex:0 0 18px;
|
|
width:18px;
|
|
height:18px;
|
|
border:1px solid #9aa9b5;
|
|
border-radius:4px;
|
|
background:#fff;
|
|
display:grid;
|
|
place-items:center;
|
|
}
|
|
|
|
.tree-category-option input:checked + .tree-category-check{
|
|
border-color:#55758e;
|
|
background:#55758e;
|
|
}
|
|
|
|
.tree-category-option input:checked + .tree-category-check::after{
|
|
content:"";
|
|
width:8px;
|
|
height:4px;
|
|
border-left:2px solid #fff;
|
|
border-bottom:2px solid #fff;
|
|
transform:rotate(-45deg) translateY(-1px);
|
|
}
|
|
|
|
.tree-category-name{
|
|
min-width:0;
|
|
font-weight:600;
|
|
line-height:1.25;
|
|
overflow-wrap:anywhere;
|
|
}
|
|
|
|
.tree-category-filter > small{
|
|
display:block;
|
|
padding:8px 14px 10px;
|
|
color:#697884;
|
|
background:#fff;
|
|
}
|
|
|
|
@media(max-width:900px){
|
|
.management-table-scroll thead tr:first-child th,
|
|
.management-table-scroll thead .column-filter-row th{
|
|
position:static;
|
|
}
|
|
|
|
.tree-category-options{
|
|
grid-template-columns:repeat(auto-fit,minmax(130px,1fr));
|
|
}
|
|
}
|
|
|
|
|
|
/* v0.4.0.4: professional full-width asset-tree filters */
|
|
.tree-filters{
|
|
display:block;
|
|
padding:18px;
|
|
}
|
|
|
|
.tree-filter-controls{
|
|
display:grid;
|
|
grid-template-columns:minmax(220px,1fr) minmax(220px,1fr) minmax(280px,1.15fr) auto;
|
|
gap:16px;
|
|
align-items:end;
|
|
margin-bottom:18px;
|
|
}
|
|
|
|
.tree-filter-field{
|
|
display:flex;
|
|
flex-direction:column;
|
|
gap:6px;
|
|
min-width:0;
|
|
font-weight:600;
|
|
}
|
|
|
|
.tree-filter-field select,
|
|
.tree-filter-field input{
|
|
width:100%;
|
|
}
|
|
|
|
.tree-toggle-option{
|
|
display:flex;
|
|
align-items:center;
|
|
gap:11px;
|
|
min-height:42px;
|
|
padding:8px 12px;
|
|
border:1px solid #d7dee5;
|
|
border-radius:7px;
|
|
background:#f8fafc;
|
|
cursor:pointer;
|
|
font-weight:600;
|
|
}
|
|
|
|
.tree-toggle-option:hover{
|
|
border-color:#9eb4c7;
|
|
background:#f3f7fa;
|
|
}
|
|
|
|
.tree-toggle-option input{
|
|
position:absolute;
|
|
opacity:0;
|
|
pointer-events:none;
|
|
}
|
|
|
|
.tree-toggle-track{
|
|
position:relative;
|
|
flex:0 0 38px;
|
|
width:38px;
|
|
height:22px;
|
|
border-radius:999px;
|
|
background:#a9b5bf;
|
|
transition:background .15s ease;
|
|
}
|
|
|
|
.tree-toggle-thumb{
|
|
position:absolute;
|
|
top:3px;
|
|
left:3px;
|
|
width:16px;
|
|
height:16px;
|
|
border-radius:50%;
|
|
background:#fff;
|
|
box-shadow:0 1px 3px rgba(0,0,0,.28);
|
|
transition:transform .15s ease;
|
|
}
|
|
|
|
.tree-toggle-option input:checked + .tree-toggle-track{
|
|
background:#55758e;
|
|
}
|
|
|
|
.tree-toggle-option input:checked + .tree-toggle-track .tree-toggle-thumb{
|
|
transform:translateX(16px);
|
|
}
|
|
|
|
.tree-toggle-option:has(input:focus-visible){
|
|
outline:2px solid currentColor;
|
|
outline-offset:2px;
|
|
}
|
|
|
|
.tree-toggle-text{
|
|
line-height:1.25;
|
|
}
|
|
|
|
.tree-filter-actions{
|
|
display:flex;
|
|
align-items:center;
|
|
gap:8px;
|
|
min-height:42px;
|
|
}
|
|
|
|
.tree-category-filter{
|
|
width:100%;
|
|
box-sizing:border-box;
|
|
}
|
|
|
|
.tree-category-options{
|
|
grid-template-columns:repeat(auto-fill,minmax(170px,1fr));
|
|
max-height:220px;
|
|
}
|
|
|
|
@media(max-width:1150px){
|
|
.tree-filter-controls{
|
|
grid-template-columns:repeat(2,minmax(220px,1fr));
|
|
}
|
|
|
|
.tree-filter-actions{
|
|
justify-content:flex-start;
|
|
}
|
|
}
|
|
|
|
@media(max-width:700px){
|
|
.tree-filter-controls{
|
|
grid-template-columns:1fr;
|
|
}
|
|
|
|
.tree-filter-actions,
|
|
.tree-filter-actions .button{
|
|
width:100%;
|
|
}
|
|
|
|
.tree-filter-actions .button{
|
|
text-align:center;
|
|
}
|
|
|
|
.tree-category-options{
|
|
grid-template-columns:1fr;
|
|
}
|
|
}
|
|
|
|
|
|
/* v0.4.0.5: one common filter row for every data table */
|
|
.column-filter-row{
|
|
display:table-row !important;
|
|
visibility:visible !important;
|
|
}
|
|
|
|
.column-filter-row[hidden]{
|
|
display:table-row !important;
|
|
}
|
|
|
|
.column-filter-row th{
|
|
display:table-cell !important;
|
|
}
|
|
|
|
.column-filter-row input[type="search"]{
|
|
display:block;
|
|
width:100%;
|
|
min-width:90px;
|
|
box-sizing:border-box;
|
|
}
|
|
|
|
/* Management pages use browser scrolling; avoid clipped sticky rows. */
|
|
.management-table-scroll thead tr:first-child th,
|
|
.management-table-scroll thead .column-filter-row th{
|
|
position:static;
|
|
top:auto;
|
|
}
|
|
|
|
/* Asset table keeps its own sticky behavior inside its dedicated scroller. */
|
|
#asset-table-scroll #asset-table thead tr:first-child th{
|
|
position:sticky;
|
|
top:0;
|
|
z-index:4;
|
|
}
|
|
|
|
#asset-table-scroll #asset-table thead .column-filter-row th{
|
|
position:sticky;
|
|
top:41px;
|
|
z-index:3;
|
|
}
|
|
|
|
|
|
/* v0.4.0.8: clearly visible active table filters */
|
|
.column-filter-row input[type="search"]{
|
|
transition:
|
|
background-color .15s ease,
|
|
border-color .15s ease,
|
|
box-shadow .15s ease;
|
|
}
|
|
|
|
.column-filter-row th.filter-cell-active{
|
|
background:#fff2c7;
|
|
}
|
|
|
|
.column-filter-row input[type="search"].filter-input-active{
|
|
background:#fff7d8;
|
|
border-color:#cf9b16;
|
|
box-shadow:
|
|
0 0 0 2px rgba(207,155,22,.18),
|
|
inset 3px 0 0 #cf9b16;
|
|
font-weight:600;
|
|
}
|
|
|
|
.column-filter-row input[type="search"].filter-input-active:focus{
|
|
background:#fff9e5;
|
|
border-color:#a87500;
|
|
box-shadow:
|
|
0 0 0 3px rgba(207,155,22,.24),
|
|
inset 3px 0 0 #a87500;
|
|
}
|
|
|
|
.table-filter-status{
|
|
display:flex;
|
|
align-items:center;
|
|
gap:10px;
|
|
width:100%;
|
|
box-sizing:border-box;
|
|
margin:0 0 8px;
|
|
padding:8px 10px;
|
|
border:1px solid #d8dde2;
|
|
border-radius:6px;
|
|
background:#f8fafc;
|
|
color:#344554;
|
|
font-size:13px;
|
|
}
|
|
|
|
.table-filter-status[hidden]{
|
|
display:none !important;
|
|
}
|
|
|
|
.table-filter-status.is-active{
|
|
border-color:#d4a735;
|
|
background:#fff8df;
|
|
color:#604900;
|
|
}
|
|
|
|
.table-filter-status-icon{
|
|
display:inline-grid;
|
|
place-items:center;
|
|
flex:0 0 24px;
|
|
width:24px;
|
|
height:24px;
|
|
border-radius:50%;
|
|
background:#d4a735;
|
|
color:#fff;
|
|
font-size:15px;
|
|
font-weight:700;
|
|
}
|
|
|
|
.table-filter-status-label{
|
|
white-space:nowrap;
|
|
}
|
|
|
|
.table-filter-status-details{
|
|
min-width:0;
|
|
color:#6a5a25;
|
|
}
|
|
|
|
.table-filter-clear{
|
|
margin-left:auto;
|
|
padding:5px 9px;
|
|
font-size:12px;
|
|
white-space:nowrap;
|
|
}
|
|
|
|
.asset-list-page > .table-filter-status{
|
|
flex:0 0 auto;
|
|
}
|
|
|
|
@media(max-width:700px){
|
|
.table-filter-status{
|
|
flex-wrap:wrap;
|
|
}
|
|
|
|
.table-filter-status-details{
|
|
flex:1 1 calc(100% - 44px);
|
|
}
|
|
|
|
.table-filter-clear{
|
|
width:100%;
|
|
margin-left:0;
|
|
}
|
|
}
|
|
|
|
|
|
/* v0.4.0.9: configurable system colors */
|
|
html,body{background:var(--am-page-bg);color:var(--am-text)}
|
|
body,main,.app-content{color:var(--am-text)}
|
|
.main-header{background:var(--am-header)}
|
|
.side-nav{background:var(--am-navigation);border-color:var(--am-border)}
|
|
.panel,.auth-card,.tree-card,.backup-card,.settings-section,dialog,
|
|
.data-table,.management-table-scroll,.sticky-table,.table-scroll{
|
|
background-color:var(--am-surface);
|
|
color:var(--am-text);
|
|
border-color:var(--am-border);
|
|
}
|
|
button,.button{background-color:var(--am-primary)}
|
|
button:hover,.button:hover{background-color:var(--am-primary-hover)}
|
|
.button-secondary{background:#546675}
|
|
.button-danger{background:var(--am-danger)}
|
|
.button-save{background:var(--am-primary)}
|
|
.button-issue{background:var(--am-success)}
|
|
.button-return{background:var(--am-warning)}
|
|
input,select,textarea{
|
|
background:var(--am-surface);
|
|
color:var(--am-text);
|
|
border-color:var(--am-border);
|
|
}
|
|
th{background:#e7ecf0;color:var(--am-text)}
|
|
td,th{border-color:var(--am-border)}
|
|
a{color:var(--am-primary)}
|
|
.filters a{border-color:var(--am-border);background:var(--am-surface)}
|
|
.filters a:hover{border-color:var(--am-primary)}
|
|
.notice{color:#594600}
|
|
.muted,.table-hint,small{color:color-mix(in srgb,var(--am-text) 67%,transparent)}
|
|
|
|
/* Header theme switch */
|
|
.header-theme-form{margin:0;padding:0;border:0;background:transparent}
|
|
.header-theme-toggle{
|
|
position:relative;
|
|
display:flex;
|
|
align-items:center;
|
|
justify-content:space-between;
|
|
width:48px;
|
|
height:27px;
|
|
padding:3px 6px;
|
|
border:1px solid rgba(255,255,255,.45);
|
|
border-radius:999px;
|
|
background:rgba(255,255,255,.16);
|
|
color:#fff;
|
|
}
|
|
.header-theme-toggle:hover{background:rgba(255,255,255,.28)}
|
|
.header-theme-toggle::after{
|
|
content:"";
|
|
position:absolute;
|
|
top:3px;
|
|
left:3px;
|
|
width:19px;
|
|
height:19px;
|
|
border-radius:50%;
|
|
background:#fff;
|
|
box-shadow:0 1px 4px rgba(0,0,0,.3);
|
|
transition:transform .18s ease;
|
|
}
|
|
html[data-theme="dark"] .header-theme-toggle::after{transform:translateX(21px)}
|
|
.theme-icon-light,.theme-icon-dark{font-size:13px;line-height:1;z-index:1}
|
|
.theme-icon-light{color:#d99000}.theme-icon-dark{color:#dce8ff}
|
|
|
|
/* Profile theme cards */
|
|
.theme-mode-choice{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:10px 0 16px}
|
|
.theme-choice-card{position:relative;display:grid;gap:8px;padding:10px;border:2px solid var(--am-border);border-radius:8px;cursor:pointer}
|
|
.theme-choice-card:has(input:checked){border-color:var(--am-primary);box-shadow:0 0 0 2px color-mix(in srgb,var(--am-primary) 20%,transparent)}
|
|
.theme-choice-card input{position:absolute;opacity:0}
|
|
.theme-choice-preview{display:grid;grid-template-columns:28% 1fr;gap:5px;height:70px;padding:6px;border-radius:5px;border:1px solid #adb5bd}
|
|
.theme-choice-preview span:first-child{border-radius:3px}
|
|
.theme-choice-preview span:last-child{border-radius:3px}
|
|
.theme-choice-preview-light{background:#eef1f4}.theme-choice-preview-light span:first-child{background:#fff}.theme-choice-preview-light span:last-child{background:#fff}
|
|
.theme-choice-preview-dark{background:#151b23}.theme-choice-preview-dark span:first-child{background:#232d39}.theme-choice-preview-dark span:last-child{background:#202832}
|
|
|
|
/* Appearance color editor */
|
|
.settings-section-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}
|
|
.theme-color-layout{display:grid;grid-template-columns:minmax(420px,1.25fr) minmax(280px,.75fr);gap:24px;align-items:start}
|
|
.theme-color-grid{display:grid;grid-template-columns:repeat(2,minmax(190px,1fr));gap:12px}
|
|
.theme-color-field{display:flex;flex-direction:column;gap:6px;padding:10px;border:1px solid var(--am-border);border-radius:7px;background:var(--am-surface)}
|
|
.theme-color-input{display:grid;grid-template-columns:52px 1fr;gap:9px;align-items:center}
|
|
.theme-color-input input[type="color"]{width:52px;height:36px;padding:2px;cursor:pointer}
|
|
.theme-color-input code{padding:7px 8px;border:1px solid var(--am-border);border-radius:4px;background:color-mix(in srgb,var(--am-page-bg) 75%,var(--am-surface))}
|
|
.theme-live-preview{position:sticky;top:75px;padding:14px;border:1px solid var(--am-border);border-radius:8px;background:var(--am-surface)}
|
|
.theme-preview-window{overflow:hidden;height:230px;border:1px solid var(--preview-border,#d7dde3);border-radius:7px;background:var(--preview-page-bg,#f2f4f6)}
|
|
.theme-preview-header{height:35px;background:var(--preview-header,#063c66)}
|
|
.theme-preview-body{display:grid;grid-template-columns:25% 1fr;height:195px}
|
|
.theme-preview-nav{background:var(--preview-navigation,#fff);border-right:1px solid var(--preview-border,#d7dde3)}
|
|
.theme-preview-content{padding:16px}
|
|
.theme-preview-card{height:95px;border:1px solid var(--preview-border,#d7dde3);border-radius:5px;background:var(--preview-surface,#fff)}
|
|
.theme-preview-buttons{display:flex;gap:8px;margin-top:15px}
|
|
.theme-preview-buttons i{width:44px;height:20px;border-radius:4px;background:var(--preview-primary,#0878bd)}
|
|
.theme-preview-buttons i:nth-child(2){background:var(--preview-success,#198754)}
|
|
.theme-preview-buttons i:nth-child(3){background:var(--preview-danger,#b42318)}
|
|
|
|
/* Dark mode */
|
|
html[data-theme="dark"]{
|
|
color-scheme:dark;
|
|
--am-page-bg:#11161d;
|
|
--am-surface:#1c242e;
|
|
--am-text:#e7edf3;
|
|
--am-border:#3a4755;
|
|
--am-navigation:#18212b;
|
|
}
|
|
html[data-theme="dark"] body,
|
|
html[data-theme="dark"] .app-content{background:#11161d;color:#e7edf3}
|
|
html[data-theme="dark"] .main-header{background:color-mix(in srgb,var(--am-header) 70%,#101820)}
|
|
html[data-theme="dark"] .side-nav,
|
|
html[data-theme="dark"] .settings-hover-menu,
|
|
html[data-theme="dark"] .user-menu-panel{background:#18212b;color:#e7edf3;border-color:#3a4755}
|
|
html[data-theme="dark"] .side-nav a,
|
|
html[data-theme="dark"] .user-menu-panel a,
|
|
html[data-theme="dark"] .settings-hover-menu a{color:#e7edf3 !important}
|
|
html[data-theme="dark"] .side-nav a:hover,
|
|
html[data-theme="dark"] .user-menu-panel a:hover,
|
|
html[data-theme="dark"] .settings-hover-menu a:hover{background:#273442 !important;color:#fff !important}
|
|
html[data-theme="dark"] .panel,
|
|
html[data-theme="dark"] .auth-card,
|
|
html[data-theme="dark"] .settings-section,
|
|
html[data-theme="dark"] dialog,
|
|
html[data-theme="dark"] .tree-card,
|
|
html[data-theme="dark"] .management-table-scroll,
|
|
html[data-theme="dark"] .sticky-table{background:#1c242e;color:#e7edf3;border-color:#3a4755}
|
|
html[data-theme="dark"] input,
|
|
html[data-theme="dark"] select,
|
|
html[data-theme="dark"] textarea{background:#131a22;color:#edf3f8;border-color:#465463}
|
|
html[data-theme="dark"] table,
|
|
html[data-theme="dark"] td{background:#1c242e;color:#e7edf3;border-color:#3a4755}
|
|
html[data-theme="dark"] th{background:#293541;color:#f3f6f9;border-color:#465463}
|
|
html[data-theme="dark"] .column-filter-row th{background:#232e39}
|
|
html[data-theme="dark"] .column-filter-row th.filter-cell-active{background:#554612}
|
|
html[data-theme="dark"] .column-filter-row input.filter-input-active{background:#493d14;color:#fff2b3;border-color:#d4a735}
|
|
html[data-theme="dark"] .filters a{background:#1c242e;color:#8dcbf1;border-color:#3a4755}
|
|
html[data-theme="dark"] .table-filter-status.is-active{background:#403715;color:#ffeb9e;border-color:#a98b2d}
|
|
html[data-theme="dark"] .table-filter-status-details{color:#ddca86}
|
|
html[data-theme="dark"] .notice{background:#493d14;color:#fff0ad;border-color:#7a6721}
|
|
html[data-theme="dark"] .muted,
|
|
html[data-theme="dark"] .table-hint,
|
|
html[data-theme="dark"] small{color:#aeb9c5}
|
|
html[data-theme="dark"] code{background:#121820;color:#dbe8f2}
|
|
html[data-theme="dark"] .tree-category-options{background:#151d25;border-color:#3a4755}
|
|
html[data-theme="dark"] .tree-category-option{background:#1c242e;color:#e7edf3;border-color:#3a4755}
|
|
html[data-theme="dark"] .tree-category-option:hover{background:#26323e}
|
|
html[data-theme="dark"] .tree-category-option:has(input:checked){background:#263a49;border-color:#5f9ac0}
|
|
html[data-theme="dark"] .backup-empty-state{background:#151d25;border-color:#465463}
|
|
html[data-theme="dark"] .theme-color-field,
|
|
html[data-theme="dark"] .theme-live-preview{background:#18212b}
|
|
|
|
@media(max-width:900px){
|
|
.theme-color-layout{grid-template-columns:1fr}
|
|
.theme-live-preview{position:static}
|
|
}
|
|
@media(max-width:600px){
|
|
.theme-color-grid,.theme-mode-choice{grid-template-columns:1fr}
|
|
.settings-section-heading{flex-direction:column}
|
|
}
|
|
|
|
|
|
/* v0.4.0.10: Dark-mode cleanup and configurable borders/surfaces */
|
|
|
|
/* Settings sections and forms must use configured surface/border colors. */
|
|
.settings-form,
|
|
.settings-section,
|
|
.settings-subsection,
|
|
.auth-card,
|
|
.profile-panel,
|
|
.panel{
|
|
background:var(--am-surface);
|
|
color:var(--am-text);
|
|
border-color:var(--am-border);
|
|
}
|
|
|
|
.settings-form{
|
|
border-color:transparent;
|
|
}
|
|
|
|
.settings-section{
|
|
box-shadow:none;
|
|
}
|
|
|
|
/* Language and user dropdowns */
|
|
.language-menu .user-menu-panel,
|
|
.user-menu .user-menu-panel{
|
|
background:var(--am-surface);
|
|
color:var(--am-text);
|
|
border-color:var(--am-border);
|
|
}
|
|
|
|
.language-menu .menu-button,
|
|
.user-menu .menu-button{
|
|
width:100%;
|
|
background:transparent;
|
|
color:var(--am-text);
|
|
border:0;
|
|
text-align:left;
|
|
}
|
|
|
|
.language-menu .menu-button:hover,
|
|
.user-menu .menu-button:hover,
|
|
.language-menu .menu-button.active,
|
|
.user-menu .menu-button.active{
|
|
background:color-mix(in srgb,var(--am-primary) 18%,var(--am-surface));
|
|
color:var(--am-text);
|
|
}
|
|
|
|
html[data-theme="dark"] .language-menu .user-menu-panel,
|
|
html[data-theme="dark"] .user-menu .user-menu-panel{
|
|
background:#18212b;
|
|
color:#e7edf3;
|
|
border-color:#3a4755;
|
|
}
|
|
|
|
html[data-theme="dark"] .language-menu .menu-button,
|
|
html[data-theme="dark"] .user-menu .menu-button{
|
|
background:transparent;
|
|
color:#e7edf3;
|
|
}
|
|
|
|
html[data-theme="dark"] .language-menu .menu-button:hover,
|
|
html[data-theme="dark"] .user-menu .menu-button:hover,
|
|
html[data-theme="dark"] .language-menu .menu-button.active,
|
|
html[data-theme="dark"] .user-menu .menu-button.active{
|
|
background:#273442;
|
|
color:#ffffff;
|
|
}
|
|
|
|
/* Asset-tree category text and switch */
|
|
.tree-category-filter,
|
|
.tree-category-options,
|
|
.tree-category-option,
|
|
.tree-toggle-option{
|
|
color:var(--am-text);
|
|
border-color:var(--am-border);
|
|
}
|
|
|
|
.tree-category-filter{
|
|
background:var(--am-surface);
|
|
}
|
|
|
|
.tree-category-filter legend,
|
|
.tree-category-name,
|
|
.tree-toggle-text{
|
|
color:var(--am-text);
|
|
}
|
|
|
|
.tree-category-options{
|
|
background:color-mix(in srgb,var(--am-page-bg) 72%,var(--am-surface));
|
|
}
|
|
|
|
.tree-category-option,
|
|
.tree-toggle-option{
|
|
background:var(--am-surface);
|
|
}
|
|
|
|
.tree-category-option:hover,
|
|
.tree-toggle-option:hover{
|
|
background:color-mix(in srgb,var(--am-primary) 8%,var(--am-surface));
|
|
}
|
|
|
|
.tree-category-option:has(input:checked){
|
|
background:color-mix(in srgb,var(--am-primary) 14%,var(--am-surface));
|
|
border-color:var(--am-primary);
|
|
}
|
|
|
|
html[data-theme="dark"] .tree-category-filter{
|
|
background:#1c242e;
|
|
border-color:#3a4755;
|
|
}
|
|
|
|
html[data-theme="dark"] .tree-category-filter legend,
|
|
html[data-theme="dark"] .tree-category-name,
|
|
html[data-theme="dark"] .tree-toggle-text{
|
|
color:#e7edf3;
|
|
}
|
|
|
|
html[data-theme="dark"] .tree-category-options{
|
|
background:#151d25;
|
|
border-color:#3a4755;
|
|
}
|
|
|
|
html[data-theme="dark"] .tree-category-option,
|
|
html[data-theme="dark"] .tree-toggle-option{
|
|
background:#1c242e;
|
|
color:#e7edf3;
|
|
border-color:#3a4755;
|
|
}
|
|
|
|
html[data-theme="dark"] .tree-category-option:hover,
|
|
html[data-theme="dark"] .tree-toggle-option:hover{
|
|
background:#26323e;
|
|
}
|
|
|
|
html[data-theme="dark"] .tree-category-option:has(input:checked){
|
|
background:#263a49;
|
|
border-color:#5f9ac0;
|
|
}
|
|
|
|
/* Prevent light remnants from native-looking fieldsets/cards */
|
|
fieldset,
|
|
legend{
|
|
color:var(--am-text);
|
|
border-color:var(--am-border);
|
|
}
|
|
|
|
html[data-theme="dark"] fieldset{
|
|
background:transparent;
|
|
border-color:#3a4755;
|
|
}
|
|
|
|
html[data-theme="dark"] legend{
|
|
color:#e7edf3;
|
|
}
|
|
|
|
|
|
/* v0.4.0.11: comprehensive dark-mode surfaces */
|
|
|
|
/* General application surfaces */
|
|
html[data-theme="dark"] form:not(.inline-form):not(.header-theme-form):not(.backup-create-form){
|
|
background:#1c242e;
|
|
color:#e7edf3;
|
|
border-color:#3a4755;
|
|
}
|
|
|
|
html[data-theme="dark"] .compact-form,
|
|
html[data-theme="dark"] .user-permission-form,
|
|
html[data-theme="dark"] .translation-filter-form,
|
|
html[data-theme="dark"] .backup-upload-form,
|
|
html[data-theme="dark"] .chart-form,
|
|
html[data-theme="dark"] .settings-form{
|
|
background:#1c242e !important;
|
|
color:#e7edf3;
|
|
border-color:#3a4755 !important;
|
|
}
|
|
|
|
html[data-theme="dark"] .card,
|
|
html[data-theme="dark"] .cards .card,
|
|
html[data-theme="dark"] .sync-summary-card,
|
|
html[data-theme="dark"] .backup-summary-card,
|
|
html[data-theme="dark"] .backup-content-note,
|
|
html[data-theme="dark"] .backup-upload-form,
|
|
html[data-theme="dark"] .backup-table-wrap,
|
|
html[data-theme="dark"] .translation-filter-panel,
|
|
html[data-theme="dark"] .translation-selection-actions,
|
|
html[data-theme="dark"] .form-card,
|
|
html[data-theme="dark"] .chart-card,
|
|
html[data-theme="dark"] .detail,
|
|
html[data-theme="dark"] .config-list,
|
|
html[data-theme="dark"] .logo-preview,
|
|
html[data-theme="dark"] .settings-subsection{
|
|
background:#1c242e !important;
|
|
color:#e7edf3 !important;
|
|
border-color:#3a4755 !important;
|
|
}
|
|
|
|
html[data-theme="dark"] .card strong,
|
|
html[data-theme="dark"] .card small,
|
|
html[data-theme="dark"] .backup-summary-label,
|
|
html[data-theme="dark"] .backup-summary-card strong,
|
|
html[data-theme="dark"] .backup-content-note p{
|
|
color:#e7edf3 !important;
|
|
}
|
|
|
|
/* Forms, controls and browser-native file inputs */
|
|
html[data-theme="dark"] input,
|
|
html[data-theme="dark"] select,
|
|
html[data-theme="dark"] textarea{
|
|
background:#131a22 !important;
|
|
color:#edf3f8 !important;
|
|
border-color:#465463 !important;
|
|
}
|
|
|
|
html[data-theme="dark"] input::placeholder,
|
|
html[data-theme="dark"] textarea::placeholder{
|
|
color:#93a1ae !important;
|
|
opacity:1;
|
|
}
|
|
|
|
html[data-theme="dark"] input[type="file"]{
|
|
background:#131a22 !important;
|
|
color:#dfe7ee !important;
|
|
}
|
|
|
|
html[data-theme="dark"] input[type="file"]::file-selector-button{
|
|
background:#526678;
|
|
color:#fff;
|
|
border:0;
|
|
border-radius:4px;
|
|
padding:6px 10px;
|
|
margin-right:10px;
|
|
cursor:pointer;
|
|
}
|
|
|
|
html[data-theme="dark"] input[type="checkbox"],
|
|
html[data-theme="dark"] input[type="radio"]{
|
|
accent-color:var(--am-primary);
|
|
}
|
|
|
|
/* MeshCentral synchronization */
|
|
html[data-theme="dark"] .sync-status,
|
|
html[data-theme="dark"] .status-success,
|
|
html[data-theme="dark"] .status-synced,
|
|
html[data-theme="dark"] .status-created,
|
|
html[data-theme="dark"] .status-updated{
|
|
background:#244631;
|
|
color:#bce8c9;
|
|
}
|
|
|
|
html[data-theme="dark"] .status-conflict,
|
|
html[data-theme="dark"] .status-partial{
|
|
background:#4d411b;
|
|
color:#ffe68d;
|
|
}
|
|
|
|
html[data-theme="dark"] .status-error,
|
|
html[data-theme="dark"] .status-missing{
|
|
background:#552828;
|
|
color:#ffc2c2;
|
|
}
|
|
|
|
html[data-theme="dark"] .log-box,
|
|
html[data-theme="dark"] .sync-log,
|
|
html[data-theme="dark"] pre{
|
|
background:#101722 !important;
|
|
color:#dce8f4 !important;
|
|
border-color:#3a4755 !important;
|
|
}
|
|
|
|
/* Backup page */
|
|
html[data-theme="dark"] .backup-summary-card{
|
|
box-shadow:none;
|
|
}
|
|
|
|
html[data-theme="dark"] .backup-summary-icon{
|
|
background:#283544;
|
|
color:#d9e7f2;
|
|
}
|
|
|
|
html[data-theme="dark"] .backup-status-badge,
|
|
html[data-theme="dark"] .backup-count{
|
|
background:#244631;
|
|
color:#c5efd0;
|
|
}
|
|
|
|
html[data-theme="dark"] .backup-table th{
|
|
background:#293541;
|
|
color:#f2f6f9;
|
|
}
|
|
|
|
html[data-theme="dark"] .backup-empty-state{
|
|
background:#151d25 !important;
|
|
color:#dbe5ed;
|
|
border-color:#465463;
|
|
}
|
|
|
|
/* Categories and status values */
|
|
html[data-theme="dark"] .category-attributes .attribute-badge,
|
|
html[data-theme="dark"] .category-attributes span{
|
|
background:#253443;
|
|
color:#dbeaf4;
|
|
border-color:#486071;
|
|
}
|
|
|
|
html[data-theme="dark"] .category-attributes span:hover{
|
|
background:#304456;
|
|
}
|
|
|
|
html[data-theme="dark"] .categories-table form,
|
|
html[data-theme="dark"] .data-table form{
|
|
background:transparent !important;
|
|
border:0 !important;
|
|
color:inherit;
|
|
}
|
|
|
|
html[data-theme="dark"] .data-table input,
|
|
html[data-theme="dark"] .data-table select,
|
|
html[data-theme="dark"] .data-table textarea{
|
|
background:#131a22 !important;
|
|
color:#edf3f8 !important;
|
|
border-color:#465463 !important;
|
|
}
|
|
|
|
/* Translations */
|
|
html[data-theme="dark"] .translation-filter-panel,
|
|
html[data-theme="dark"] .translation-filter-form,
|
|
html[data-theme="dark"] .translation-selection-actions{
|
|
background:#1c242e !important;
|
|
}
|
|
|
|
html[data-theme="dark"] .translation-filter-checkbox,
|
|
html[data-theme="dark"] .translation-filter-checkbox span,
|
|
html[data-theme="dark"] .translation-filter-checkbox label{
|
|
color:#e7edf3 !important;
|
|
}
|
|
|
|
html[data-theme="dark"] .translations-table textarea,
|
|
html[data-theme="dark"] .table-wrap textarea{
|
|
background:#131a22 !important;
|
|
color:#edf3f8 !important;
|
|
}
|
|
|
|
/* User management */
|
|
html[data-theme="dark"] .user-permission-form,
|
|
html[data-theme="dark"] .user-permission-form fieldset,
|
|
html[data-theme="dark"] .group-checkboxes,
|
|
html[data-theme="dark"] .checkbox-row{
|
|
background:transparent !important;
|
|
color:#e7edf3 !important;
|
|
border-color:#465463 !important;
|
|
}
|
|
|
|
html[data-theme="dark"] .user-permission-form label,
|
|
html[data-theme="dark"] .group-checkboxes label,
|
|
html[data-theme="dark"] .checkbox-row label,
|
|
html[data-theme="dark"] .checkbox-label{
|
|
color:#e7edf3 !important;
|
|
}
|
|
|
|
html[data-theme="dark"] .user-inline-form{
|
|
background:transparent !important;
|
|
}
|
|
|
|
/* Remove remaining bright strips and native white surfaces */
|
|
html[data-theme="dark"] .table-scroll,
|
|
html[data-theme="dark"] .table-wrap,
|
|
html[data-theme="dark"] .sticky-table,
|
|
html[data-theme="dark"] .management-table-scroll{
|
|
background:#1c242e !important;
|
|
border-color:#3a4755 !important;
|
|
}
|
|
|
|
html[data-theme="dark"] hr{
|
|
border-color:#3a4755;
|
|
}
|
|
|
|
html[data-theme="dark"] .logo-preview img{
|
|
background:#151d25;
|
|
border-color:#465463;
|
|
}
|
|
|
|
/* Explicitly keep action forms transparent */
|
|
html[data-theme="dark"] .inline-form,
|
|
html[data-theme="dark"] .backup-actions form,
|
|
html[data-theme="dark"] .row-actions form,
|
|
html[data-theme="dark"] .hidden-utility-form,
|
|
html[data-theme="dark"] .header-theme-form{
|
|
background:transparent !important;
|
|
border:0 !important;
|
|
}
|
|
|
|
|
|
/* v0.4.0.12: loading overlays, dialogs and progress indicators */
|
|
|
|
/* Asset-page loading overlay */
|
|
html.asset-page-booting .app-content{
|
|
position:relative;
|
|
}
|
|
|
|
html.asset-page-booting .asset-page-loader{
|
|
position:fixed;
|
|
inset:58px 0 0 58px;
|
|
z-index:4500;
|
|
min-height:0;
|
|
padding:24px;
|
|
background:rgba(242,244,246,.82);
|
|
backdrop-filter:blur(2px);
|
|
-webkit-backdrop-filter:blur(2px);
|
|
}
|
|
|
|
html.sidebar-collapsed-preset.asset-page-booting .asset-page-loader{
|
|
left:58px;
|
|
}
|
|
|
|
.asset-page-loader-card{
|
|
color:var(--am-text);
|
|
background:var(--am-surface);
|
|
border-color:var(--am-border);
|
|
box-shadow:0 16px 42px rgba(0,0,0,.22);
|
|
}
|
|
|
|
.asset-page-loader-card strong{
|
|
color:var(--am-text);
|
|
}
|
|
|
|
.asset-page-loader-card .muted{
|
|
color:color-mix(in srgb,var(--am-text) 68%,transparent);
|
|
}
|
|
|
|
.asset-page-spinner{
|
|
color:var(--am-primary);
|
|
border-color:color-mix(in srgb,var(--am-border) 78%,transparent);
|
|
border-top-color:var(--am-primary);
|
|
}
|
|
|
|
/* Generic native dialogs and modal overlays */
|
|
dialog{
|
|
color:var(--am-text);
|
|
background:var(--am-surface);
|
|
border:1px solid var(--am-border);
|
|
}
|
|
|
|
dialog::backdrop{
|
|
background:rgba(18,26,34,.62);
|
|
backdrop-filter:blur(2px);
|
|
-webkit-backdrop-filter:blur(2px);
|
|
}
|
|
|
|
dialog form{
|
|
color:var(--am-text);
|
|
background:transparent;
|
|
}
|
|
|
|
/* HTML progress elements */
|
|
progress{
|
|
width:100%;
|
|
height:12px;
|
|
overflow:hidden;
|
|
border:0;
|
|
border-radius:999px;
|
|
background:color-mix(in srgb,var(--am-border) 60%,var(--am-surface));
|
|
color:var(--am-primary);
|
|
}
|
|
|
|
progress::-webkit-progress-bar{
|
|
background:color-mix(in srgb,var(--am-border) 60%,var(--am-surface));
|
|
border-radius:999px;
|
|
}
|
|
|
|
progress::-webkit-progress-value{
|
|
background:var(--am-primary);
|
|
border-radius:999px;
|
|
}
|
|
|
|
progress::-moz-progress-bar{
|
|
background:var(--am-primary);
|
|
border-radius:999px;
|
|
}
|
|
|
|
/* Common custom progress bars */
|
|
.progress,
|
|
.progress-track,
|
|
.loading-progress{
|
|
background:color-mix(in srgb,var(--am-border) 60%,var(--am-surface));
|
|
border-color:var(--am-border);
|
|
}
|
|
|
|
.progress-bar,
|
|
.progress-value,
|
|
.loading-progress-bar{
|
|
background:var(--am-primary);
|
|
}
|
|
|
|
/* Dark mode */
|
|
html[data-theme="dark"].asset-page-booting .asset-page-loader{
|
|
background:rgba(8,12,17,.84);
|
|
}
|
|
|
|
html[data-theme="dark"] .asset-page-loader-card{
|
|
background:#1c242e;
|
|
color:#e7edf3;
|
|
border-color:#465463;
|
|
box-shadow:0 18px 50px rgba(0,0,0,.55);
|
|
}
|
|
|
|
html[data-theme="dark"] .asset-page-loader-card strong{
|
|
color:#f3f7fa;
|
|
}
|
|
|
|
html[data-theme="dark"] .asset-page-loader-card .muted{
|
|
color:#aeb9c5;
|
|
}
|
|
|
|
html[data-theme="dark"] .asset-page-spinner{
|
|
color:var(--am-primary);
|
|
border-color:#465463;
|
|
border-top-color:var(--am-primary);
|
|
}
|
|
|
|
html[data-theme="dark"] dialog{
|
|
background:#1c242e;
|
|
color:#e7edf3;
|
|
border-color:#465463;
|
|
box-shadow:0 20px 60px rgba(0,0,0,.62);
|
|
}
|
|
|
|
html[data-theme="dark"] dialog::backdrop{
|
|
background:rgba(4,7,10,.76);
|
|
}
|
|
|
|
html[data-theme="dark"] progress,
|
|
html[data-theme="dark"] progress::-webkit-progress-bar,
|
|
html[data-theme="dark"] .progress,
|
|
html[data-theme="dark"] .progress-track,
|
|
html[data-theme="dark"] .loading-progress{
|
|
background:#2a3541;
|
|
}
|
|
|
|
@media(max-width:900px){
|
|
html.asset-page-booting .asset-page-loader{
|
|
left:0;
|
|
inset:58px 0 0 0;
|
|
}
|
|
}
|
|
|
|
|
|
/* v0.4.0.13: system-wide themed scrollbars */
|
|
|
|
/* Firefox */
|
|
*{
|
|
scrollbar-width:thin;
|
|
scrollbar-color:
|
|
color-mix(in srgb,var(--am-text) 34%,var(--am-border))
|
|
color-mix(in srgb,var(--am-surface) 82%,var(--am-page-bg));
|
|
}
|
|
|
|
/* Chromium, Edge and Safari */
|
|
*::-webkit-scrollbar{
|
|
width:12px;
|
|
height:12px;
|
|
}
|
|
|
|
*::-webkit-scrollbar-track{
|
|
background:color-mix(in srgb,var(--am-surface) 82%,var(--am-page-bg));
|
|
border-radius:999px;
|
|
}
|
|
|
|
*::-webkit-scrollbar-thumb{
|
|
background:color-mix(in srgb,var(--am-text) 34%,var(--am-border));
|
|
border:3px solid color-mix(in srgb,var(--am-surface) 82%,var(--am-page-bg));
|
|
border-radius:999px;
|
|
min-height:28px;
|
|
}
|
|
|
|
*::-webkit-scrollbar-thumb:hover{
|
|
background:color-mix(in srgb,var(--am-primary) 65%,var(--am-text));
|
|
}
|
|
|
|
*::-webkit-scrollbar-thumb:active{
|
|
background:var(--am-primary);
|
|
}
|
|
|
|
*::-webkit-scrollbar-corner{
|
|
background:color-mix(in srgb,var(--am-surface) 82%,var(--am-page-bg));
|
|
}
|
|
|
|
/* Main scrollable application areas */
|
|
#asset-table-scroll,
|
|
#asset-table-scroll-top,
|
|
.management-table-scroll,
|
|
.sticky-table,
|
|
.table-scroll,
|
|
.table-wrap,
|
|
.tree-scroll,
|
|
.tree-category-options,
|
|
.log-box,
|
|
.sync-log,
|
|
pre,
|
|
textarea,
|
|
dialog,
|
|
.user-menu-panel,
|
|
.settings-hover-menu{
|
|
scrollbar-color:
|
|
color-mix(in srgb,var(--am-text) 34%,var(--am-border))
|
|
color-mix(in srgb,var(--am-surface) 82%,var(--am-page-bg));
|
|
}
|
|
|
|
/* Top horizontal scrollbar on the asset table */
|
|
#asset-table-scroll-top{
|
|
background:var(--am-surface);
|
|
border-color:var(--am-border);
|
|
}
|
|
|
|
#asset-table-scroll-top > div{
|
|
background:transparent;
|
|
}
|
|
|
|
/* Dark mode */
|
|
html[data-theme="dark"] *{
|
|
scrollbar-color:#667789 #18212b;
|
|
}
|
|
|
|
html[data-theme="dark"] *::-webkit-scrollbar-track{
|
|
background:#18212b;
|
|
}
|
|
|
|
html[data-theme="dark"] *::-webkit-scrollbar-thumb{
|
|
background:#667789;
|
|
border-color:#18212b;
|
|
}
|
|
|
|
html[data-theme="dark"] *::-webkit-scrollbar-thumb:hover{
|
|
background:#7f94a8;
|
|
}
|
|
|
|
html[data-theme="dark"] *::-webkit-scrollbar-thumb:active{
|
|
background:var(--am-primary);
|
|
}
|
|
|
|
html[data-theme="dark"] *::-webkit-scrollbar-corner{
|
|
background:#18212b;
|
|
}
|
|
|
|
html[data-theme="dark"] #asset-table-scroll-top{
|
|
background:#1c242e;
|
|
border-color:#3a4755;
|
|
}
|
|
|
|
/* Stronger contrast for large table/tree scroll containers */
|
|
html[data-theme="dark"] #asset-table-scroll::-webkit-scrollbar-thumb,
|
|
html[data-theme="dark"] #asset-table-scroll-top::-webkit-scrollbar-thumb,
|
|
html[data-theme="dark"] .management-table-scroll::-webkit-scrollbar-thumb,
|
|
html[data-theme="dark"] .tree-scroll::-webkit-scrollbar-thumb,
|
|
html[data-theme="dark"] .tree-category-options::-webkit-scrollbar-thumb{
|
|
background:#718398;
|
|
}
|
|
|
|
html[data-theme="dark"] #asset-table-scroll::-webkit-scrollbar-thumb:hover,
|
|
html[data-theme="dark"] #asset-table-scroll-top::-webkit-scrollbar-thumb:hover,
|
|
html[data-theme="dark"] .management-table-scroll::-webkit-scrollbar-thumb:hover,
|
|
html[data-theme="dark"] .tree-scroll::-webkit-scrollbar-thumb:hover,
|
|
html[data-theme="dark"] .tree-category-options::-webkit-scrollbar-thumb:hover{
|
|
background:#8ba0b5;
|
|
}
|
|
|
|
/* Light mode contrast */
|
|
html[data-theme="light"] *{
|
|
scrollbar-color:#8799a8 #e8edf1;
|
|
}
|
|
|
|
html[data-theme="light"] *::-webkit-scrollbar-track{
|
|
background:#e8edf1;
|
|
}
|
|
|
|
html[data-theme="light"] *::-webkit-scrollbar-thumb{
|
|
background:#8799a8;
|
|
border-color:#e8edf1;
|
|
}
|
|
|
|
html[data-theme="light"] *::-webkit-scrollbar-thumb:hover{
|
|
background:#6f8292;
|
|
}
|
|
|
|
/* v0.5.0.0 job states */
|
|
.job-status{display:inline-flex;align-items:center;min-height:24px;padding:2px 9px;border:1px solid var(--am-border);border-radius:999px;background:color-mix(in srgb,var(--am-surface) 80%,var(--am-page-bg));color:var(--am-text);font-size:.82rem;font-weight:700;white-space:nowrap}
|
|
.job-status-success{background:color-mix(in srgb,var(--am-success) 18%,var(--am-surface))}
|
|
.job-status-failed,.job-status-timeout,.job-status-cancelled{background:color-mix(in srgb,var(--am-danger) 18%,var(--am-surface))}
|
|
.job-status-partial{background:color-mix(in srgb,var(--am-warning) 18%,var(--am-surface))}
|
|
.job-status-created,.job-status-sending,.job-status-sent,.job-status-running{background:color-mix(in srgb,var(--am-primary) 16%,var(--am-surface))}
|
|
html[data-theme="dark"] .job-status-success{background:#244631;color:#bce8c9}html[data-theme="dark"] .job-status-failed,html[data-theme="dark"] .job-status-timeout,html[data-theme="dark"] .job-status-cancelled{background:#552828;color:#ffc2c2}html[data-theme="dark"] .job-status-partial{background:#4d411b;color:#ffe68d}html[data-theme="dark"] .job-status-created,html[data-theme="dark"] .job-status-sending,html[data-theme="dark"] .job-status-sent,html[data-theme="dark"] .job-status-running{background:#203d55;color:#b9dcf5}
|
|
|
|
|
|
/* v0.5.0.1: full-width backup management */
|
|
.backup-page{
|
|
width:100%;
|
|
max-width:none;
|
|
}
|
|
.backup-table-wrap{
|
|
width:100%;
|
|
max-width:100%;
|
|
overflow-x:auto;
|
|
overflow-y:visible;
|
|
}
|
|
.backup-table{
|
|
width:100%;
|
|
min-width:980px;
|
|
}
|
|
|
|
/* v0.5.0.1: software settings */
|
|
.software-settings-page{
|
|
width:100%;
|
|
max-width:none;
|
|
}
|
|
.software-settings-header{
|
|
align-items:flex-start;
|
|
}
|
|
.software-settings-header h1{
|
|
margin-bottom:6px;
|
|
}
|
|
.software-settings-form{
|
|
padding:0;
|
|
border:0;
|
|
background:transparent;
|
|
}
|
|
.software-settings-section{
|
|
margin-bottom:18px;
|
|
}
|
|
.software-settings-section-heading{
|
|
display:flex;
|
|
align-items:flex-start;
|
|
justify-content:space-between;
|
|
gap:18px;
|
|
margin-bottom:18px;
|
|
}
|
|
.software-settings-section-heading h2{
|
|
margin:0 0 6px;
|
|
}
|
|
.software-settings-section-heading p{
|
|
margin:0;
|
|
}
|
|
.software-settings-badge{
|
|
display:inline-flex;
|
|
align-items:center;
|
|
padding:5px 10px;
|
|
border-radius:999px;
|
|
background:color-mix(in srgb,var(--am-primary) 16%,var(--am-surface));
|
|
border:1px solid color-mix(in srgb,var(--am-primary) 38%,var(--am-border));
|
|
font-size:.78rem;
|
|
font-weight:700;
|
|
white-space:nowrap;
|
|
}
|
|
.software-settings-grid{
|
|
display:grid;
|
|
grid-template-columns:repeat(2,minmax(0,1fr));
|
|
gap:16px;
|
|
}
|
|
.software-settings-wide{
|
|
grid-column:1/-1;
|
|
}
|
|
.software-settings-grid label{
|
|
min-width:0;
|
|
}
|
|
.software-settings-grid label > small{
|
|
display:block;
|
|
margin-top:6px;
|
|
}
|
|
.software-toggle-option{
|
|
display:flex;
|
|
align-items:center;
|
|
gap:12px;
|
|
min-height:74px;
|
|
padding:12px 14px;
|
|
border:1px solid var(--am-border);
|
|
border-radius:8px;
|
|
background:color-mix(in srgb,var(--am-surface) 88%,var(--am-page-bg));
|
|
cursor:pointer;
|
|
}
|
|
.software-toggle-option > input{
|
|
position:absolute;
|
|
opacity:0;
|
|
pointer-events:none;
|
|
}
|
|
.software-toggle-track{
|
|
position:relative;
|
|
flex:0 0 40px;
|
|
width:40px;
|
|
height:23px;
|
|
border-radius:999px;
|
|
background:color-mix(in srgb,var(--am-text) 35%,var(--am-surface));
|
|
}
|
|
.software-toggle-thumb{
|
|
position:absolute;
|
|
top:3px;
|
|
left:3px;
|
|
width:17px;
|
|
height:17px;
|
|
border-radius:50%;
|
|
background:var(--am-surface);
|
|
box-shadow:0 1px 3px rgba(0,0,0,.35);
|
|
transition:transform .15s ease;
|
|
}
|
|
.software-toggle-option input:checked + .software-toggle-track{
|
|
background:var(--am-primary);
|
|
}
|
|
.software-toggle-option input:checked + .software-toggle-track .software-toggle-thumb{
|
|
transform:translateX(17px);
|
|
}
|
|
.software-toggle-option input:focus-visible + .software-toggle-track{
|
|
outline:2px solid var(--am-primary);
|
|
outline-offset:3px;
|
|
}
|
|
.software-toggle-option > span:last-child{
|
|
display:flex;
|
|
flex-direction:column;
|
|
gap:5px;
|
|
}
|
|
.software-callback-preview,
|
|
.software-debug-path{
|
|
display:flex;
|
|
flex-direction:column;
|
|
gap:8px;
|
|
padding:14px 16px;
|
|
border:1px solid var(--am-border);
|
|
border-radius:8px;
|
|
background:color-mix(in srgb,var(--am-surface) 82%,var(--am-page-bg));
|
|
}
|
|
.software-callback-preview code,
|
|
.software-debug-path code{
|
|
overflow-wrap:anywhere;
|
|
}
|
|
.software-settings-actions{
|
|
margin:0 0 20px;
|
|
}
|
|
.software-debug-toolbar{
|
|
display:flex;
|
|
align-items:center;
|
|
justify-content:space-between;
|
|
gap:16px;
|
|
margin-bottom:10px;
|
|
}
|
|
.software-debug-log{
|
|
min-height:280px;
|
|
max-height:520px;
|
|
margin:0;
|
|
overflow:auto;
|
|
white-space:pre-wrap;
|
|
overflow-wrap:anywhere;
|
|
}
|
|
.software-future-grid{
|
|
display:grid;
|
|
grid-template-columns:repeat(3,minmax(0,1fr));
|
|
gap:10px;
|
|
margin-top:14px;
|
|
}
|
|
.software-future-grid span{
|
|
padding:12px 14px;
|
|
border:1px dashed var(--am-border);
|
|
border-radius:7px;
|
|
background:color-mix(in srgb,var(--am-surface) 86%,var(--am-page-bg));
|
|
}
|
|
html[data-theme="dark"] .software-toggle-thumb{
|
|
background:#eef2f6;
|
|
}
|
|
@media(max-width:900px){
|
|
.software-settings-grid,
|
|
.software-future-grid{
|
|
grid-template-columns:1fr;
|
|
}
|
|
.software-settings-wide{
|
|
grid-column:auto;
|
|
}
|
|
.software-settings-section-heading,
|
|
.software-debug-toolbar{
|
|
flex-direction:column;
|
|
}
|
|
}
|
|
|
|
/* v0.5.0.3 log controls */
|
|
.software-log-heading,
|
|
.software-debug-actions{
|
|
display:flex;
|
|
align-items:center;
|
|
justify-content:space-between;
|
|
gap:12px;
|
|
}
|
|
.software-log-heading h2,
|
|
.software-log-heading h3{
|
|
margin:0;
|
|
}
|
|
.software-log-heading{
|
|
margin-bottom:10px;
|
|
}
|
|
.software-debug-actions{
|
|
justify-content:flex-end;
|
|
}
|
|
@media(max-width:700px){
|
|
.software-log-heading{
|
|
align-items:flex-start;
|
|
flex-direction:column;
|
|
}
|
|
}
|
|
|
|
/* v0.5.0.4 software inventory initialization */
|
|
.software-inventory-heading{
|
|
display:flex;
|
|
align-items:flex-start;
|
|
justify-content:space-between;
|
|
gap:16px;
|
|
margin-bottom:16px;
|
|
}
|
|
.software-inventory-heading h2{
|
|
margin:0 0 5px;
|
|
}
|
|
.software-inventory-heading p{
|
|
margin:0;
|
|
}
|
|
.software-inventory-count{
|
|
display:inline-flex;
|
|
align-items:center;
|
|
justify-content:center;
|
|
min-width:42px;
|
|
height:34px;
|
|
padding:0 11px;
|
|
border-radius:999px;
|
|
border:1px solid color-mix(in srgb,var(--am-primary) 42%,var(--am-border));
|
|
background:color-mix(in srgb,var(--am-primary) 16%,var(--am-surface));
|
|
font-weight:700;
|
|
}
|
|
.software-empty-inventory{
|
|
display:flex;
|
|
flex-direction:column;
|
|
align-items:center;
|
|
gap:7px;
|
|
padding:28px 16px;
|
|
text-align:center;
|
|
}
|
|
.software-exclusion-preview{
|
|
display:grid;
|
|
grid-template-columns:repeat(3,minmax(0,1fr));
|
|
gap:10px;
|
|
margin-bottom:12px;
|
|
}
|
|
.software-exclusion-preview span{
|
|
padding:12px 14px;
|
|
border:1px dashed var(--am-border);
|
|
border-radius:7px;
|
|
background:color-mix(in srgb,var(--am-surface) 86%,var(--am-page-bg));
|
|
}
|
|
@media(max-width:800px){
|
|
.software-exclusion-preview{
|
|
grid-template-columns:1fr;
|
|
}
|
|
}
|
|
|
|
/* v0.5.0.5 central and asset software lists */
|
|
.asset-software-toolbar,
|
|
.software-section-heading{
|
|
display:flex;
|
|
align-items:flex-start;
|
|
justify-content:space-between;
|
|
gap:16px;
|
|
margin-bottom:16px;
|
|
}
|
|
.asset-software-toolbar h3,
|
|
.software-section-heading h2{
|
|
margin:0 0 5px;
|
|
}
|
|
.asset-software-toolbar p,
|
|
.software-section-heading p{
|
|
margin:0;
|
|
}
|
|
.software-inventory-meta{
|
|
display:flex;
|
|
flex-wrap:wrap;
|
|
gap:12px 24px;
|
|
margin:0 0 16px;
|
|
padding:12px 14px;
|
|
border:1px solid var(--am-border);
|
|
border-radius:7px;
|
|
background:color-mix(in srgb,var(--am-surface) 86%,var(--am-page-bg));
|
|
}
|
|
.software-summary-cards{
|
|
display:grid;
|
|
grid-template-columns:repeat(3,minmax(0,1fr));
|
|
gap:14px;
|
|
margin-bottom:18px;
|
|
}
|
|
.software-summary-card{
|
|
display:flex;
|
|
flex-direction:column;
|
|
gap:7px;
|
|
padding:17px 18px;
|
|
border:1px solid var(--am-border);
|
|
border-radius:8px;
|
|
background:var(--am-surface);
|
|
}
|
|
.software-summary-card span{
|
|
color:color-mix(in srgb,var(--am-text) 68%,transparent);
|
|
}
|
|
.software-summary-card strong{
|
|
font-size:1.65rem;
|
|
}
|
|
@media(max-width:800px){
|
|
.asset-software-toolbar,
|
|
.software-section-heading{
|
|
flex-direction:column;
|
|
}
|
|
.software-summary-cards{
|
|
grid-template-columns:1fr;
|
|
}
|
|
}
|
|
|
|
|
|
/* v0.5.0.6: dedicated software pages */
|
|
.software-summary-link{
|
|
color:inherit;
|
|
text-decoration:none;
|
|
transition:border-color .15s ease, transform .15s ease, box-shadow .15s ease;
|
|
}
|
|
.software-summary-link:hover{
|
|
color:inherit;
|
|
border-color:color-mix(in srgb,var(--am-primary) 50%,var(--am-border));
|
|
transform:translateY(-1px);
|
|
box-shadow:0 4px 14px rgba(0,0,0,.08);
|
|
}
|
|
.software-summary-link small{
|
|
color:color-mix(in srgb,var(--am-text) 65%,transparent);
|
|
}
|
|
.software-list-links{
|
|
display:grid;
|
|
grid-template-columns:repeat(2,minmax(0,1fr));
|
|
gap:14px;
|
|
}
|
|
.software-list-link{
|
|
display:grid;
|
|
grid-template-columns:1fr auto;
|
|
gap:7px 16px;
|
|
align-items:center;
|
|
padding:16px;
|
|
border:1px solid var(--am-border);
|
|
border-radius:8px;
|
|
background:color-mix(in srgb,var(--am-surface) 88%,var(--am-page-bg));
|
|
color:var(--am-text);
|
|
text-decoration:none;
|
|
}
|
|
.software-list-link strong,
|
|
.software-list-link > span:not(.button){
|
|
grid-column:1;
|
|
}
|
|
.software-list-link .button{
|
|
grid-column:2;
|
|
grid-row:1/3;
|
|
}
|
|
.software-dedicated-table{
|
|
max-height:calc(100vh - 230px);
|
|
overflow:auto;
|
|
}
|
|
@media(max-width:800px){
|
|
.software-list-links{
|
|
grid-template-columns:1fr;
|
|
}
|
|
}
|
|
|
|
/* v0.5.0.6: dark mode inventory text */
|
|
html[data-theme="dark"] .inventory-panel,
|
|
html[data-theme="dark"] .inventory-panel h2,
|
|
html[data-theme="dark"] .inventory-panel h3,
|
|
html[data-theme="dark"] .inventory-header,
|
|
html[data-theme="dark"] .inventory-meta,
|
|
html[data-theme="dark"] .inventory-tab-content,
|
|
html[data-theme="dark"] .asset-software-toolbar,
|
|
html[data-theme="dark"] .software-inventory-meta{
|
|
color:var(--am-text) !important;
|
|
}
|
|
html[data-theme="dark"] .inventory-tab{
|
|
color:#d7e0e8 !important;
|
|
background:transparent;
|
|
}
|
|
html[data-theme="dark"] .inventory-tab:hover{
|
|
color:#ffffff !important;
|
|
background:rgba(255,255,255,.06);
|
|
}
|
|
html[data-theme="dark"] .inventory-tab.active{
|
|
color:#ffffff !important;
|
|
background:color-mix(in srgb,var(--am-primary) 24%,transparent);
|
|
border-bottom-color:var(--am-primary);
|
|
}
|
|
html[data-theme="dark"] .inventory-tab-content .empty-state{
|
|
color:#cbd5df;
|
|
}
|
|
html[data-theme="dark"] .inventory-tab-content .empty-state strong{
|
|
color:#f2f5f8;
|
|
}
|
|
|
|
/* v0.5.0.6: dark mode toasts */
|
|
html[data-theme="dark"] .toast{
|
|
color:#edf2f7;
|
|
background:#202a34;
|
|
border-color:#465462;
|
|
box-shadow:0 .55rem 1.6rem rgba(0,0,0,.48);
|
|
}
|
|
html[data-theme="dark"] .toast-message{
|
|
color:#edf2f7;
|
|
}
|
|
html[data-theme="dark"] .toast-close{
|
|
color:#dbe4ec;
|
|
}
|
|
html[data-theme="dark"] .toast-close:hover{
|
|
color:#ffffff;
|
|
background:rgba(255,255,255,.08);
|
|
}
|
|
html[data-theme="dark"] .toast-success{
|
|
background:#20382b;
|
|
border-left-color:#58c77b;
|
|
}
|
|
html[data-theme="dark"] .toast-warning{
|
|
background:#453818;
|
|
border-left-color:#e7b94e;
|
|
}
|
|
html[data-theme="dark"] .toast-error{
|
|
background:#482626;
|
|
border-left-color:#ef7373;
|
|
}
|
|
html[data-theme="dark"] .toast-success .toast-symbol{color:#8be5a5}
|
|
html[data-theme="dark"] .toast-warning .toast-symbol{color:#f4d37d}
|
|
html[data-theme="dark"] .toast-error .toast-symbol{color:#ff9b9b}
|
|
|
|
|
|
/* v0.5.0.7 MeshCentral presence */
|
|
.presence-badge{
|
|
display:inline-flex;
|
|
align-items:center;
|
|
gap:7px;
|
|
min-height:27px;
|
|
padding:3px 9px;
|
|
border:1px solid var(--am-border);
|
|
border-radius:999px;
|
|
background:color-mix(in srgb,var(--am-surface) 86%,var(--am-page-bg));
|
|
color:var(--am-text);
|
|
font-size:.78rem;
|
|
font-weight:700;
|
|
white-space:nowrap;
|
|
}
|
|
.presence-dot{
|
|
width:9px;
|
|
height:9px;
|
|
flex:0 0 9px;
|
|
border-radius:50%;
|
|
background:#8b98a5;
|
|
box-shadow:0 0 0 3px rgba(139,152,165,.15);
|
|
}
|
|
.presence-online{
|
|
border-color:color-mix(in srgb,var(--am-success) 50%,var(--am-border));
|
|
background:color-mix(in srgb,var(--am-success) 15%,var(--am-surface));
|
|
}
|
|
.presence-online .presence-dot{
|
|
background:#23a455;
|
|
box-shadow:0 0 0 3px rgba(35,164,85,.18);
|
|
}
|
|
.presence-offline{
|
|
border-color:color-mix(in srgb,var(--am-danger) 42%,var(--am-border));
|
|
background:color-mix(in srgb,var(--am-danger) 11%,var(--am-surface));
|
|
}
|
|
.presence-offline .presence-dot{
|
|
background:#c43d3d;
|
|
box-shadow:0 0 0 3px rgba(196,61,61,.16);
|
|
}
|
|
.presence-unknown .presence-dot{
|
|
background:#8b98a5;
|
|
}
|
|
html[data-theme="dark"] .presence-online{
|
|
background:#203d2b;
|
|
color:#bce8c9;
|
|
}
|
|
html[data-theme="dark"] .presence-offline{
|
|
background:#482727;
|
|
color:#ffc2c2;
|
|
}
|
|
html[data-theme="dark"] .presence-unknown{
|
|
background:#2b3540;
|
|
color:#d4dde5;
|
|
}
|
|
|
|
|
|
/* v0.5.0.8 column management dark mode */
|
|
html[data-theme="dark"] .column-context-menu{
|
|
background:var(--am-surface);
|
|
color:var(--am-text);
|
|
border-color:var(--am-border);
|
|
box-shadow:0 12px 30px rgba(0,0,0,.45);
|
|
}
|
|
html[data-theme="dark"] .column-context-menu button{
|
|
background:transparent;
|
|
color:var(--am-text);
|
|
border-color:transparent;
|
|
}
|
|
html[data-theme="dark"] .column-context-menu button:hover,
|
|
html[data-theme="dark"] .column-context-menu button:focus-visible{
|
|
background:var(--am-hover);
|
|
color:var(--am-link);
|
|
}
|
|
html[data-theme="dark"] .column-settings-dialog,
|
|
html[data-theme="dark"] .column-settings-dialog form{
|
|
background:var(--am-surface);
|
|
color:var(--am-text);
|
|
}
|
|
html[data-theme="dark"] .column-settings-list label{
|
|
background:var(--am-surface-2,var(--am-page-bg));
|
|
color:var(--am-text);
|
|
border-color:var(--am-border);
|
|
}
|
|
html[data-theme="dark"] .column-settings-list label:hover{
|
|
background:var(--am-hover);
|
|
}
|
|
|
|
|
|
/* v0.5.0.9 bulk job selector */
|
|
.bulk-job-controls{
|
|
display:inline-flex;
|
|
align-items:stretch;
|
|
gap:6px;
|
|
}
|
|
.bulk-job-type{
|
|
min-width:190px;
|
|
min-height:38px;
|
|
padding:7px 34px 7px 10px;
|
|
border:1px solid var(--am-border);
|
|
border-radius:6px;
|
|
background:var(--am-surface);
|
|
color:var(--am-text);
|
|
font:inherit;
|
|
}
|
|
.bulk-job-type:disabled{
|
|
opacity:.55;
|
|
cursor:not-allowed;
|
|
}
|
|
html[data-theme="dark"] .bulk-job-type{
|
|
background:var(--am-surface);
|
|
color:var(--am-text);
|
|
border-color:var(--am-border);
|
|
color-scheme:dark;
|
|
}
|
|
html[data-theme="dark"] .bulk-job-type option{
|
|
background:var(--am-surface);
|
|
color:var(--am-text);
|
|
}
|
|
@media (max-width:900px){
|
|
.bulk-job-controls{
|
|
width:100%;
|
|
}
|
|
.bulk-job-type{
|
|
flex:1 1 auto;
|
|
min-width:0;
|
|
}
|
|
}
|
|
|
|
|
|
/* v0.5.1.0 general job model */
|
|
.job-data-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:18px}
|
|
.job-data-grid>div{min-width:0}
|
|
.job-data-grid .sync-log{min-height:110px;max-height:340px}
|
|
@media(max-width:800px){.job-data-grid{grid-template-columns:1fr}}
|
|
|
|
|
|
/* v0.5.1.1 browser-local timestamps */
|
|
time.local-time{font:inherit;color:inherit;white-space:nowrap;}
|
|
|
|
/* v0.5.1.2 job restart controls */
|
|
.button-small{min-height:30px;padding:4px 9px;font-size:.9rem;white-space:nowrap}
|
|
|
|
/* v0.5.1.3 software inventory selection */
|
|
.software-delete-toolbar{display:flex;align-items:center;justify-content:flex-end;gap:12px;margin:0 0 12px;flex-wrap:wrap}.software-delete-toolbar .button-danger{background:#b42318;color:#fff;border-color:#b42318}.software-delete-toolbar .button-danger:disabled{opacity:.5;cursor:not-allowed}html[data-theme="dark"] .software-delete-toolbar .button-danger{background:#d92d20;border-color:#d92d20;color:#fff}
|
|
|
|
/* Category field bulk management (v0.5.1.7) */
|
|
.wide-dialog { width: min(920px, calc(100vw - 2rem)); max-height: calc(100vh - 2rem); }
|
|
.dialog-tabs { display: flex; flex-wrap: wrap; gap: .5rem; margin: 1rem 0; }
|
|
.dialog-tabs .is-active { font-weight: 700; outline: 2px solid currentColor; }
|
|
.field-choice-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: .45rem 1rem; max-height: 45vh; overflow: auto; padding: .5rem; border: 1px solid var(--border-color, #ccc); border-radius: .4rem; }
|
|
.settings-bulk-grid { display: grid; grid-template-columns: minmax(240px, 1fr) minmax(180px, 1fr); gap: .75rem 1rem; margin: 1rem 0; }
|
|
@media (max-width: 650px) { .settings-bulk-grid { grid-template-columns: 1fr; } }
|
|
|
|
.job-definition-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.job-definition-form label{display:flex;flex-direction:column;gap:.4rem}.job-definition-form .form-wide{grid-column:1/-1}.code-editor{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;line-height:1.45;tab-size:4;min-height:28rem}.checkbox-label{flex-direction:row!important;align-items:center}@media(max-width:800px){.job-definition-form{grid-template-columns:1fr}.job-definition-form .form-wide{grid-column:auto}}
|
|
|
|
/* v0.5.3.3: readable category initials in dark mode */
|
|
html[data-theme="dark"] .cards .card .placeholder{
|
|
background:#e7f0f6;
|
|
color:#173b55;
|
|
text-shadow:none;
|
|
}
|
|
|
|
.job-enabled-top{justify-content:flex-start!important;width:auto!important;align-self:start}.job-enabled-top input{width:auto!important;margin:0}.job-parameters-editor{border-top:1px solid var(--border-color,#d8dde2);padding-top:1rem}.job-parameter-row{display:grid;grid-template-columns:1.1fr 1.4fr 1fr 1.2fr;gap:.75rem;padding:1rem;margin:.75rem 0;border:1px solid #d8dde2;border-radius:.5rem}.job-parameter-row .form-wide{grid-column:1/-1}.job-parameter-row .button-danger{align-self:end}.job-parameter-asset{margin:.75rem 0;border:1px solid #d8dde2;border-radius:.5rem;padding:.75rem}.job-parameter-asset summary{cursor:pointer}.job-asset-param{padding:.5rem 0;border-bottom:1px solid #d8dde2}@media(max-width:900px){.job-parameter-row{grid-template-columns:1fr}}
|
|
|
|
/* v0.5.3.8 asset job definition parameter list */
|
|
.job-definition-asset-list{display:grid;gap:.75rem;margin-top:1rem}
|
|
.job-parameter-asset>summary{display:flex;justify-content:space-between;align-items:center;gap:1rem;cursor:pointer;padding:.85rem 1rem}
|
|
.job-parameter-asset>summary span:first-child{display:flex;flex-direction:column;gap:.2rem}
|
|
.job-parameter-asset>summary small{font-weight:400}
|
|
.job-parameter-empty{padding:0 1rem 1rem}
|
|
|
|
/* v0.5.5.6 software job list size */
|
|
.software-job-limit-form{
|
|
display:flex;
|
|
align-items:center;
|
|
gap:8px;
|
|
}
|
|
.software-job-limit-form label{
|
|
margin:0;
|
|
white-space:nowrap;
|
|
}
|
|
.software-job-limit-form select{
|
|
width:auto;
|
|
min-width:86px;
|
|
}
|
|
|
|
/* v0.5.5.7 bulk restart for recent jobs */
|
|
.software-job-heading-actions{
|
|
display:flex;
|
|
align-items:center;
|
|
justify-content:flex-end;
|
|
gap:12px;
|
|
flex-wrap:wrap;
|
|
}
|
|
.software-job-heading-actions #restart-selected-jobs-button:disabled{
|
|
opacity:.5;
|
|
cursor:not-allowed;
|
|
}
|
|
@media(max-width:700px){
|
|
.software-job-heading-actions{
|
|
width:100%;
|
|
justify-content:flex-start;
|
|
}
|
|
}
|
|
|
|
/* v0.5.5.9 optimized software lists and configurable aggregation */
|
|
.software-summary-controls{
|
|
display:flex;
|
|
align-items:center;
|
|
justify-content:flex-end;
|
|
gap:12px;
|
|
flex-wrap:wrap;
|
|
}
|
|
.software-grouping-form{
|
|
display:flex;
|
|
align-items:center;
|
|
gap:8px;
|
|
}
|
|
.software-grouping-form label{
|
|
margin:0;
|
|
white-space:nowrap;
|
|
}
|
|
.software-grouping-form select{
|
|
width:auto;
|
|
min-width:260px;
|
|
}
|
|
@media(max-width:800px){
|
|
.software-summary-controls{
|
|
width:100%;
|
|
justify-content:flex-start;
|
|
}
|
|
.software-grouping-form{
|
|
width:100%;
|
|
align-items:flex-start;
|
|
flex-direction:column;
|
|
}
|
|
.software-grouping-form select{
|
|
width:100%;
|
|
min-width:0;
|
|
}
|
|
}
|
|
|
|
/* v0.5.5.12: keep white record-count labels readable in dark mode */
|
|
html[data-theme="dark"] .record-count{
|
|
background:#fff !important;
|
|
color:#26323d !important;
|
|
border-color:#c9d3dc !important;
|
|
}
|
|
/* v0.5.5.13: chart totals stay readable on the light badge in dark mode. */
|
|
html[data-theme="dark"] .chart-total{
|
|
color:#111827 !important;
|
|
}
|
|
|
|
/* v0.5.5.14: active software inventory exclusion list */
|
|
.software-exclusion-list{
|
|
display:flex;
|
|
flex-direction:column;
|
|
gap:10px;
|
|
}
|
|
.software-exclusion-row{
|
|
display:grid;
|
|
grid-template-columns:minmax(150px,220px) minmax(280px,1fr) auto;
|
|
align-items:end;
|
|
gap:12px;
|
|
padding:12px;
|
|
border:1px solid var(--am-border);
|
|
border-radius:8px;
|
|
background:color-mix(in srgb,var(--am-surface) 90%,var(--am-page-bg));
|
|
}
|
|
.software-exclusion-row label{
|
|
margin:0;
|
|
}
|
|
.software-exclusion-row label > span{
|
|
display:block;
|
|
margin-bottom:6px;
|
|
font-weight:600;
|
|
}
|
|
.software-exclusion-remove{
|
|
white-space:nowrap;
|
|
}
|
|
.software-exclusion-actions{
|
|
display:flex;
|
|
align-items:center;
|
|
gap:14px;
|
|
margin-top:12px;
|
|
}
|
|
@media (max-width:760px){
|
|
.software-exclusion-row{
|
|
grid-template-columns:1fr;
|
|
align-items:stretch;
|
|
}
|
|
.software-exclusion-remove{
|
|
justify-self:start;
|
|
}
|
|
.software-exclusion-actions{
|
|
align-items:flex-start;
|
|
flex-direction:column;
|
|
}
|
|
}
|
|
|
|
/* Asset job-status exclusion filter: checkboxes stay left-aligned and vertical. */
|
|
.job-filter-status-fieldset{border:1px solid var(--border-color,#415166);border-radius:8px;padding:.85rem 1rem;margin:0}.job-filter-status-fieldset legend{padding:0 .35rem;font-weight:700}.job-filter-status-options{display:flex;flex-direction:column;align-items:flex-start;gap:.5rem;width:100%;margin-top:.65rem}.job-filter-status-options .checkbox-label{display:flex!important;flex-direction:row!important;align-items:center!important;justify-content:flex-start!important;gap:.55rem!important;width:100%!important;max-width:none!important;text-align:left!important}.job-filter-status-options .checkbox-label input{flex:0 0 auto!important;margin:0!important}.job-filter-status-actions{justify-content:flex-start;margin-top:.75rem}
|
|
|
|
/* 0.5.5.19: multi-job asset filter */
|
|
.job-filter-job-options{display:flex;flex-direction:column;align-items:flex-start;gap:.5rem;width:100%;margin-top:.65rem}
|
|
.job-filter-job-options .checkbox-label{display:flex!important;flex-direction:row!important;align-items:center!important;justify-content:flex-start!important;gap:.55rem!important;width:100%!important;max-width:none!important;text-align:left!important}
|
|
.job-filter-job-options .checkbox-label input{flex:0 0 auto!important;margin:0!important}
|
|
.job-filter-start-choice{display:inline-flex;align-items:center;gap:.5rem;margin:0 .35rem}
|
|
.job-filter-start-choice select{min-width:220px}
|
|
.job-filter-source{display:block;margin-top:.3rem;line-height:1.25}
|
|
|
|
/* Administrator editor for the protected MeshCentral node ID. */
|
|
.mesh-node-id-editor{display:grid;gap:.55rem}.mesh-node-id-input{font-family:ui-monospace,SFMono-Regular,Consolas,monospace}.mesh-node-id-actions{display:flex;flex-wrap:wrap;gap:.55rem;align-items:center}.mesh-node-id-actions .button{width:auto;margin:0}.mesh-node-id-editor small{font-weight:400;margin:0}
|