:root{--navy:#080b63;--blue:#11198e;--cyan:#35d6ff;--bg:#070a18;--panel:#11162a;--muted:#aeb7d7;--line:#273052;--good:#31d18b;--warn:#ffbd4a;--bad:#ff5f74}*{box-sizing:border-box}body{margin:0;font:15px/1.5 system-ui,Segoe UI,Arial;background:var(--bg);color:#eef2ff}a{color:#9fe7ff;text-decoration:none}aside{position:fixed;inset:0 auto 0 0;width:270px;background:linear-gradient(180deg,#070954,#080a21);border-right:1px solid #25306c;padding:18px;overflow:auto}aside img{width:150px;display:block;margin:0 auto 12px;border-radius:16px}.brand{text-align:center;font-weight:800;font-size:18px}.brand small{display:block;color:#aab4e4;font-size:11px;margin-top:6px}nav{margin-top:22px;display:grid;gap:5px}nav a{padding:10px 12px;border-radius:10px;color:#dfe5ff}nav a:hover{background:#171d67}.app{margin-left:270px;min-height:100vh}.app>header{height:64px;display:flex;align-items:center;justify-content:space-between;padding:0 28px;border-bottom:1px solid var(--line);background:#0b0f21}.content{padding:28px}.title{display:flex;align-items:center;justify-content:space-between}.title h1{margin:0 0 22px}.classify{font-size:11px;border:1px solid #44508a;border-radius:99px;padding:5px 10px;color:#bbc4f2}.hero,.panel,.card,.doc{background:linear-gradient(145deg,#111830,#0d1224);border:1px solid var(--line);border-radius:18px;box-shadow:0 18px 55px #0004}.hero{padding:26px;display:flex;justify-content:space-between;align-items:center;background:radial-gradient(circle at 80% 10%,#183aa8 0,transparent 35%),linear-gradient(145deg,#101731,#0c1123)}.hero h2{font-size:28px;margin:0}.score{text-align:center}.score b{font-size:42px;color:var(--cyan)}.score small{display:block;color:var(--muted)}.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:14px;margin:18px 0}.card{padding:18px;color:#fff}.card span{display:block;color:var(--muted)}.card b{font-size:30px;color:var(--cyan)}.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.panel{padding:20px;margin:18px 0}.grid3 .panel{display:flex;gap:16px;align-items:center}.grid3 b{font-size:30px}.danger{border-color:#763349}.warn{border-color:#7d6030}.toolbar{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:16px}.btn,button{display:inline-block;border:0;border-radius:10px;padding:10px 14px;background:linear-gradient(135deg,#2635d9,#168ac7);color:#fff;font-weight:700;cursor:pointer}.ghost{background:#17203b;border:1px solid #334064}.tablewrap{overflow:auto;border:1px solid var(--line);border-radius:14px}table{width:100%;border-collapse:collapse;background:#0f1427}th,td{padding:11px;border-bottom:1px solid var(--line);text-align:left;white-space:nowrap}th{background:#151c39;color:#cdd8ff}.formgrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.formgrid label{display:grid;gap:6px;color:#cbd4fa}.formgrid input,.formgrid textarea,.loginbox input{width:100%;background:#080d20;border:1px solid #334064;border-radius:9px;color:#fff;padding:11px}.formgrid textarea{min-height:100px}.formgrid button{grid-column:1/-1}.docgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px}.doc{padding:20px}.doc span{font-size:12px;color:var(--cyan)}.doc div,.lead{color:var(--muted)}footer{padding:20px 28px;color:#7f8ab4;font-size:12px}.loginbg{min-height:100vh;display:grid;place-items:center;background:radial-gradient(circle at 50% 0,#1728a8,#070a18 55%)}.loginbox{width:min(420px,92vw);padding:30px;background:#0d1329;border:1px solid #303b70;border-radius:22px;box-shadow:0 35px 120px #000}.loginbox form,.loginbox label{display:grid;gap:10px}.loginbox label{margin:12px 0}.loginlogo{width:190px;display:block;margin:auto;border-radius:18px}.alert{padding:10px;background:#5d2433;border-radius:8px}.reporthead{display:flex;align-items:center;gap:20px}.reporthead img{width:130px}@media(max-width:900px){aside{position:static;width:auto}.app{margin:0}.grid3{grid-template-columns:1fr}.formgrid{grid-template-columns:1fr}.app>header{display:none}.content{padding:16px}}@media print{aside,.toolbar,button,.app>header,footer{display:none!important}.app{margin:0}.content{padding:0}body{background:#fff;color:#111}.panel,.card,.doc,.hero{box-shadow:none;background:#fff;border:1px solid #aaa;color:#111}.title .classify{color:#111}.tablewrap{overflow:visible}table{background:#fff;color:#111}th{background:#ddd;color:#111}}

/* Tobi VSS Security-Scanner */
.formgrid select {
    width: 100%;
    min-height: 44px;
    padding: 10px 12px;
    border: 1px solid #314166;
    border-radius: 9px;
    background: #0b1228;
    color: #f6f8ff;
}

.formgrid input[type="checkbox"] {
    width: auto;
    min-height: auto;
    margin-right: 8px;
}

@media print {
    aside,
    header,
    .toolbar,
    #scanformular {
        display: none !important;
    }

    main.app {
        margin: 0 !important;
    }

    body {
        background: #fff !important;
        color: #000 !important;
    }

    .panel,
    .card,
    .hero {
        background: #fff !important;
        color: #000 !important;
        border-color: #999 !important;
        break-inside: avoid;
    }
}

/* Tobi VSS Scanner 1.1 */
.scanner-assessment {
    display: flex;
    align-items: center;
    gap: 22px;
    padding: 22px;
    margin: 18px 0;
    border: 1px solid var(--line);
    border-radius: 18px;
    background: linear-gradient(145deg,#111830,#0d1224);
}

.scanner-assessment h2 {
    margin: 3px 0;
}

.scanner-assessment small,
.comparison-grid span {
    color: var(--muted);
}

.scanner-traffic {
    display: grid;
    gap: 6px;
    flex: 0 0 auto;
}

.scanner-traffic span {
    display: block;
    width: 25px;
    height: 25px;
    border-radius: 50%;
    background: #30364b;
    box-shadow: inset 0 0 0 2px #ffffff12;
}

.scanner-light-red .scanner-traffic span:nth-child(1) {
    background: #ff3b57;
    box-shadow: 0 0 20px #ff3b57;
}

.scanner-light-orange .scanner-traffic span:nth-child(2) {
    background: #ff7a2d;
    box-shadow: 0 0 20px #ff7a2d;
}

.scanner-light-yellow .scanner-traffic span:nth-child(2) {
    background: #ffcf3f;
    box-shadow: 0 0 20px #ffcf3f;
}

.scanner-light-green .scanner-traffic span:nth-child(3) {
    background: #31d18b;
    box-shadow: 0 0 20px #31d18b;
}

.comparison-grid {
    display: grid;
    grid-template-columns: repeat(4,minmax(0,1fr));
    gap: 12px;
}

.comparison-grid div {
    padding: 15px;
    border: 1px solid var(--line);
    border-radius: 13px;
    background: #0c1226;
}

.comparison-grid span,
.comparison-grid b {
    display: block;
}

.comparison-grid b {
    margin-top: 5px;
    font-size: 20px;
}

.trend-good {
    color: var(--good);
}

.trend-bad {
    color: var(--bad);
}

.finding-group {
    margin: 22px 0;
    padding: 18px;
    border: 1px solid var(--line);
    border-radius: 16px;
    background: #0b1022;
}

.finding-group > h3 {
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.finding-group > h3 span {
    min-width: 32px;
    padding: 3px 9px;
    border-radius: 99px;
    text-align: center;
    background: #252e50;
}

.finding-kritisch {
    border-color: #a82f4c;
}

.finding-hoch {
    border-color: #864055;
}

.finding-mittel {
    border-color: #8d6a25;
}

.finding-niedrig {
    border-color: #315b7b;
}

.finding-card {
    margin-top: 13px;
    padding: 17px;
    border: 1px solid #293455;
    border-radius: 13px;
    background: linear-gradient(145deg,#111830,#0d1224);
}

.reference-note {
    color: var(--muted);
    font-size: 13px;
}

.finding-risk-button {
    margin-top: 8px;
}

.scanner-old-findings {
    opacity: .88;
}

.scanner-dashboard > .grid3 {
    margin-top: 15px;
}

.scanner-dashboard a.panel {
    color: #eef2ff;
}

@media(max-width:900px) {
    .comparison-grid {
        grid-template-columns: 1fr;
    }

    .scanner-assessment {
        align-items: flex-start;
    }
}

@media print {
    .finding-risk-button,
    .scanner-old-findings {
        display: none !important;
    }

    .scanner-assessment,
    .finding-group,
    .finding-card,
    .comparison-grid div {
        background: #fff !important;
        color: #000 !important;
        box-shadow: none !important;
        break-inside: avoid;
    }

    .reference-note,
    .scanner-assessment small,
    .comparison-grid span {
        color: #333 !important;
    }
}

/* Tobi VSS Scanner 1.2 - Befundhistorie */
.finding-history-panel {
    scroll-margin-top: 20px;
}

.history-summary {
    display: grid;
    grid-template-columns: repeat(3,minmax(0,1fr));
    gap: 14px;
    margin: 18px 0;
}

.history-summary > div {
    padding: 18px;
    border: 1px solid var(--line);
    border-radius: 14px;
    background: #0b1124;
}

.history-summary span,
.history-summary b {
    display: block;
}

.history-summary span {
    color: var(--muted);
}

.history-summary b {
    margin-top: 4px;
    font-size: 32px;
}

.history-new {
    border-color: #a83f55 !important;
}

.history-new b {
    color: #ff6a7d;
}

.history-unchanged {
    border-color: #7d6030 !important;
}

.history-unchanged b {
    color: #ffbd4a;
}

.history-resolved,
.history-base {
    border-color: #287559 !important;
}

.history-resolved b,
.history-base b {
    color: var(--good);
}

.history-section {
    margin-top: 20px;
    padding: 17px;
    border: 1px solid var(--line);
    border-radius: 15px;
    background: #090f20;
}

.history-section > h3 {
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.history-section > h3 span {
    min-width: 32px;
    padding: 3px 9px;
    border-radius: 99px;
    text-align: center;
    background: #263052;
}

.history-section-new {
    border-color: #a83f55;
}

.history-section-unchanged {
    border-color: #7d6030;
}

.history-section-resolved {
    border-color: #287559;
}

.history-finding {
    margin-top: 12px;
    padding: 15px;
    border: 1px solid #293455;
    border-radius: 12px;
    background: linear-gradient(145deg,#111830,#0d1224);
}

.history-finding h4 {
    margin-top: 0;
}

.history-message {
    margin-top: 14px;
    padding: 14px;
    border-radius: 12px;
}

.history-unchanged-message {
    border: 1px solid #7d6030;
    background: #2b2516;
    color: #ffe3a2;
}

.history-note {
    margin-top: 18px;
    padding: 14px;
    border: 1px solid #315b7b;
    border-radius: 12px;
    background: #0a1726;
    color: #c9ddf3;
}

@media(max-width:900px) {
    .history-summary {
        grid-template-columns: 1fr;
    }
}

@media print {
    .history-summary > div,
    .history-section,
    .history-finding,
    .history-note,
    .history-message {
        background: #fff !important;
        color: #000 !important;
        box-shadow: none !important;
        break-inside: avoid;
    }
}

/* Tobi VSS Scanner 1.3 - Befundmanagement */
.finding-management-summary .card {
    min-width: 145px;
}

.overdue-card {
    border-color: #8e3248;
}

.overdue-card b {
    color: var(--bad);
}

.finding-overdue-row {
    background: #2b1019;
}

.finding-overdue-row td {
    border-bottom-color: #6e293c;
}

.success-panel {
    border-color: #287559;
    background: #102a22;
    color: #c9ffe7;
}

table small {
    color: var(--muted);
    white-space: normal;
}

@media print {
    .finding-management-summary {
        grid-template-columns: repeat(3,1fr);
    }

    .finding-overdue-row {
        background: #fff !important;
    }
}

/* Tobi VSS Scanner 1.3 Stufe 3 */
.management-heading {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 24px;
}

.management-heading h2 {
    margin-top: 0;
    margin-bottom: 4px;
}

.management-heading p {
    margin-top: 0;
    color: var(--muted);
}

.management-score {
    min-width: 160px;
    text-align: right;
}

.management-score b,
.management-score span,
.management-score small {
    display: block;
}

.management-score b {
    color: var(--cyan);
    font-size: 38px;
    line-height: 1;
}

.management-score span {
    margin-top: 7px;
    color: var(--muted);
}

.management-score small {
    margin-top: 5px;
    font-weight: 700;
}

.management-cards {
    display: grid;
    grid-template-columns: repeat(auto-fit,minmax(145px,1fr));
    gap: 13px;
    margin: 18px 0;
}

.management-card {
    display: block;
    padding: 16px;
    border: 1px solid var(--line);
    border-radius: 13px;
    background: #0b1124;
    color: #eef2ff;
}

.management-card span,
.management-card b {
    display: block;
}

.management-card span {
    color: var(--muted);
}

.management-card b {
    margin-top: 4px;
    color: var(--cyan);
    font-size: 29px;
}

.management-card-danger {
    border-color: #8e3248;
}

.management-card-danger b {
    color: var(--bad);
}

.management-card-warn {
    border-color: #7d6030;
}

.management-card-warn b {
    color: var(--warn);
}

.management-card-good {
    border-color: #287559;
}

.management-card-good b {
    color: var(--good);
}

.latest-scan-line {
    margin-bottom: 0;
    padding-top: 13px;
    border-top: 1px solid var(--line);
}

@media(max-width:900px) {
    .management-heading {
        display: block;
    }

    .management-score {
        margin-top: 18px;
        text-align: left;
    }
}

@media print {
    .management-card,
    .management-heading,
    .latest-scan-line {
        background: #fff !important;
        color: #000 !important;
        box-shadow: none !important;
        break-inside: avoid;
    }

    .management-card span,
    .management-heading p,
    .management-score span {
        color: #333 !important;
    }
}

/* Tobi VSS Scanner 1.4 Stufe 1 */
.header-evidence {
    margin-bottom: 7px;
    padding: 7px 9px;
    border: 1px solid #293455;
    border-radius: 8px;
    background: #0a1022;
    color: #cdd8ff;
    white-space: normal;
    overflow-wrap: anywhere;
}

.header-evidence:last-child {
    margin-bottom: 0;
}

@media print {
    .header-evidence {
        background: #fff !important;
        color: #000 !important;
        border-color: #aaa !important;
    }
}

/* Tobi VSS Scanner 1.4 Stufe 2 */
.site-metadata-panel {
    scroll-margin-top: 20px;
}

.metadata-grid {
    display: grid;
    grid-template-columns: repeat(3,minmax(0,1fr));
    gap: 15px;
}

.metadata-card {
    min-width: 0;
    padding: 17px;
    border: 1px solid var(--line);
    border-radius: 14px;
    background: #0a1022;
}

.metadata-card h3 {
    margin-top: 0;
}

.metadata-card p,
.metadata-list div {
    overflow-wrap: anywhere;
}

.metadata-list {
    display: grid;
    gap: 7px;
}

.metadata-list div {
    padding: 8px 9px;
    border: 1px solid #293455;
    border-radius: 8px;
    background: #0e152b;
}

@media(max-width:1100px) {
    .metadata-grid {
        grid-template-columns: 1fr;
    }
}

@media print {
    .metadata-card,
    .metadata-list div {
        background: #fff !important;
        color: #000 !important;
        border-color: #aaa !important;
        break-inside: avoid;
    }
}

/* Tobi VSS Scanner 1.6 - Transport und Redirects */
.transport-card {
    margin-bottom: 18px;
    padding: 18px;
    border: 1px solid #315b7b;
    border-radius: 15px;
    background:
        linear-gradient(145deg,#0d1830,#0a1022);
}

.transport-card h3 {
    margin-top: 0;
}

.transport-summary {
    display: grid;
    grid-template-columns:
        repeat(4,minmax(0,1fr));
    gap: 12px;
    margin-bottom: 16px;
}

.transport-summary > div {
    min-width: 0;
    padding: 13px;
    border: 1px solid var(--line);
    border-radius: 11px;
    background: #0a1022;
}

.transport-summary span,
.transport-summary b {
    display: block;
}

.transport-summary span {
    color: var(--muted);
}

.transport-summary b {
    margin-top: 4px;
    overflow-wrap: anywhere;
}

.redirect-chain {
    display: grid;
    gap: 10px;
}

.redirect-step {
    display: grid;
    grid-template-columns: 60px 1fr;
    gap: 12px;
    align-items: start;
    padding: 13px;
    border: 1px solid #293455;
    border-radius: 11px;
    background: #0d1429;
}

.redirect-step p {
    margin: 5px 0 0;
    overflow-wrap: anywhere;
}

.redirect-status {
    display: inline-grid;
    place-items: center;
    min-height: 42px;
    border-radius: 10px;
    background: #25335d;
    color: #fff;
    font-weight: 800;
}

@media(max-width:1000px) {
    .transport-summary {
        grid-template-columns: 1fr;
    }
}

@media print {
    .transport-card,
    .transport-summary > div,
    .redirect-step {
        background: #fff !important;
        color: #000 !important;
        border-color: #aaa !important;
        box-shadow: none !important;
        break-inside: avoid;
    }
}

/* Tobi VSS Scanner 1.6 Stufe 2 - Kundenbericht */
.customer-report {
    max-width: 1180px;
    margin: 0 auto;
}

.customer-report-cover,
.customer-report-section {
    margin: 18px 0;
    padding: 26px;
    border: 1px solid var(--line);
    border-radius: 18px;
    background: linear-gradient(145deg,#111830,#0d1224);
}

.customer-report-cover {
    background:
        radial-gradient(circle at 85% 0,#17399b 0,transparent 38%),
        linear-gradient(145deg,#101731,#0c1123);
}

.customer-report-brand {
    display: flex;
    align-items: center;
    gap: 20px;
}

.customer-report-brand img {
    width: 135px;
    border-radius: 16px;
}

.customer-report-company {
    font-size: 20px;
    font-weight: 800;
}

.customer-report-title {
    margin: 38px 0 25px;
}

.customer-report-title span {
    color: var(--cyan);
    letter-spacing: 2px;
    font-size: 12px;
    font-weight: 800;
}

.customer-report-title h1 {
    margin: 7px 0 0;
    font-size: 36px;
}

.customer-report-title h2 {
    margin: 2px 0 0;
    color: var(--muted);
}

.customer-report-cover-grid,
.customer-report-data,
.customer-report-kpis {
    display: grid;
    grid-template-columns: repeat(4,minmax(0,1fr));
    gap: 12px;
}

.customer-report-cover-grid > div,
.customer-report-data > div,
.customer-report-kpis > div {
    min-width: 0;
    padding: 14px;
    border: 1px solid var(--line);
    border-radius: 11px;
    background: #0a1022;
}

.customer-report-cover-grid span,
.customer-report-data span,
.customer-report-kpis span {
    display: block;
    color: var(--muted);
}

.customer-report-cover-grid b,
.customer-report-data b,
.customer-report-kpis b {
    display: block;
    margin-top: 4px;
    overflow-wrap: anywhere;
}

.customer-report-kpis b {
    color: var(--cyan);
    font-size: 27px;
}

.customer-report-score {
    display: flex;
    align-items: center;
    gap: 14px;
    margin-top: 22px;
}

.customer-report-score span,
.customer-report-score b {
    display: block;
}

.customer-report-score b {
    font-size: 42px;
}

.customer-report-light {
    width: 35px;
    height: 35px;
    border-radius: 50%;
}

.customer-report-score-green .customer-report-light {
    background: var(--good);
    box-shadow: 0 0 25px var(--good);
}

.customer-report-score-yellow .customer-report-light {
    background: var(--warn);
    box-shadow: 0 0 25px var(--warn);
}

.customer-report-score-orange .customer-report-light,
.customer-report-score-red .customer-report-light {
    background: var(--bad);
    box-shadow: 0 0 25px var(--bad);
}

.customer-report-section h2 {
    margin-top: 0;
}

.customer-report-finding {
    margin: 14px 0;
    padding: 18px;
    border: 1px solid #303a60;
    border-radius: 13px;
    background: #0b1124;
}

.customer-report-finding-head {
    display: flex;
    gap: 12px;
    align-items: center;
}

.customer-report-finding-head span {
    padding: 4px 8px;
    border-radius: 99px;
    background: #273257;
    color: #fff;
    font-size: 11px;
    font-weight: 800;
}

.customer-report-measure,
.customer-report-note {
    margin-top: 13px;
    padding: 13px;
    border: 1px solid #315b7b;
    border-radius: 10px;
    background: #0a1726;
}

.customer-report-redirect {
    display: flex;
    gap: 12px;
    flex-wrap: wrap;
    margin-top: 9px;
    padding: 10px 12px;
    border: 1px solid var(--line);
    border-radius: 9px;
    background: #0b1124;
}

.customer-report-signline {
    margin-top: 60px;
    padding-top: 8px;
    width: 330px;
    border-top: 1px solid #8390ba;
    color: var(--muted);
}

@media(max-width:900px) {
    .customer-report-cover-grid,
    .customer-report-data,
    .customer-report-kpis {
        grid-template-columns: 1fr;
    }

    .customer-report-brand {
        align-items: flex-start;
    }
}

@media print {
    @page {
        size: A4;
        margin: 13mm;
    }

    .report-no-print,
    aside,
    .app > header,
    footer,
    .title {
        display: none !important;
    }

    .app {
        margin: 0 !important;
    }

    .content {
        padding: 0 !important;
    }

    .customer-report {
        max-width: none !important;
        color: #000 !important;
    }

    .customer-report-cover,
    .customer-report-section,
    .customer-report-cover-grid > div,
    .customer-report-data > div,
    .customer-report-kpis > div,
    .customer-report-finding,
    .customer-report-measure,
    .customer-report-note,
    .customer-report-redirect {
        background: #fff !important;
        color: #000 !important;
        box-shadow: none !important;
        border-color: #aaa !important;
    }

    .customer-report-section,
    .customer-report-finding,
    .customer-report-measure {
        break-inside: avoid;
    }

    .customer-report-cover {
        min-height: 245mm;
        break-after: page;
    }

    .customer-report-cover span,
    .customer-report-data span,
    .customer-report-kpis span,
    .customer-report-signline {
        color: #333 !important;
    }

    .customer-report-kpis b {
        color: #000 !important;
    }

    a {
        color: #000 !important;
        text-decoration: none !important;
    }
}
