OpenNIT

Quelltext des aktuellen Standes

Fassung 1.1.1

isms.css

5 KB
/* ============================================================
   ISMS – modul-spezifische Komponenten (Prefix: ism-)
   Generische Komponenten (Buttons, Tabellen, KPIs, Modals,
   Status-Pills, Badges) kommen aus app.css und werden hier
   NICHT dupliziert.
   ============================================================ */

/* Seitenrahmen */
.ism-wrap { width: 100%; }

/* Zwei-Spalten-Layout der Risiko-Detailseite */
.ism-detail-grid { display: grid; grid-template-columns: 320px 1fr; gap: 1rem; align-items: start; }
@media (max-width: 900px) { .ism-detail-grid { grid-template-columns: 1fr; } }

/* Key-Value-Liste (Definition-List) */
.ism-kv { margin: 0; }
.ism-kv dt { font-size: 0.72rem; color: var(--gray-500); text-transform: uppercase; letter-spacing: 0.04em; margin-top: 0.7rem; }
.ism-kv dt:first-child { margin-top: 0; }
.ism-kv dd { margin: 0.15rem 0 0; font-size: 0.875rem; color: var(--gray-900); word-break: break-word; }

/* Hilfstext / gedämpfte Sekundärzeile */
.ism-host-sub { font-size: 0.78rem; color: var(--gray-500); }
.ism-muted { color: var(--gray-400); }

/* Nebeneinander angeordnete Formularfelder */
.ism-form-row { display: flex; gap: 0.85rem; }
.ism-form-row .form-group { flex: 1 1 0; min-width: 0; }
.ism-form-col { flex: 1 1 0; min-width: 0; }
@media (max-width: 600px) { .ism-form-row { flex-direction: column; gap: 0; } }

/* Filter-Chips (Status / Thema) – sitzen innerhalb der Standard-Filter-Card */
.ism-toolbar { display: flex; flex-wrap: wrap; gap: 0.4rem; margin: 0; }
.ism-tag-chip { display: inline-block; padding: 0.2rem 0.6rem; border-radius: 9999px; font-size: 0.75rem; background: var(--indigo-50); color: var(--indigo-800); text-decoration: none; border: 1px solid var(--indigo-100); }
.ism-tag-chip.active { background: var(--color-primary, var(--color-primary)); color: var(--color-on-accent); border-color: var(--color-primary, var(--color-primary)); }

/* Risikomatrix (5×5 Heatmap) */
.ism-matrix-scroll { overflow-x: auto; }
.ism-matrix { border-collapse: collapse; margin: 0 auto; }
.ism-matrix th { font-size: 0.72rem; font-weight: 600; color: var(--gray-500); padding: 0.3rem 0.5rem; text-align: center; }
.ism-axis-label { white-space: nowrap; }
.ism-axis-x { writing-mode: horizontal-tb; color: var(--gray-700); font-weight: 700; }
/* Y-Achsen-Beschriftung vertikal (von unten nach oben lesbar) */
.ism-axis-y { vertical-align: middle; text-align: center; }
.ism-axis-y span {
    display: inline-block;
    writing-mode: vertical-rl;
    transform: rotate(180deg);
    white-space: nowrap;
    color: var(--gray-700);
    font-weight: 700;
}
.ism-cell { width: 64px; height: 52px; text-align: center; vertical-align: middle; border: 2px solid var(--color-bg); border-radius: 6px; }
.ism-cell-count { font-weight: 700; font-size: 1.05rem; color: var(--gray-900); }
.ism-cell--low      { background: var(--emerald-100); }
.ism-cell--medium   { background: var(--amber-100); }
.ism-cell--high     { background: var(--orange-200); }
.ism-cell--critical { background: var(--red-200); }
.ism-legend { display: flex; flex-wrap: wrap; gap: 0.4rem; margin-top: 0.9rem; justify-content: center; }

/* Trend-Diagramm (Inline-SVG) */
.ism-trend { width: 100%; max-width: 760px; height: auto; display: block; }
.ism-trend-axis { font-size: 10px; fill: var(--gray-500); }

/* Anleitung / Guide */
.ism-guide > .detail-card,
.ism-guide > .ism-detail-grid { margin-bottom: 1.25rem; }
.ism-guide > .subnav { margin-bottom: 1.25rem; }
.ism-guide > :last-child { margin-bottom: 0; }
.ism-guide p { line-height: 1.55; margin: 0 0 0.6rem; }
.ism-guide p:last-child { margin-bottom: 0; }
.ism-guide ul, .ism-guide ol { margin: 0.4rem 0 0.6rem; padding-left: 1.3rem; }
.ism-guide li { line-height: 1.55; margin-bottom: 0.4rem; }
.ism-guide .ism-kv dd { line-height: 1.5; }
/* Mehrspaltige Aufzählung (lange Automatik-Liste) */
.ism-cols { column-gap: 2rem; }
@media (min-width: 720px) { .ism-cols { column-count: 2; } }
.ism-cols li { break-inside: avoid; }
.ism-steps { counter-reset: ism-step; list-style: none; padding-left: 0; }
.ism-steps > li { position: relative; padding-left: 2.4rem; margin-bottom: 0.9rem; }
.ism-steps > li::before {
    counter-increment: ism-step; content: counter(ism-step);
    position: absolute; left: 0; top: 0;
    width: 1.7rem; height: 1.7rem; border-radius: 50%;
    background: var(--color-primary, var(--color-primary)); color: var(--color-on-accent);
    font-size: 0.85rem; font-weight: 700;
    display: flex; align-items: center; justify-content: center;
}

/* Asset-Autocomplete (Inventar-Anbindung) */
.ism-ac-box { position: absolute; left: 0; right: 0; top: 100%; z-index: 1100; background: var(--color-bg);
    border: 1px solid var(--gray-300); border-radius: 6px; box-shadow: 0 6px 16px rgba(0, 0, 0, 0.12);
    max-height: 240px; overflow-y: auto; }
.ism-ac-item { padding: 0.4rem 0.6rem; cursor: pointer; font-size: 0.85rem; }
.ism-ac-item:hover { background: var(--blue-50); }
.ism-ac-item small { color: var(--gray-500); }