/*
 * SPDX-FileCopyrightText: 2026 André Fiedler
 *
 * SPDX-License-Identifier: GPL-3.0-or-later
 */

.altium-renderer-empty {
    min-height: 18rem;
    display: grid;
    place-items: center;
    text-align: center;
    color: var(--altium-renderer-muted, #405662);
    background: var(--altium-renderer-surface, #fffaf5);
    border: 1px solid var(--altium-renderer-border, rgba(95, 112, 124, 0.14));
    border-radius: 8px;
    padding: 2rem;
}

.svg-panel {
    display: grid;
    gap: 1rem;
    color: var(--altium-renderer-text, #22343b);
}

.svg-panel__header {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    align-items: baseline;
    flex-wrap: wrap;
}

.svg-panel__header h3,
.pcb-legend h4,
.bom-panel__header h3,
.altium-3d-summary__header h3 {
    margin: 0;
}

.svg-panel__header p,
.pcb-legend p,
.bom-panel__header p,
.altium-3d-summary__header p {
    margin: 0.35rem 0 0;
    color: var(--altium-renderer-muted, #405662);
}

.schematic-svg,
.pcb-svg {
    width: 100%;
    min-height: 36rem;
    display: block;
    border-radius: 8px;
    background: var(--altium-renderer-canvas, #f7f4ef);
    border: 1px solid var(--altium-renderer-border, rgba(95, 112, 124, 0.14));
}

.schematic-svg {
    --schematic-default-ink-color: #008aa3;
    --schematic-accent-ink-color: #009bb2;
    --schematic-text-color: #121b22;
    --schematic-sheet-label-color: #405662;
    --schematic-power-color: #a44a1b;
    --schematic-port-color: #a44a1b;
    --schematic-alert-color: #c43a68;
    --schematic-fill-color: #f1d8bd;
    --schematic-note-fill-color: #efe4d1;
    --schematic-fill-light-color: #fffaf5;
    --schematic-pin-marker-fill: #edf4f3;
    --schematic-note-border-color: #8a725c;
    --schematic-sheet-backdrop-fill: rgba(253, 251, 248, 0.96);
    --schematic-sheet-backdrop-stroke: rgba(95, 112, 124, 0.12);
    --schematic-sheet-frame-stroke: rgba(95, 112, 124, 0.48);
    --schematic-node-fill: rgba(15, 116, 108, 0.9);
}

.sheet-backdrop {
    fill: var(--schematic-sheet-backdrop-fill);
    stroke: var(--schematic-sheet-backdrop-stroke);
}

.sheet-frame,
.sheet-zone-separator,
.sheet-title-block rect,
.sheet-title-block line {
    fill: none;
    stroke: var(--schematic-sheet-frame-stroke);
    stroke-width: 1;
}

.sheet-title-label,
.sheet-title-value,
.sheet-zone-label {
    font-family: Arial, sans-serif;
}

.sheet-title-label {
    font-size: 6px;
}

.sheet-title-value {
    font-size: 9px;
    font-weight: 600;
}

.sheet-zone-label {
    font-size: 8px;
    font-weight: 500;
}

.schematic-pin-line,
.schematic-port rect,
.schematic-port polygon,
.schematic-cross line,
.schematic-power-port line {
    stroke-width: 1;
}

.schematic-power-port-label {
    font-family: 'Times New Roman', serif;
}

.schematic-node circle,
.schematic-authored-junction {
    fill: var(--schematic-node-fill);
}

.pcb-svg {
    --pcb-board-fill: #d8e8e4;
    --pcb-board-stroke: #0f746c;
    --pcb-surface-copper-fill: rgba(199, 109, 61, 0.15);
    --pcb-subsurface-copper-fill: rgba(114, 84, 62, 0.06);
    --pcb-surface-fill: rgba(199, 109, 61, 0.34);
    --pcb-subsurface-fill: rgba(114, 84, 62, 0.08);
    --pcb-surface-track-color: rgba(199, 82, 45, 0.88);
    --pcb-subsurface-track-color: rgba(112, 84, 62, 0.2);
    --pcb-copper-fill: rgba(196, 118, 70, 0.24);
    --pcb-copper-solid-fill: rgba(196, 118, 70, 0.78);
    --pcb-track-color: #c7522d;
    --pcb-track-opacity: 1;
    --pcb-via-ring-fill: rgba(232, 236, 233, 0.92);
    --pcb-via-hole-fill: #0f746c;
    --pcb-footprint-fill: rgba(247, 230, 117, 0.14);
    --pcb-footprint-track-color: rgba(237, 172, 36, 1);
    --pcb-detail-paste-fill: rgba(146, 146, 146, 0.94);
    --pcb-detail-paste-stroke: rgba(154, 154, 154, 0.96);
    --pcb-detail-mask-fill: rgba(137, 34, 132, 0.4);
    --pcb-detail-mask-stroke: rgba(137, 34, 132, 0.82);
    --pcb-detail-mechanical-fill: rgba(148, 160, 166, 0.32);
    --pcb-detail-mechanical-stroke: rgba(96, 110, 118, 0.86);
    --pcb-detail-drill-fill: rgba(79, 87, 93, 0.46);
    --pcb-detail-drill-stroke: rgba(42, 50, 56, 0.88);
    --pcb-detail-fill: rgba(150, 160, 166, 0.38);
    --pcb-detail-stroke: rgba(80, 92, 100, 0.82);
    --pcb-dimension-color: rgba(39, 88, 111, 0.78);
    --pcb-dimension-text: #22343b;
    --pcb-text-knockout-fill: rgba(248, 246, 239, 0.96);
    --pcb-component-top-fill: rgba(244, 219, 198, 0.92);
    --pcb-component-bottom-fill: rgba(15, 116, 108, 0.84);
    --pcb-component-stroke: rgba(110, 64, 38, 0.28);
    --pcb-component-text: #22343b;
    background:
        radial-gradient(
            circle at top,
            rgba(255, 255, 255, 0.72),
            transparent 44%
        ),
        linear-gradient(180deg, #f7f4ef 0%, #f0ece4 100%);
}

.pcb-layout {
    display: grid;
    grid-template-columns: minmax(180px, 220px) 1fr;
    gap: 1rem;
    align-items: start;
}

.pcb-legend {
    padding: 1rem;
    border-radius: 8px;
    background: var(--altium-renderer-surface, rgba(255, 255, 255, 0.72));
    border: 1px solid var(--altium-renderer-border, rgba(95, 112, 124, 0.14));
}

.pcb-legend ul {
    margin: 0.8rem 0 0;
    padding-left: 1rem;
    color: var(--altium-renderer-muted, #405662);
}

.board-outline {
    fill: var(--pcb-board-fill);
    stroke: var(--pcb-board-stroke);
    stroke-width: 18;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.board-outline--stroke {
    fill: none;
    stroke-linejoin: round;
}

.pcb-polygon,
.pcb-fill,
.pcb-region {
    stroke: none;
}

.pcb-track,
.pcb-arc,
.pcb-footprint-track,
.pcb-footprint-arc,
.pcb-detail-track,
.pcb-detail-arc {
    fill: none;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.pcb-track,
.pcb-arc {
    opacity: var(--pcb-track-opacity, 1);
}

.pcb-copper--surface .pcb-polygon {
    fill: var(--pcb-surface-copper-fill);
}

.pcb-copper--subsurface .pcb-polygon {
    fill: var(--pcb-subsurface-copper-fill);
}

.pcb-copper--surface .pcb-fill,
.pcb-copper--surface .pcb-region {
    fill: var(--pcb-surface-fill);
}

.pcb-copper--subsurface .pcb-fill,
.pcb-copper--subsurface .pcb-region {
    fill: var(--pcb-subsurface-fill);
}

.pcb-copper--surface .pcb-track,
.pcb-copper--surface .pcb-arc {
    stroke: var(--pcb-surface-track-color);
}

.pcb-copper--subsurface .pcb-track,
.pcb-copper--subsurface .pcb-arc {
    stroke: var(--pcb-subsurface-track-color);
}

.pcb-copper--subsurface {
    opacity: 0.45;
}

.pcb-via__pad,
.pcb-pad__ring {
    fill: var(--pcb-via-ring-fill);
}

.pcb-via__hole,
.pcb-pad__hole,
.pcb-pad__hole--slot {
    fill: var(--pcb-via-hole-fill);
}

.pcb-pad--smd .pcb-pad__ring {
    fill: var(--pcb-copper-solid-fill);
}

.pcb-copper--subsurface .pcb-pad--smd .pcb-pad__ring {
    fill: var(--pcb-subsurface-track-color);
}

.pcb-footprint-fill {
    fill: var(--pcb-footprint-fill);
}

.pcb-footprint-region {
    fill: var(--pcb-footprint-region-fill, var(--pcb-footprint-track-color));
}

.pcb-footprint-track,
.pcb-footprint-arc {
    stroke: var(--pcb-footprint-track-color);
}

.pcb-detail-fill,
.pcb-detail-region {
    fill: var(--pcb-detail-fill);
}

.pcb-detail-track,
.pcb-detail-arc {
    stroke: var(--pcb-detail-stroke);
}

.pcb-detail-fill--paste,
.pcb-detail-region--paste {
    fill: var(--pcb-detail-paste-fill);
}

.pcb-detail-track--paste,
.pcb-detail-arc--paste {
    stroke: var(--pcb-detail-paste-stroke);
}

.pcb-detail-fill--mask,
.pcb-detail-region--mask,
.pcb-detail-fill--solder-mask,
.pcb-detail-region--solder-mask {
    fill: var(--pcb-detail-mask-fill);
}

.pcb-detail-track--mask,
.pcb-detail-arc--mask,
.pcb-detail-track--solder-mask,
.pcb-detail-arc--solder-mask {
    stroke: var(--pcb-detail-mask-stroke);
}

.pcb-detail-fill--mechanical,
.pcb-detail-region--mechanical {
    fill: var(--pcb-detail-mechanical-fill);
}

.pcb-detail-track--mechanical,
.pcb-detail-arc--mechanical {
    stroke: var(--pcb-detail-mechanical-stroke);
}

.pcb-detail-fill--drill,
.pcb-detail-region--drill {
    fill: var(--pcb-detail-drill-fill);
}

.pcb-detail-track--drill,
.pcb-detail-arc--drill {
    stroke: var(--pcb-detail-drill-stroke);
}

.pcb-dimensions {
    pointer-events: none;
}

.pcb-dimension__measure,
.pcb-dimension__extension,
.pcb-dimension__leader,
.pcb-dimension__arc {
    fill: none;
    stroke: var(--pcb-dimension-color);
    stroke-width: 5;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.pcb-dimension__extension,
.pcb-dimension__leader {
    stroke-width: 3;
    stroke-dasharray: 16 10;
}

.pcb-dimension__center {
    fill: var(--pcb-dimension-color);
}

.pcb-dimension__label {
    fill: var(--pcb-dimension-text);
    font-family: Arial, sans-serif;
    font-size: 30px;
    font-weight: 700;
    text-anchor: middle;
    dominant-baseline: central;
}

.pcb-component__body {
    fill: var(--pcb-component-top-fill);
    stroke: var(--pcb-component-stroke);
    stroke-width: 3;
}

.pcb-component--bottom .pcb-component__body {
    fill: var(--pcb-component-bottom-fill);
}

.pcb-text {
    font-size: 29px;
    fill: var(--pcb-footprint-track-color);
    font-weight: 700;
    font-family: Arial, sans-serif;
    pointer-events: none;
}

.pcb-text__knockout-fill {
    fill: var(--pcb-text-knockout-fill);
}

.pcb-text__knockout-glyphs {
    fill: #000;
}

.pcb-barcode__background,
.pcb-barcode__bar {
    fill: var(--pcb-footprint-track-color);
}

.pcb-text--barcode-inverted .pcb-barcode__background {
    fill: var(--pcb-text-knockout-fill);
}

.pcb-text--barcode-inverted .pcb-barcode__bar {
    fill: var(--pcb-footprint-track-color);
}

.pcb-barcode__caption {
    fill: var(--pcb-footprint-track-color);
    font-family: Arial, sans-serif;
    font-weight: 700;
}

.bom-panel {
    display: grid;
    gap: 1rem;
    color: var(--altium-renderer-text, #22343b);
}

.bom-table {
    width: 100%;
    border-collapse: collapse;
    overflow: hidden;
    border-radius: 8px;
    background: var(--altium-renderer-surface, rgba(255, 255, 255, 0.7));
}

.bom-table th,
.bom-table td {
    padding: 0.8rem 0.9rem;
    border-bottom: 1px solid
        var(--altium-renderer-border, rgba(95, 112, 124, 0.12));
    text-align: left;
    vertical-align: top;
}

.bom-table th {
    color: var(--altium-renderer-muted, #405662);
    font-size: 0.86rem;
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.altium-3d-summary {
    display: grid;
    gap: 1rem;
    padding: 1rem;
    border-radius: 8px;
    color: var(--altium-renderer-text, #22343b);
    background: var(--altium-renderer-surface, rgba(255, 255, 255, 0.72));
    border: 1px solid var(--altium-renderer-border, rgba(95, 112, 124, 0.14));
}

.altium-3d-summary--empty {
    color: var(--altium-renderer-muted, #405662);
}

.altium-3d-summary__stats {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.75rem;
    margin: 0;
}

.altium-3d-summary__stats div {
    padding: 0.85rem;
    border-radius: 8px;
    background: var(--altium-renderer-panel, rgba(255, 255, 255, 0.68));
    border: 1px solid var(--altium-renderer-border, rgba(95, 112, 124, 0.12));
}

.altium-3d-summary__stats dt {
    color: var(--altium-renderer-muted, #405662);
    font-size: 0.78rem;
    text-transform: uppercase;
    letter-spacing: 0.06em;
}

.altium-3d-summary__stats dd {
    margin: 0.35rem 0 0;
    font-weight: 700;
}

@media (max-width: 1024px) {
    .pcb-layout {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 760px) {
    .schematic-svg,
    .pcb-svg {
        min-height: 26rem;
    }

    .altium-3d-summary__stats {
        grid-template-columns: 1fr;
    }
}
