/*@import '../lib-ext/bootstrap/dist/css/bootstrap.min.css';*/

html, body {
    height: 100%;
}

body {
    font-family: Roboto, Helvetica, Arial, Verdana, sans-serif !important;
    color: #12355f;
}

div.page-header {
    background-color: #F7F7F7;
    border: 1px solid #c6c5c5;
    border-radius: 0.25rem;
    margin-top: 10px;
    margin-bottom: 10px;
    padding: 10px 0.7rem 10px 0.7em;
}

div.page-header h1 {
    font-size: 1.3em;
    margin-bottom: 0;
}

/* width */
::-webkit-scrollbar {
    width: 10px;
}

/* Track */
::-webkit-scrollbar-track {
    background: #f1f1f1;
}

/* Handle */
::-webkit-scrollbar-thumb {
    background: #888;
}

/* Handle on hover */
::-webkit-scrollbar-thumb:hover {
    background: #555;
}
a {
    color: #12355F;
}
body nav.bg-light {
    /*background-color: #12355F !important;*/
    background-color: #12355F !important;
    font-size: 15px;
    margin: auto auto 15px;
    width: 100%;
}

.btn-outline-secondary.hover-with-danger:hover {
    color: #dc3545; /* Bootstrap Danger-Farbe */
    border-color: #dc3545;
    background-color: transparent;
}

/*.table {*/
/*    color: #12355f;*/
/*}*/


table > tbody > tr > * {
    color: #12355F !important;
}
.table > tbody > tr > td.vertical-middle {
    vertical-align: middle;
}

table.table-hover {
    border: 1px solid #d8d8d8;
    border-radius: 0.25rem;
    border-collapse: separate;
    border-spacing: 0;
}

table.table-hover th,
table.table-hover td {
    border: none /* !important, Problem in Hotel-Contingent-Overview */;
}

table.table-hover thead th:first-child {
    border-top-left-radius: 0.25rem;
}

table.table-hover thead th:last-child {
    border-top-right-radius: 0.25rem;
}

table.table-hover tbody tr:last-child td:first-child {
    border-bottom-left-radius: 0.25rem;
}

table.table-hover tbody tr:last-child td:last-child {
    border-bottom-right-radius: 0.25rem;
}

.nav-tabs-radius {
    border-top-left-radius: 0.25rem;
    border-top-right-radius: 0.25rem;
}

table.table-hover thead tr {
    background-color: #ededed;
}

.table td, .table th {
    border-top: none;
}

table.table-hover tbody tr:hover {
    background-color: #ededed !important;
}

/*.table-striped tbody tr:nth-of-type(odd) {*/
/*    background-color: #fafafa;*/
/*}*/

.table th a {
    color: #12355f !important;
    text-decoration: none;
}


@media (max-width: 991.98px) {
    .navbar-light .nav-item.active {
        /*background-color: #668822;*/
        border-bottom: 2px solid #ffffff;
        font-weight: bold;
        color: #ffffff;
    }

    .navbar-light .nav-item:hover {
        /*background-color: #668822;*/
        border-bottom: 2px solid #ffffff;
        font-weight: bold;
        color: #ffffff !important;
    }
}

@media (min-width: 992px) {
    .navbar-light .nav-item.active {
        /*background-color: #668822;*/
        border-bottom: 2px solid #ffffff;
        color: #ffffff;
    }

    .navbar-light .nav-item:hover {
        /*background-color: #668822;*/
        border-bottom: 2px solid #ffffff;
        color: #ffffff !important;
    }
}

.navbar-light .nav-item > .nav-link {
    line-height: 2.2;
}

.navbar-light .navbar-nav .nav-link {
    color: rgb(255, 255, 255);
}

body nav.bg-light .navbar-nav .nav-link {
    color: #FFFFFF;
}

.application-brand {
    display: inline-flex;
    gap: .75rem;
    align-items: center;
    margin-right: 1.25rem;
    padding-right: 1.25rem;
    border-right: 1px solid rgba(255, 255, 255, .26);
}

.application-brand img {
    width: auto;
    height: 35px !important;
    filter: brightness(0) invert(1);
    opacity: .9;
}

.application-brand-title {
    color: #fff;
    font-size: 1rem;
    font-weight: 500;
    letter-spacing: .01em;
    white-space: nowrap;
}

.application-brand-title > span {
    font-weight: 700;
}

.language-switcher {
    display: flex;
    align-items: center;
    margin-left: .75rem;
}

body nav.bg-light .language-switcher-toggle {
    display: inline-flex;
    gap: .45rem;
    align-items: center;
    padding: .32rem .55rem;
    color: #fff;
    border: 1px solid rgba(255, 255, 255, .72);
    border-radius: 999px;
    font-size: .78rem;
    font-weight: 700;
    line-height: 1;
    text-decoration: none;
}

body nav.bg-light .language-switcher-toggle:hover,
body nav.bg-light .language-switcher-toggle:focus {
    color: #fff !important;
    background: transparent;
    border-color: rgba(255, 255, 255, .72);
}

.language-switcher-toggle::after {
    margin-left: .1rem;
    color: #fff;
}

.language-switcher-toggle img {
    width: 1.15rem !important;
    height: 1.15rem;
    border-radius: 50%;
    object-fit: cover;
}

.language-switcher-menu {
    min-width: 9.5rem;
    padding: .35rem;
    border: 1px solid #d5e0eb;
    border-radius: .55rem;
    box-shadow: 0 .75rem 1.5rem rgba(18, 53, 95, .16);
}

.language-switcher-option {
    display: flex;
    gap: .6rem;
    align-items: center;
    padding: .5rem .6rem;
    border-radius: .35rem;
    color: #12355f !important;
    font-size: .9rem;
}

.language-switcher-option img {
    width: 1.15rem;
    height: 1.15rem;
    border-radius: 50%;
    object-fit: cover;
}

.language-switcher-option:hover,
.language-switcher-option:focus {
    color: #12355f !important;
    background: #eaf2fa;
}

/* Die globale Navigationslinie gehört nicht zum Sprachumschalter. */
.navbar-light .language-switcher:hover,
.navbar-light .language-switcher.active {
    border-bottom: 0 !important;
    font-weight: inherit;
}

.navbar-light .navbar-nav .nav-link:focus, .navbar-light .navbar-nav .nav-link:hover {
    color: #FFFFFF !important;
}

/*.dropdown-toggle::after{*/
/*    color: #FFFFFF;*/
/*}*/


body footer nav.bg-light {
    margin: 0;
}

body footer .navbar-light .nav-item:hover,
body footer .navbar-light .nav-item.active {
    border-bottom: 0 !important;
    font-weight: inherit;
}

body footer .navbar-light .nav-link:hover,
body footer .navbar-light .nav-link:focus {
    color: #fff !important;
}

/* Access denied */
.access-denied-page {
    display: grid;
    min-height: calc(100vh - 9.5rem);
    place-items: center;
    padding: 2rem 1rem 3rem;
}

.access-denied-card {
    display: grid;
    grid-template-columns: minmax(13rem, .8fr) minmax(18rem, 1.2fr);
    width: min(100%, 52rem);
    overflow: hidden;
    background: #fff;
    border: 1px solid #dce6f0;
    border-radius: 1.25rem;
    box-shadow: 0 1.5rem 3.5rem rgba(18, 53, 95, .12);
}

.access-denied-visual {
    display: grid;
    place-items: center;
    min-height: 23rem;
    padding: 2rem;
    background: linear-gradient(145deg, #12355f 0%, #1e5287 100%);
}

.access-denied-visual svg {
    width: min(100%, 14rem);
    height: auto;
}

.access-denied-content {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    padding: 3rem;
}

.access-denied-kicker {
    margin: 0 0 .5rem;
    color: #607c9f;
    font-size: .78rem;
    font-weight: 700;
    letter-spacing: .11em;
    text-transform: uppercase;
}

.access-denied-content h1 {
    margin: 0 0 .9rem;
    color: #12355f;
    font-size: clamp(1.8rem, 4vw, 2.45rem);
    font-weight: 700;
}

.access-denied-copy {
    max-width: 29rem;
    margin: 0;
    color: #486684;
    font-size: 1.05rem;
    line-height: 1.55;
}

.access-denied-hint {
    display: flex;
    gap: .65rem;
    align-items: flex-start;
    margin: 1.4rem 0 1.75rem;
    color: #234a75;
    font-size: .92rem;
    line-height: 1.45;
}

.access-denied-hint i {
    margin-top: .15rem;
    color: #5f7e9f;
}

.access-denied-action {
    display: inline-flex;
    gap: .65rem;
    align-items: center;
    padding: .7rem 1rem;
    color: #fff;
    background: #12355f;
    border: 1px solid #12355f;
    border-radius: .45rem;
    font-weight: 700;
}

.access-denied-action:hover,
.access-denied-action:focus {
    color: #12355f;
    background: #fff;
}

.access-denied-action .fa-arrow-right {
    margin-left: .35rem;
}

@media (max-width: 767.98px) {
    .access-denied-page {
        min-height: calc(100vh - 8rem);
        padding: 1.25rem .75rem 2rem;
    }

    .access-denied-card {
        grid-template-columns: 1fr;
    }

    .access-denied-visual {
        min-height: 12rem;
        padding: 1.5rem;
    }

    .access-denied-visual svg {
        width: 9rem;
    }

    .access-denied-content {
        padding: 2rem 1.5rem;
    }
}


/***********************************************************************************************************************************************************/
/* START: toasts (overwrite)
/***********************************************************************************************************************************************************/
#toastContainer {
    /*--header-bg-color-light: rgba(255, 255, 255, 1) !important;*/
    /*--body-bg-color-light: rgba(255, 255, 255, 1) !important;*/
    /*--header-bg-color-dark: rgba(30, 40, 45, 1) !important;*/
    /*--body-bg-color-dark: rgba(30, 40, 45, 1) !important;*/
    margin-top: 8rem !important;
}

/*#toastContainer .toast {*/
/*    background-color: rgba(255, 255, 255, 1) !important;*/
/*}*/

/***********************************************************************************************************************************************************/
/* END: toasts (overwrite)
/***********************************************************************************************************************************************************/
.page-item.active .page-link{
    background-color: #12355F;
    border-color: #12355F;
}
.page-link,
.page-link:hover{
    color: #12355F;
}
.btn-primary {
    color: #fff;
    background-color: #12355F;
    border-color: #12355F;
}

.btn-primary:not(:disabled):not(.disabled).active, .btn-primary:not(:disabled):not(.disabled):active, .show > .btn-primary.dropdown-toggle {
    background-color: #12355F;
    border-color: #12355F;
}

.btn-primary:hover {
    background-color: #ffffff;
    border-color: #12355F;
    color: #12355F;
}

.btn-primary:disabled {
    background-color: #12355F;
    border-color: #12355F;
}
.btn-primary:disabled:hover {
    background-color: #ffffff;
    border-color: #12355F;
    color: #12355F;
}

.btn-outline-info {
    color: #12355F;
    border-color: #12355F;
}

.btn-outline-info:not(:disabled):not(.disabled).active, .btn-outline-info:not(:disabled):not(.disabled):active, .show > .outline-info.dropdown-toggle {
    background-color: #12355F;
    border-color: #12355F;
}
.btn-outline-info:disabled {
    color: #12355F;
}
.btn-outline-info:hover {
    color: #fff;
    background-color: #12355F;
    border-color: #12355F;
}

.text-primary {
    color: #12355F !important;
}

.background-primary {
    background-color: #12355F !important;
    color: #ffffff;
}
.popover {
    max-width: 100%;
}

div#wrapper[class*="-list"],
div#wrapper[class*="-edit"],
div#wrapper.dashboard,
div#wrapper.imprint,
div#wrapper.privacy {
    margin-top: 70px;
}

body.login-page {
    background: #f6f7fb;
}

body.login-page nav {
    min-height: 104px;
    background: #183252 !important;
    margin-bottom: 0;
    box-shadow: none;
}

body.login-page .navbar-toggler,
body.login-page .navbar-collapse {
    display: none !important;
}

div#wrapper.login-start-wrapper {
    background: #f6f7fb !important;
    background-image: none !important;
    min-height: calc(100vh - 152px);
    padding: 64px 32px 48px;
}

.login-start-page {
    display: grid;
    grid-template-columns: minmax(0, 1.18fr) minmax(360px, .82fr);
    gap: 92px;
    align-items: center;
    max-width: 1180px;
    min-height: calc(100vh - 256px);
    margin: 0 auto;
}

.login-start-intro {
    max-width: 600px;
}

.login-start-kicker {
    margin: 0 0 24px;
    color: #68798d;
    font-size: .78rem;
    font-weight: 700;
    letter-spacing: .16em;
    text-transform: uppercase;
}

.login-start-intro h1 {
    margin: 0;
    color: #1b365b;
    font-size: clamp(2.45rem, 4.4vw, 4.25rem);
    font-weight: 800;
    letter-spacing: -.045em;
    line-height: 1.06;
}

.login-start-intro h1 span {
    color: #8da0b2;
}

.login-start-copy {
    max-width: 460px;
    margin: 28px 0 0;
    color: #68798d;
    font-size: 1.08rem;
    line-height: 1.55;
}

.login-start-account-note,
.login-start-benefit {
    display: flex;
    gap: 12px;
    margin: 46px 0 0;
    color: #5f6d7d;
    font-size: .9rem;
    line-height: 1.45;
}

.login-start-account-note i,
.login-start-benefit i {
    flex: 0 0 auto;
    padding-top: 2px;
    color: #6a7c91;
}

.login-start-card {
    max-width: 460px;
    justify-self: end;
    padding: 44px 48px 38px;
    background: #fff;
    border: 1px solid #e1e6eb;
    border-radius: 10px;
    box-shadow: 0 9px 22px rgba(24, 50, 82, .05);
}

.login-start-card-icon {
    display: grid;
    width: 62px;
    height: 62px;
    margin-bottom: 26px;
    place-items: center;
    border-radius: 10px;
    background: #f5f7fa;
    color: #61728a;
    font-size: 1.55rem;
}

.login-start-card-header {
    margin-bottom: 26px;
}

.login-start-card h2 {
    margin: 0 0 16px;
    color: #1b365b;
    font-size: 1.95rem;
    font-weight: 800;
    letter-spacing: -.035em;
    line-height: 1.05;
}

.login-start-card-header p {
    margin: 0;
    color: #66778a;
    font-size: .96rem;
    line-height: 1.52;
}

.login-start-login-button {
    min-height: 52px;
    padding: 13px 18px;
    border: 0;
    border-radius: 4px;
    background: #c8ff36;
    color: #19324f;
    font-weight: 800;
    font-size: .94rem;
    line-height: 1.35;
}

.login-start-login-button:hover,
.login-start-login-button:focus {
    background: #b5ec26;
    color: #19324f;
}

.login-start-login-hint {
    margin: 18px 0 0;
    color: #7b8795;
    font-size: .78rem;
    text-align: center;
}

.login-start-card-divider {
    height: 1px;
    margin: 28px 0 0;
    background: #e5e8ec;
}

.login-start-benefit {
    margin-top: 24px;
    font-size: .82rem;
}

body.login-page .footer {
    margin-top: auto;
    background: #183252 !important;
}

body.login-page .footer .navbar {
    background: #12355f !important;
}

body.login-page .footer .nav-link {
    color: #fff;
}

@media (max-width: 767.98px) {
    body.login-page nav {
        min-height: 76px;
    }

    .application-brand {
        margin-right: 14px;
        padding-right: 14px;
    }

    .application-brand-title {
        font-size: .86rem;
    }

    div#wrapper.login-start-wrapper {
        padding: 48px 22px;
    }

    .login-start-page {
        display: block;
        min-height: auto;
    }

    .login-start-intro {
        margin-bottom: 46px;
    }

    .login-start-card {
        max-width: none;
        padding: 32px 26px 28px;
    }
}

div#app {
    position: absolute;
    left: 50px;
    top: 100px;

    width: 300px;

    box-shadow: 0 10px 20px rgba(0, 0, 0, 0.19), 0 6px 6px rgba(0, 0, 0, 0.23);
}

div#spinner_container {
    display: none;
}

div#spinner {
    height: 170px;
    width: 170px;
    text-align: center;
    position: relative;
}

span.spinner__label {
    font-size: 1.75em;
    color: #409FFF;
    position: absolute;
    top: 35%;
    left: 34%;
}


span.spinner__label span {
    font-size: 0.5em;
    color: #969990;

    display: inline-block;
    font-size: 0.3548387097em;
    font-weight: 400;
    line-height: 1;
    position: relative;
    top: 0.2727272727em;
    vertical-align: top;
}

div#filelist {
    max-height: 280px;
    border: 1px solid red;
    overflow-x: hidden;
    overflow-y: auto;
}

div#filelist span.filename {
    display: block;
    width: 280px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

div#filelist span.subline {
    font-size: 0.8em;
    color: #969990;
}

#upload-fa-square {
    font-size: .3rem;
}

#browseButton {
    color: #12355F;
}

#div_browse_button:hover #browseButton,
#div_browse_button:focus #browseButton {
    color: #198754;
}

#show_more_Button {
    color: #12355F;
}

#show_more_Button:hover,
#show_more_Button:focus {
    color: #198754;
}


.customize-btn-primary {
    background-color: #12355F !important;
    color: white;
    border-color: #12355F !important;
}

.customize-btn-primary:hover,
.customize-btn-primary:focus {
    background-color: #198754 !important;
    border-color: #198754 !important;
}

.required:after {
    content: " *";
    color: #26ade4;
}

.btn-delete-file {
    display: none;
}

.filename_li:hover > .btn-delete-file {
    display: block;
}

/* Autocomplete (isms_autocomplete in standard.js; replaces jQuery UI autocomplete and typeahead). */
.isms-autocomplete-menu {
    position: fixed;
    z-index: 1090;
    display: none;
    max-height: 320px;
    overflow-y: auto;
    margin: 2px 0 0;
}
.isms-autocomplete-menu.show { display: block; }
.isms-autocomplete-menu .dropdown-item { white-space: normal; }
.isms-autocomplete-menu .dropdown-item.active,
.isms-autocomplete-menu .dropdown-item:active { background-color: #12355F; color: #fff; }

/* Floating labels must not block the input */
.form-floating > label {
    pointer-events: none;
    z-index: 1;
}
.form-floating {
    overflow: visible;
}








.cia-badge {
    width: 25px;
}

.customPopover {
    max-width: 500px !important;
}

#button_save_box {
    left: 0;
    right: 0;
}

.is-sticky > #button_save_box {
    margin-left: 12px;
    margin-right: 12px;
    z-index: 100005;
}

body#page-edit.data-editor .is-sticky > #button_save_box {
    margin-left: 75px;
}

.is-sticky #button_save_box .card {
    border-radius: 0;
}


#upload_recipients:focus {
    outline: none;
}

#upload_title:focus {
    outline: none;
}

#h1_subtext {
    font-size: 80%;
    font-weight: 400;
}

.order::after {
    font-weight: normal;
    color: red;
    display: inline-block;
    padding-left: 2px;
    text-decoration: none;
}

.order.asc::after {
    font-family: 'Font Awesome 6 Pro';
    -webkit-font-smoothing: antialiased;
    display: inline-block;
    font-style: normal;
    font-variant: normal;
    text-rendering: auto;
    line-height: 1;
    content: "\f063";
    font-size: 12px;
    font-weight: 900;
    #content: "⇧";
}

.order.desc::after {
    font-family: 'Font Awesome 6 Pro';
    -webkit-font-smoothing: antialiased;
    display: inline-block;
    font-style: normal;
    font-variant: normal;
    text-rendering: auto;
    line-height: 1;
    content: "\f062";
    font-size: 12px;
    font-weight: 900;
    #content: "⇩";
}

.cursor_pointer {
    cursor: pointer
}


.popover-body {
    max-width: 500px;
}

@media (max-width: 767px) {
    #div_input_login_pass {
        width: 90.7%;
    }
}

@media (max-width: 512px) {
    #div_input_login_pass {
        width: 90.6%;
    }
}

@media (max-width: 507px) {
    #div_input_login_pass {
        width: 90.4%;
    }
}

@media (max-width: 507px) {
    #div_input_login_pass {
        width: 90.2%;
    }
}

@media (max-width: 488px) {
    #div_input_login_pass {
        width: 90%;
    }
}

@media (max-width: 479px) {
    #div_input_login_pass {
        width: 89.5%;
    }
}

@media (max-width: 459px) {
    #div_input_login_pass {
        width: 89%;
    }
}

@media (max-width: 440px) {
    #div_input_login_pass {
        width: 88.5%;
    }
}

@media (max-width: 433px) {
    #div_input_login_pass {
        width: 88%;
    }
}

@media (max-width: 408px) {
    #div_input_login_pass {
        width: 86%;
    }
}

@media (max-width: 357px) {
    #div_input_login_pass {
        width: 85.7%;
    }
}

@media (max-width: 350px) {
    #div_input_login_pass {
        width: 85.5%;
    }
}

@media (max-width: 346px) {
    #div_input_login_pass {
        width: 85%;
    }
}

@media (max-width: 344px) {
    #div_input_login_pass {
        width: 84%;
    }
}

@media (min-width: 768px) {
    #div_input_login_pass {
        width: 90.5%;
    }
}
/* Überschriften in Karten sollen den jeweiligen Abschnitt klar kennzeichnen. */
.card-header {
    font-weight: 700;
}

/* Rating scales: CIA, total risk (Gesamtgefahr), supplier criticality.
   Markup: app/lib/scale_display.lib.php; colours come from the scale data (--isms-c). */
.isms-scale-wrap { display: inline-flex; align-items: center; gap: 8px; vertical-align: middle; }
.isms-cia { display: inline-flex; box-sizing: border-box; height: 30px; border: 1px solid #e5e7eb; border-radius: 6px; overflow: hidden; font-size: 12px; line-height: 1; background: #fff; }
.isms-cia > span { position: relative; display: inline-flex; align-items: center; gap: 5px; padding: 0 9px 3px; font-weight: 700; color: #1f2937; cursor: help; }
.isms-cia > span::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 3px; background: var(--isms-c); }
.isms-cia > span + span { border-left: 1px solid #e5e7eb; }
.isms-cia b { font-weight: 500; color: #6b7280; font-size: 10px; letter-spacing: .04em; }
.isms-level { display: inline-flex; align-items: stretch; box-sizing: border-box; height: 30px; border: 1px solid; border-radius: 6px; overflow: hidden; font-size: 12px; line-height: 1; cursor: help; color: #1f2937; }
.isms-level .num { display: grid; place-items: center; min-width: 26px; font-weight: 800; font-size: 14px; background: var(--isms-c); color: #fff; }
.isms-level.isms-level-dark .num { color: #1f2937; }
.isms-level .txt { display: flex; flex-direction: column; justify-content: center; gap: 4px; padding: 0 9px; }
.isms-level .lbl { font-weight: 600; white-space: nowrap; }
.isms-level .steps { display: flex; gap: 2px; }
.isms-level .steps i { width: 10px; height: 3px; border-radius: 1px; background: #d7dbe1; }
.isms-level .steps i.on { background: var(--isms-c); }
.isms-scale-none { color: #9ca3af; font-size: 12px; font-style: italic; }
/* Tooltip of the scale displays (Bootstrap 5.1: .tooltip sets font-size, .tooltip-inner max-width). */
.isms-tip { font-size: 15px; }
.isms-tip .tooltip-inner { max-width: 380px; padding: 8px 12px; text-align: left; line-height: 1.45; }
/* TLP classification as pill (text_badges.lib.php, POL-AST-00 AST-07); light tints matching the ISMS badges. */
.isms-tlp { display: inline-flex; align-items: center; box-sizing: border-box; height: 22px; padding: 0 8px; border: 1px solid; border-radius: 999px;
    font: 700 11px/1 ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; letter-spacing: .02em; white-space: nowrap; vertical-align: middle; cursor: help; }
.isms-tlp-red { background: #fde8e8; color: #b3261e; border-color: #f3b4b0; }
.isms-tlp-amber-strict { background: #ffedd5; color: #9a3412; border-color: #fdba74; }
.isms-tlp-amber { background: #fff7e0; color: #8a6200; border-color: #f3d98b; }
.isms-tlp-green { background: #e6f6e6; color: #1e6b2a; border-color: #a9d9ae; }
.isms-tlp-clear { background: #f1f3f5; color: #3d4652; border-color: #cfd5dc; }
.isms-tlp-slot { padding: 0 8px; }
.isms-cia + .isms-tlp { margin-left: 6px; }
/* Code blocks (``` … ```) in proposal texts, e.g. commands and output of a check (GEN-12). */
.proposal-code { margin: 6px 0; padding: 8px 10px; background: #f4f6f9; border: 1px solid #d9dee5; border-radius: 4px;
    font: 12px/1.45 ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; white-space: pre-wrap; word-break: break-word; }
/* Policy and rule IDs in texts as chips with tooltip (text_badges.lib.php). */
.isms-ref { display: inline-block; padding: 1px 6px; border: 1px solid #c9d6ea; border-radius: 4px; background: #e8eef7; color: #12325b;
    font: 600 12px/1.35 ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; text-decoration: none; white-space: nowrap; vertical-align: baseline; }
.isms-ref:hover, .isms-ref:focus { background: #d6e2f3; color: #0b2445; text-decoration: none; }
.isms-tip .tooltip-inner b { font-weight: 700; }

/* Proposal list (inventory-proposal-list.php, inventory_proposals.lib.php) */
.proposal-table > tbody > tr > td { vertical-align: top; }
.proposal-table th.proposal-summary, .proposal-table td.proposal-summary { width: 210px; min-width: 210px; max-width: 210px; }
.proposal-summary-name { display: block; line-height: 1.25; overflow-wrap: normal; word-break: normal; hyphens: manual; }
/* Separates badges, name, action, dependencies and metadata. */
td.proposal-summary > * + * { margin-top: .45rem; }
td.proposal-summary > .proposal-summary-action { margin-top: .2rem; }
.proposal-summary-action { font-size: .9em; }
.proposal-summary-dependency { color: #8a5a00; font-weight: 600; }
/* Decided rows are dimmed, their info link stays readable. */
.proposal-row-decided > td > *:not(.proposal-decision-bar) { opacity: .6; }
/* Each proposal is one block: more room and a clear line between proposals. */
.proposal-table > tbody > tr > td { padding: 1.1rem .75rem; }
.proposal-table > tbody > tr + tr > td { border-top: 2px solid #cfd6e1; }
.proposal-table > :not(:first-child) { border-top: 2px solid #cfd6e1; }
/* Decision bar directly below the change: frequent decisions left, rare ones as links right. */
.proposal-decision-bar { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; margin-top: .75rem; padding-top: .6rem; border-top: 1px dashed #d5dbe5; }
.proposal-decision-primary, .proposal-decision-secondary { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; }
.proposal-decision-primary .btn-sm { padding-left: .75rem; padding-right: .75rem; }
.proposal-decision-secondary { margin-left: auto; gap: .15rem; }
.proposal-decision-link { padding-left: .4rem; padding-right: .4rem; }
.proposal-decision-link:hover, .proposal-decision-link:focus { color: #12355F !important; }
.proposal-decision-bar-card { margin-top: 0; }
.proposal-decision-divider { width: 1px; height: 1.2rem; margin: 0 .25rem; background: #d5dbe5; }
.proposal-table tr.proposal-row-active > td { background-color: transparent; }
.proposal-table tr.proposal-row-active > td:first-child { box-shadow: inset 4px 0 0 #12355F; }
.proposal-detail-card > .card, .proposal-detail-card > .inventory-proposal-open { border: 2px solid #12355F; background-color: #f5f7fb; }
.proposal-detail-card > .card > .card-header, .proposal-detail-card > .inventory-proposal-open > .card-header { background-color: #e7ecf4; }
.proposal-accept-locked { cursor: not-allowed; }
/* Topic line above reason and values: area › category 1 › target › action */
.proposal-topic { display: flex; flex-wrap: wrap; align-items: center; gap: .25rem .35rem; margin-bottom: .4rem; font-size: .8rem; }
.proposal-chip { display: inline-block; padding: .15rem .5rem; border: 1px solid #d5dbe5; border-radius: 999px; background: #f4f6fa; color: #12355F; line-height: 1.3; }
.proposal-chip-name { font-weight: 600; background: #fff; }
.proposal-chip-action { background: #12355F; border-color: #12355F; color: #fff; font-weight: 600; }

/* ISMS areas: one colour per area, shared by the proposal list and the dashboard. */
.isms-area { border: 1px solid transparent; }
.isms-area-inventory { background: #e3eefa; border-color: #c4dbf3; color: #1f5a96; }
.isms-area-asset { background: #def3ef; border-color: #bfe6de; color: #1c6b5f; }
.isms-area-measure { background: #eef0f4; border-color: #d8dde6; color: #3d4a5c; }
.isms-area-weakpoint { background: #fbe5e7; border-color: #f4c7cc; color: #a8303a; }
.isms-area-risk { background: #fcefdf; border-color: #f5d8b4; color: #9a5a13; }
.isms-area-incident { background: #fbe3f0; border-color: #f2c3dc; color: #9b1d5a; }
.isms-area-finding { background: #fdf6d8; border-color: #f1e2a0; color: #7a6205; }
.isms-area-proposal { background: #efe9ff; border-color: #dcd0fb; color: #5a3fb0; }
.badge.isms-area { font-weight: 600; }
.proposal-topic-sep { color: #8a94a6; }
.proposal-topic .proposal-chip-action { margin-right: .35rem; }

/* Inventory list (cls_form_list_inventory.lib.php): category 1 as small line above category 2,
   asset and its CIA claim set apart as a group. */
.inventory-list-category { min-width: 200px; }
th.inventory-list-category { white-space: nowrap; }
.inventory-list-category-sep { color: #9aa6b6; font-weight: 400; margin: 0 .4rem; }
.inventory-list-category-1 { color: #6b7a8f; font-size: .8em; line-height: 1.2; }
.inventory-list-category-2 { line-height: 1.3; margin-top: 2px; }
.inventory-list-asset { border-left: 2px solid #d5dbe5; padding-left: .9rem !important; max-width: 320px; }
.inventory-list-asset-link { color: inherit; text-decoration: none; }
.inventory-list-asset-link:hover { color: var(--bs-link-color); text-decoration: underline; }
thead th.inventory-list-asset, thead th.inventory-list-asset-cia { background-color: #eef1f6; }

/* Supplier card „Kritikalität“: level derived from the supplied items (isms_render_supplier_derived_criticality). */
.supplier-derived { border: 1px solid #d5dbe5; border-left: 4px solid #9aa6b6; border-radius: 6px; padding: .6rem .75rem; background: #f7f9fc; }
.supplier-derived-ok { border-left-color: #008a0d; }
.supplier-derived-warn { border-left-color: #e0a100; background: #fffaf0; }
.supplier-derived-title { font-weight: 600; font-size: .9rem; margin-bottom: .4rem; }
.supplier-derived-source { line-height: 1.9; }
.supplier-derived-msg { display: none; font-size: .85rem; margin-top: .5rem; padding-top: .4rem; border-top: 1px dashed #d5dbe5; }
.supplier-derived-ok .supplier-derived-msg-ok { display: block; color: #1b6b2a; }
.supplier-derived-warn .supplier-derived-msg-warn { display: block; color: #8a5a00; font-weight: 600; }
.supplier-derived-rule { color: #8a96a8; font-size: .75rem; margin-top: .35rem; }

/* Supplier card „Gelieferte Einträge“ (get_list_inventory_from_supplier). */
.supplied-items td { padding: .6rem .9rem; vertical-align: middle; }
.supplied-items tr + tr td { border-top: 1px solid #e3e7ee; }
.supplied-items tr:first-child td { border-top: 0; }
.supplied-item-name { color: #12355F; font-weight: 600; text-decoration: none; }
.supplied-item-name:hover { text-decoration: underline; }
.supplied-item-meta { color: #6b7a8f; font-size: .78rem; }
.supplied-item-inactive td { opacity: .55; }
/* Lists: reason of CIA rating / criticality filled in or missing */
.isms-reason { display: inline-flex; align-items: center; justify-content: center; box-sizing: border-box; width: 30px; height: 30px; margin-left: 6px; border-radius: 6px; font-size: .72rem; vertical-align: middle; cursor: default; }
.isms-reason-ok { background: #ecfdf3; border: 1px solid #b7ebc9; color: #16a34a; }
.isms-reason-missing { background: #fff7ed; border: 1px dashed #f5b35c; color: #d97706; }
/* Asset: card „Inventar“ (linked inventory items grouped by category 1) */
.linked-inventory-body { max-height: 42rem; overflow-y: auto; }
.linked-inventory-group { display: flex; justify-content: space-between; padding: .45rem .9rem; background: #f4f6f9; border-top: 1px solid #e3e7ee; border-bottom: 1px solid #e3e7ee; color: #6b7a8f; font-size: .72rem; font-weight: 600; letter-spacing: .04em; text-transform: uppercase; position: sticky; top: 0; z-index: 1; }
.linked-inventory-group:first-child { border-top: 0; }
.linked-inventory td { padding: .4rem .9rem; }

/* Change history dialog („Historie“) */
.record-history-dialog .modal-dialog {
    max-width: min(1400px, calc(100vw - 2rem));
}

.record-history-table {
    table-layout: fixed;
    width: 100%;
    margin-bottom: 0;
}

.record-history-table thead th {
    position: sticky;
    top: 0;
    z-index: 1;
    background-color: #ffffff;
}

.record-history-col-time { width: 9.5rem; }
.record-history-col-user { width: 9rem; }
.record-history-col-area { width: 6.5rem; }
.record-history-col-field { width: 13rem; }

.record-history-table td {
    vertical-align: top;
    overflow-wrap: break-word;
    hyphens: auto;
}

.record-history-value p {
    margin-bottom: 0.5rem;
}

.record-history-value p:last-child,
.record-history-value ul:last-child,
.record-history-value ol:last-child {
    margin-bottom: 0;
}

.record-history-value ul,
.record-history-value ol {
    padding-left: 1.25rem;
    margin-bottom: 0.5rem;
}

/* Notice instead of the table: no entries, new record, error. */
.record-history-notice {
    display: flex;
    align-items: flex-start;
    gap: 0.9rem;
    padding: 1rem 1.25rem;
    border-radius: 0.375rem;
    border: 1px solid #dee2e6;
    border-left: 4px solid #6c8ebf;
    background-color: #f5f8fc;
    color: #212529;
}

.record-history-notice > .fa-solid {
    font-size: 1.4rem;
    line-height: 1.4;
    color: #6c8ebf;
}

.record-history-notice-danger {
    border-left-color: #dc3545;
    background-color: #fdf3f4;
}

.record-history-notice-danger > .fa-solid {
    color: #dc3545;
}

.record-history-notice-title {
    font-weight: 600;
    margin-bottom: 0.15rem;
}

.record-history-notice-text {
    color: #6c757d;
}

.record-history-loading {
    color: #6c757d;
}

/* Long texts are shown completely; the dialog body scrolls. */
.record-history-value-long {
    line-height: 1.45;
}

@media (max-width: 991px) {
    .record-history-table {
        table-layout: auto;
        min-width: 900px;
    }

    .record-history-dialog .modal-body {
        overflow-x: auto;
    }
}

/* Policies („Richtlinien“) */
.policy-rule-text {
    font-size: 0.925rem;
    line-height: 1.45;
}

.policy-rule-text p,
.policy-rule-text ul {
    margin-bottom: 0.4rem;
}

.policy-rule-text > :last-child {
    margin-bottom: 0;
}

.policy-rule-text ul {
    padding-left: 1.25rem;
}

.policy-rule-text code,
.policy-page .policy-markdown {
    font-size: 0.85em;
}

.policy-rule-code {
    font-family: var(--bs-font-monospace);
    font-size: 0.8rem;
}

.policy-rule-draft {
    background-color: #f5fbf6;
}

.policy-page textarea.policy-markdown {
    min-height: 6rem;
}

/* Policy proposals (policy_proposals.lib.php): area colour and word diff. */
.isms-area-policy { background: #eef3dc; border-color: #d9e4b3; color: #55661a; }
.policy-diff { white-space: pre-wrap; word-break: break-word; font-size: .875rem; line-height: 1.5; padding: 6px 8px; background: #fafbfc; border: 1px solid #e3e7ed; border-radius: 4px; }
.policy-diff-del { background: #fde2e1; color: #8a1c17; text-decoration: line-through; }
.policy-diff-ins { background: #dcf3e1; color: #135c26; text-decoration: none; }

/* Change markers of the policy draft (policies.lib.php); Bootstrap 5.1 has no *-subtle colours. */
.policy-change-badge { border: 1px solid transparent; font-weight: 600; }
.policy-change-new { background: #e6f6e6; border-color: #a9d9ae; color: #1e6b2a; }
.policy-change-changed { background: #fff4d6; border-color: #f0d38a; color: #7a5600; }

/* Attachments of vulnerabilities and security incidents: drop area (init_file_dropzone) and text preview. */
.file-dropzone { border: 2px dashed #ced4da; border-radius: .375rem; padding: .75rem; transition: background-color .15s, border-color .15s; }
.file-dropzone.is-dragover { background: #e7f4f8; border-color: #0dcaf0; }
.file-text-preview { max-height: 70vh; overflow: auto; white-space: pre-wrap; word-break: break-word; font-size: .875rem; background: #f8f9fa; padding: .75rem; border-radius: .25rem; }

/* Colour of dropdown items (dropdown-edit): native colour picker next to the text field. */
.dri-color-group .form-control-color { flex: 0 0 3rem; width: 3rem; height: auto; min-height: calc(1.5em + .75rem + 2px); padding: .25rem; }
.dri-color-group .form-control-color.dri-color-empty { background-image: linear-gradient(135deg, transparent 46%, #b3261e 46%, #b3261e 54%, transparent 54%); }
.dri-color-group .form-control-color.dri-color-empty::-webkit-color-swatch { opacity: 0; }
.dri-color-group .form-control-color.dri-color-empty::-moz-color-swatch { opacity: 0; }

/* Legal pages (imprint, privacy): content from the text blocks html_imprint / html_privacy. */
.isms-legal { --legal-navy: #12355F; --legal-line: #dfe3ea; --legal-muted: #5f6b7a; max-width: 980px; margin: 2rem auto; padding: 0 1rem; color: #1f2a37; }
.isms-legal-head { display: flex; align-items: center; gap: 1rem; padding: 1.5rem 1.75rem; border-radius: .75rem; background: linear-gradient(135deg, #12355F 0%, #1d4f86 100%); color: #fff; margin-bottom: 1.25rem; }
.isms-legal-head h1 { margin: 0; font-size: 1.75rem; font-weight: 700; color: #fff; }
.isms-legal-head p { margin: .2rem 0 0; opacity: .85; font-size: .95rem; }
.isms-legal-icon { flex: 0 0 3.25rem; width: 3.25rem; height: 3.25rem; display: flex; align-items: center; justify-content: center; border-radius: .6rem; background: rgba(255, 255, 255, .15); font-size: 1.4rem; }
.isms-legal-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; }
.isms-legal-card { padding: 1.25rem 1.4rem; border: 1px solid var(--legal-line); border-radius: .6rem; background: #fff; box-shadow: 0 1px 2px rgba(18, 53, 95, .05); }
.isms-legal-card h2 { display: flex; align-items: center; gap: .5rem; margin: 0 0 .75rem; font-size: .8rem; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; color: var(--legal-muted); }
.isms-legal-card h2 .fa-solid { color: var(--legal-navy); width: 1rem; text-align: center; }
.isms-legal-card p, .isms-legal-card address { margin: 0; line-height: 1.6; }
.isms-legal-name { font-size: 1.15rem; font-weight: 700; color: var(--legal-navy); margin-bottom: .2rem !important; }
.isms-legal-list { list-style: none; margin: 0; padding: 0; }
.isms-legal-list li { display: flex; align-items: center; gap: .6rem; padding: .25rem 0; }
.isms-legal-list .fa-solid { width: 1rem; text-align: center; color: var(--legal-muted); }
.isms-legal a { color: var(--legal-navy); text-decoration: none; border-bottom: 1px solid rgba(18, 53, 95, .25); }
.isms-legal a:hover { border-bottom-color: var(--legal-navy); }
/* Register data: legally required, but secondary – small, muted, no bold. */
.isms-legal-register { display: flex; flex-wrap: wrap; gap: .4rem 2rem; margin: 1rem 0 0; padding: .9rem 1.4rem; border-top: 1px solid var(--legal-line); font-size: .85rem; color: var(--legal-muted); }
.isms-legal-register div { display: flex; gap: .4rem; }
.isms-legal-register dt { font-weight: 400; }
.isms-legal-register dt::after { content: ':'; }
.isms-legal-register dd { margin: 0; color: #1f2a37; }
@media (max-width: 767.98px) {
    .isms-legal { margin: 1rem auto; }
    .isms-legal-grid { grid-template-columns: 1fr; }
    .isms-legal-head { padding: 1.1rem 1.2rem; }
}
.isms-area-control { background: #e6f4ea; border-color: #c3e3cc; color: #1e6b37; }
