OpenNIT

Quelltext des aktuellen Standes

Fassung 1.1.1

workflows.css

8 KB
/* Workflows / Anträge & Genehmigungen – modul-spezifische Ergänzungen (Prefix wf-).
   Basis-Komponenten (Tabellen, Pills, Buttons, Cards, Formulare) stammen aus app.css. */

.wf-stage {
    border-left: 3px solid var(--border-color, var(--gray-200));
    margin-left: .5rem;
    padding-left: 1rem;
    margin-bottom: 1rem;
}
.wf-stage-title {
    font-size: .8rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .04em;
    color: var(--gray-500);
    margin-bottom: .5rem;
}
.wf-step {
    display: flex;
    align-items: flex-start;
    gap: .75rem;
    padding: .65rem .75rem;
    border: 1px solid var(--border-color, var(--gray-200));
    border-radius: .5rem;
    margin-bottom: .5rem;
    background: var(--color-bg);
}
.wf-step-icon {
    flex: 0 0 1.6rem;
    width: 1.6rem;
    height: 1.6rem;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: .75rem;
    color: var(--color-on-accent);
    background: var(--gray-400);
}
.wf-step-icon.is-active   { background: var(--blue-600); }
.wf-step-icon.is-approved { background: var(--green-600); }
.wf-step-icon.is-done     { background: var(--green-600); }
.wf-step-icon.is-rejected { background: var(--red-600); }
.wf-step-icon.is-skipped  { background: var(--gray-300); }
.wf-step-body { flex: 1 1 auto; min-width: 0; }
.wf-step-name { font-weight: 600; }
.wf-step-meta { font-size: .82rem; color: var(--gray-500); margin-top: .15rem; }

.wf-thread { list-style: none; margin: 0; padding: 0; }
.wf-thread li {
    border-left: 2px solid var(--gray-200);
    padding: .4rem 0 .6rem .85rem;
    margin-left: .35rem;
    position: relative;
}
.wf-thread li::before {
    content: "";
    position: absolute;
    left: -.42rem; top: .65rem;
    width: .7rem; height: .7rem;
    border-radius: 50%;
    background: var(--gray-400);
}
.wf-thread .wf-d-approve::before { background: var(--green-600); }
.wf-thread .wf-d-reject::before  { background: var(--red-600); }
.wf-thread .wf-d-question::before{ background: var(--amber-500); }
.wf-thread-meta { font-size: .8rem; color: var(--gray-500); }
.wf-thread-note { margin-top: .2rem; white-space: pre-wrap; }

.wf-catalog { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 1rem; }
.wf-card {
    display: block;
    border: 1px solid var(--border-color, var(--gray-200));
    border-radius: .6rem;
    padding: 1.1rem;
    text-decoration: none;
    color: inherit;
    background: var(--color-bg);
    transition: box-shadow .15s, transform .15s;
}
.wf-card:hover { box-shadow: 0 4px 14px rgba(0,0,0,.08); transform: translateY(-2px); }
.wf-card-icon { font-size: 1.6rem; color: var(--blue-600); margin-bottom: .5rem; }
.wf-card-title { font-weight: 600; margin-bottom: .25rem; }
.wf-card-desc { font-size: .85rem; color: var(--gray-500); }

.wf-instructions {
    background: var(--blue-50);
    border: 1px solid var(--blue-200);
    color: var(--blue-800);
    border-radius: .4rem;
    padding: .5rem .7rem;
    margin-bottom: .75rem;
    font-size: .88rem;
}

/* Formular-Layout (Abschnitte + halbe/volle Breite) */
.wf-form-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0 1rem;
}
.wf-col-full { grid-column: 1 / -1; }
.wf-col-half { grid-column: span 1; }
.wf-section-title {
    grid-column: 1 / -1;
    font-weight: 600;
    color: var(--gray-700);
    border-bottom: 1px solid var(--border-color, var(--gray-200));
    padding-bottom: .35rem;
    margin: 1rem 0 .5rem;
}
/* Anzeige-Feldtyp "HTML-Block" im Antragsformular */
.wf-html-block {
    grid-column: 1 / -1;
    font-size: .875rem;
    color: var(--gray-700);
    line-height: 1.55;
    margin-bottom: .75rem;
}
.wf-html-block a { color: var(--color-primary); }
.wf-html-block img { max-width: 100%; }
@media (max-width: 640px) {
    .wf-form-grid { grid-template-columns: 1fr; }
    .wf-col-half { grid-column: 1 / -1; }
}

/* Öffentliche Genehmigungsseite (ohne App-Shell) */
.wf-public {
    max-width: 640px;
    margin: 3rem auto;
    padding: 1.5rem;
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
    color: var(--gray-800);
}
.wf-public-card {
    border: 1px solid var(--gray-200);
    border-radius: .75rem;
    padding: 1.75rem;
    box-shadow: 0 4px 18px rgba(0,0,0,.06);
    background: var(--color-bg);
}
.wf-public h1 { font-size: 1.4rem; margin: 0 0 .5rem; }
.wf-kv { width: 100%; border-collapse: collapse; margin: 1rem 0; }
.wf-kv th, .wf-kv td { text-align: left; padding: .45rem .5rem; border-bottom: 1px solid var(--slate-100); vertical-align: top; }
.wf-kv th { width: 38%; color: var(--gray-500); font-weight: 600; }

/* Antrags-Detailseite: zweispaltig (Inhalt + Seitenleiste), mobil gestapelt */
.wf-detail-grid {
    display: grid;
    grid-template-columns: 1fr 380px;
    gap: 1.25rem;
    align-items: start;
}
@media (max-width: 960px) {
    .wf-detail-grid { grid-template-columns: 1fr; }
}
@media (max-width: 640px) {
    .wf-kv th, .wf-kv td { display: block; width: 100%; }
    .wf-kv th { border-bottom: none; padding-bottom: 0; }
    .wf-kv td { padding-top: .15rem; padding-bottom: .6rem; }
}

/* ── Posteingang: Karten-Ansicht auf Mobilgeräten ─────────────────── */
@media (max-width: 700px) {
    .wf-inbox-table thead { display: none; }
    .wf-inbox-table, .wf-inbox-table tbody { display: block; width: 100%; }
    .wf-inbox-table tr {
        display: block;
        border: 1px solid var(--border-color, var(--gray-200));
        border-radius: .6rem;
        padding: .6rem .75rem;
        margin-bottom: .6rem;
        background: var(--color-bg);
    }
    .wf-inbox-table td {
        display: block;
        border: none !important;
        padding: .2rem 0 !important;
    }
    .wf-inbox-table td[data-label]::before {
        content: attr(data-label);
        display: block;
        font-size: .66rem;
        font-weight: 700;
        text-transform: uppercase;
        letter-spacing: .04em;
        color: var(--gray-400);
    }
    .wf-inbox-table .wf-cb-cell { float: right; width: auto; }
    .wf-inbox-table .wf-inline-actions {
        display: flex; gap: .4rem; align-items: center;
        padding-top: .5rem !important; margin-top: .3rem;
        border-top: 1px solid var(--gray-100) !important;
    }
}

/* ── Fortschritts-Leiste in der Antrags-Detailansicht ─────────────── */
.wf-progress {
    display: flex; align-items: flex-start; gap: .35rem;
    padding: .75rem 1rem; margin-bottom: 1rem; overflow-x: auto;
    border: 1px solid var(--border-color, var(--gray-200)); border-radius: .6rem; background: var(--color-bg);
}
.wf-progress-step { display: flex; flex-direction: column; align-items: center; gap: .3rem; min-width: 72px; flex: 0 0 auto; }
.wf-progress-dot {
    width: 30px; height: 30px; border-radius: 50%; display: flex; align-items: center; justify-content: center;
    background: var(--gray-200); color: var(--gray-500); font-size: .78rem; font-weight: 700;
}
.wf-progress-step.is-done     .wf-progress-dot { background: var(--green-600); color: var(--color-on-accent); }
.wf-progress-step.is-active   .wf-progress-dot { background: var(--blue-600); color: var(--color-on-accent); box-shadow: 0 0 0 4px var(--blue-100); }
.wf-progress-step.is-rejected .wf-progress-dot { background: var(--red-600); color: var(--color-on-accent); }
.wf-progress-label { font-size: .7rem; font-weight: 700; color: var(--gray-700); text-align: center; line-height: 1.25; }
.wf-progress-label small { display: block; font-weight: 400; color: var(--gray-400); max-width: 110px; }
.wf-progress-line { flex: 1 1 24px; min-width: 16px; height: 2px; background: var(--gray-200); margin-top: 14px; }
.wf-progress-line.is-done { background: var(--green-600); }