/* Fob Designer v31: scoped site theme and print rules. */
.kf-designer td.date {
            white-space: nowrap;
        }

        .kf-wrap {
            max-width: 1900px;
            margin: 0 auto;
            padding: 10px;
        }

        .kf-title-row {
            max-width: 1900px;
            margin: 0 auto;
            padding: 10px;
            display: grid;
            grid-template-columns: 1fr minmax(300px, 560px);
            gap: 12px;
            align-items: start;
        }

        .kf-title-row h1 {
            margin: 0;
        }

        .kf-profile-panel {
            border: 1px solid var(--border);
            background: var(--panel-bg);
            padding: 10px;
        }

        .kf-profile-actions {
            display: grid;
            grid-template-columns: 1fr 1fr;
            gap: 8px;
        }

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

        .kf-panel {
            border: 1px solid var(--border);
            background: var(--panel-bg);
            padding: 12px;
            margin-bottom: 12px;
        }

        .kf-grid {
            display: grid;
            grid-template-columns: repeat(auto-fit, minmax(170px, 1fr));
            gap: 10px;
            align-items: end;
        }

        .kf-fob-toolbar {
            display: grid;
            grid-template-columns: minmax(160px, 260px) 1fr;
            gap: 10px;
            align-items: center;
            margin-bottom: 10px;
        }

        .kf-top-layout {
            display: grid;
            grid-template-columns: minmax(0, 2fr) minmax(280px, 1fr);
            gap: 12px;
            align-items: start;
        }

        .kf-fob-editor {
            display: block;
        }

        .kf-side-options {
            border: 1px dashed var(--border);
            background: var(--panel-strong);
            padding: 10px;
        }

        .kf-side-options h3 {
            margin-top: 0;
        }

        @media (max-width: 1050px) {
            .kf-top-layout {
                grid-template-columns: 1fr;
            }
        }

        .kf-fob-list {
            display: grid;
            grid-template-columns: 1fr;
            gap: 10px;
        }

        .kf-fob-row {
            display: grid;
            grid-template-columns: 1fr 78px;
            gap: 8px;
            align-items: start;
            border: 1px dashed var(--border);
            padding: 8px;
            background: var(--panel-strong);
        }

        @media (min-width: 900px) {
            .kf-fob-list {
                grid-template-columns: repeat(2, 1fr);
            }
        }

        @media (min-width: 1300px) {
            .kf-fob-list {
                grid-template-columns: repeat(3, 1fr);
            }
        }

        @media (min-width: 1700px) {
            .kf-fob-list {
                grid-template-columns: repeat(4, 1fr);
            }
        }

        .kf-work-area {
            background: #ffffff;
            color: #000000;
            border: 2px solid #777777;
            overflow: auto;
            min-height: 360px;
            padding: 8px;
        }

        #svgPreview {
            background: #ffffff;
            display: block;
            max-width: 100%;
            height: auto;
        }

        .kf-actions {
            display: grid;
            grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
            gap: 10px;
        }

        .kf-small {
            font-size: 0.9em;
        }

        .kf-warning {
            color: var(--warn);
            min-height: 1.2em;
        }

        .kf-metrics {
            border: 1px dashed var(--border);
            padding: 8px;
            margin-top: 10px;
            font-weight: bold;
        }

        .kf-meta-note {
            color: var(--muted);
            font-size: 0.9em;
        }

        .kf-row-buttons {
            display: grid;
            grid-template-columns: 1fr;
            gap: 6px;
        }

        .kf-bin {
            color: var(--danger);
            border-color: var(--danger);
            font-weight: bold;
        }

        .kf-add {
            font-size: 1.2em;
        }

        .kf-panel label {
            display: block;
            font-weight: bold;
            margin-bottom: 4px;
        }

        .kf-panel input,
        .kf-panel textarea,
        .kf-panel select,
        .kf-panel button {
            width: 100%;
            box-sizing: border-box;
        }

        .kf-panel textarea {
            min-height: 90px;
            resize: vertical;
            font-family: Arial, Helvetica, sans-serif;
        }

        .kf-panel textarea:disabled,
        .kf-panel input:disabled {
            opacity: 0.7;
        }

        .kf-generated-preview {
            border-top: 1px dashed var(--border);
            margin-top: 6px;
            padding-top: 6px;
            font-size: 0.85em;
            color: var(--muted);
            white-space: pre-wrap;
            word-break: break-word;
        }

        .kf-help-link {
            display: inline-block;
            margin-top: 8px;
        }

        @media print {
            body {
                background: #ffffff;
            }

            .kf-panel:not(.print-this),
            .kf-title-row {
                display: none;
            }

            .kf-work-area {
                border: none;
                padding: 0;
                overflow: visible;
            }
        }

/* Framework chrome is excluded from the same-page front/rear print preview. */
@media print {
  .site-chrome, .site-footer, .kf-intro { display: none !important; }
  main.shell, .kf-wrap { max-width: none; margin: 0; padding: 0; }
  .print-this { background: white; color: black; border: 0; padding: 0; margin: 0; }
  .print-this h2 { display: none; }
  #svgPreview { max-width: none; }
}
