/* ============================================
   FreyAI Visions - Print Stylesheet
   Fixes #260: No print styles — broken layouts,
   sidebar prints, tables truncated.

   This file is loaded with media="print" so it
   only applies when printing or print-previewing.
   It overrides the dark Industrial Luxury theme
   with a clean, ink-efficient light layout.
   ============================================ */

/* ============================================
   1. Global Color Overrides
   Dark-to-light inversion for print
   ============================================ */

:root {
    --bg-dark: #ffffff;
    --bg-sidebar: #ffffff;
    --bg-card: #ffffff;
    --bg-hover: #f5f5f5;
    --bg-input: #ffffff;
    --bg-primary: #ffffff;
    --bg-secondary: #f5f5f5;
    --surface: #ffffff;
    --surface-dark: #ffffff;
    --surface-light: #f5f5f5;
    --input-bg: #ffffff;
    --bg-muted: #f5f5f5;

    --text-primary: #1a1a1a;
    --text-secondary: #4a4a4a;
    --text-muted: #6a6a6a;

    --border-color: #d0d0d0;

    --accent-primary: #8b6344;
    --accent-primary-hover: #8b6344;
    --accent-primary-light: rgba(139, 99, 68, 0.08);

    --accent-success: #2d6e3f;
    --accent-danger: #a83232;
    --accent-warning: #8a6d20;
    --accent-info: #3a5f8a;

    --shadow-sm: none;
    --shadow-md: none;
    --shadow-lg: none;
}

* {
    print-color-adjust: economy !important;
    -webkit-print-color-adjust: economy !important;
    color-adjust: economy !important;
}

body {
    background: #ffffff !important;
    color: #1a1a1a !important;
    font-size: 11pt !important;
    line-height: 1.4 !important;
    -webkit-font-smoothing: auto !important;
    -moz-osx-font-smoothing: auto !important;
}

/* Remove fractalNoise texture overlay */
body::before {
    display: none !important;
}

/* ============================================
   2. Hide Non-Printable UI Chrome
   Sidebar, nav, FABs, chat, modals, toasts,
   interactive controls, scroll indicators
   ============================================ */

.sidebar,
.mobile-header,
.nav-menu,
.view-header .header-actions,
.form-actions,
.modal-close,
.modal-overlay,
.sidebar-overlay,
.notification-bell-container,
.notification-panel,
.boomer-guide-fab,
.boomer-guide-fab-badge,
.boomer-guide-panel,
#freyai-chat-toggle,
.chatbot-container,
.consent-banner,
.toast-container,
.tooltip,
.dropdown-menu,
.context-menu,
.skip-to-content,
.activity-indicator,
.tutorial-overlay,
.skeleton-loader,
.loading-spinner,
.btn-icon,
.btn-ghost,
[data-print-hide],
.no-print {
    display: none !important;
}

/* Hide all fixed/sticky positioned elements (FABs, toasts, etc.) */
[style*="position: fixed"],
[style*="position:fixed"] {
    position: static !important;
}

/* ============================================
   3. Layout — Full Width Content
   Remove sidebar offset, make content fill page
   ============================================ */

.app-container {
    display: block !important;
    grid-template-columns: 1fr !important;
}

.main-content {
    margin: 0 !important;
    margin-left: 0 !important;
    padding: 0 !important;
    width: 100% !important;
    max-width: 100% !important;
    overflow: visible !important;
    min-height: auto !important;
}

.content-area,
.view-content {
    padding: 0 !important;
    max-width: 100% !important;
}

/* ============================================
   4. Typography for Print
   ============================================ */

h1, h2, h3, h4, h5, h6 {
    color: #1a1a1a !important;
    page-break-after: avoid;
    break-after: avoid;
}

h1 { font-size: 18pt !important; }
h2 { font-size: 15pt !important; }
h3 { font-size: 13pt !important; }
h4 { font-size: 11pt !important; }

p, li, td, th, dd, dt {
    color: #1a1a1a !important;
}

/* ============================================
   5. Links — Show URLs After Text
   ============================================ */

a[href]::after {
    content: " (" attr(href) ")";
    font-size: 9pt;
    color: #6a6a6a !important;
    font-weight: normal;
    word-break: break-all;
}

/* Don't show URLs for internal nav, buttons, or anchors */
a[href^="#"]::after,
a[href^="javascript"]::after,
a.btn::after,
a.nav-link::after,
a.sidebar-link::after,
.rechnung-preview a::after,
.angebot-header-info a::after,
nav a::after {
    content: none !important;
}

a {
    color: #1a1a1a !important;
    text-decoration: underline !important;
}

/* ============================================
   6. Cards & Containers
   Remove dark backgrounds, minimal borders
   ============================================ */

.card,
.item-card,
.stat-card,
.widget-card,
.detail-card,
.angebot-customer-card,
.angebot-detail-section {
    background: #ffffff !important;
    border: 1px solid #d0d0d0 !important;
    box-shadow: none !important;
    page-break-inside: avoid;
    break-inside: avoid;
    margin-bottom: 8pt !important;
}

/* ============================================
   7. Tables — Full Width, No Truncation
   ============================================ */

table {
    width: 100% !important;
    border-collapse: collapse !important;
    font-size: 10pt !important;
    page-break-inside: auto;
}

thead {
    display: table-header-group;
}

tfoot {
    display: table-footer-group;
}

tr {
    page-break-inside: avoid;
    break-inside: avoid;
}

th {
    background: #f0f0f0 !important;
    color: #1a1a1a !important;
    border-bottom: 2px solid #1a1a1a !important;
    padding: 6pt 8pt !important;
    text-align: left;
    font-weight: 600;
}

td {
    padding: 5pt 8pt !important;
    border-bottom: 1px solid #d0d0d0 !important;
    background: transparent !important;
}

/* Rechnung / Invoice table */
.rechnung-table {
    width: 100% !important;
}

.rechnung-table th {
    background: #f0f0f0 !important;
    color: #1a1a1a !important;
    font-size: 10pt !important;
}

.rechnung-table td {
    font-size: 10pt !important;
}

.rechnung-table .text-right,
.rechnung-totals .text-right {
    text-align: right !important;
}

/* Angebot / Quote table */
.angebot-bom-table {
    width: 100% !important;
}

.angebot-bom-table th {
    background: #f0f0f0 !important;
    color: #1a1a1a !important;
}

/* Portal quote table */
.portal-quote-table {
    width: 100% !important;
}

/* Data/report tables */
.report-table,
.po-detail-table,
.we-items-table,
.mapping-table,
.conflict-diff-table {
    width: 100% !important;
}

/* Table container overflow fix */
.table-responsive,
.table-container,
[style*="overflow-x"],
[style*="overflow: auto"] {
    overflow: visible !important;
    max-width: 100% !important;
}

/* ============================================
   8. Invoice (Rechnung) Print Layout
   Most commonly printed view
   ============================================ */

.rechnung-preview {
    padding: 0 !important;
    margin: 0 !important;
    border: none !important;
    box-shadow: none !important;
    background: #ffffff !important;
    page-break-inside: avoid;
}

.rechnung-header {
    display: flex !important;
    justify-content: space-between !important;
    margin-bottom: 16pt !important;
    padding-bottom: 8pt !important;
    border-bottom: 2px solid #1a1a1a !important;
}

.rechnung-firma {
    color: #1a1a1a !important;
}

.rechnung-nummer h3 {
    color: #1a1a1a !important;
    font-size: 14pt !important;
}

.rechnung-nummer p {
    color: #4a4a4a !important;
}

.rechnung-adressen {
    margin-bottom: 12pt !important;
}

.rechnung-label {
    color: #4a4a4a !important;
    font-weight: 600 !important;
}

.rechnung-totals {
    margin-top: 12pt !important;
    border-top: 1px solid #d0d0d0 !important;
}

.rechnung-totals .total-row {
    font-weight: 700 !important;
    font-size: 12pt !important;
    color: #1a1a1a !important;
    border-top: 2px solid #1a1a1a !important;
}

.rechnung-stueckliste {
    page-break-inside: avoid;
    break-inside: avoid;
}

.rechnung-stueckliste h4 {
    color: #1a1a1a !important;
}

/* ============================================
   9. Quote (Angebot) Print Layout
   ============================================ */

.angebot-header-info {
    color: #1a1a1a !important;
    margin-bottom: 12pt !important;
}

.angebot-summary {
    background: #f5f5f5 !important;
    border: 1px solid #d0d0d0 !important;
    padding: 12pt !important;
    margin-bottom: 12pt !important;
    page-break-inside: avoid;
    break-inside: avoid;
}

.angebot-summary .summary-row {
    color: #1a1a1a !important;
}

.angebot-doc-chain {
    page-break-inside: avoid;
    break-inside: avoid;
}

/* ============================================
   10. Status Badges — Print-Friendly
   Text-only, no colored backgrounds
   ============================================ */

.status-badge,
.badge {
    background: transparent !important;
    border: 1px solid #6a6a6a !important;
    color: #1a1a1a !important;
    font-size: 9pt !important;
    padding: 1pt 4pt !important;
    print-color-adjust: exact !important;
    -webkit-print-color-adjust: exact !important;
}

/* ============================================
   11. Buttons — Hide Most, Keep Print Button
   ============================================ */

.btn,
button:not([data-print-show]) {
    display: none !important;
}

/* Show print-specific button text content */
[data-print-show] {
    display: inline-block !important;
}

/* ============================================
   12. Forms & Inputs — Read-Only Appearance
   ============================================ */

input,
textarea,
select {
    border: 1px solid #d0d0d0 !important;
    background: #ffffff !important;
    color: #1a1a1a !important;
    box-shadow: none !important;
}

/* ============================================
   13. Images
   ============================================ */

img {
    max-width: 100% !important;
    page-break-inside: avoid;
    break-inside: avoid;
}

/* Company logo for print header */
.company-logo,
.rechnung-logo,
.print-logo {
    max-height: 60pt !important;
    width: auto !important;
}

/* ============================================
   14. Page Break Helpers
   ============================================ */

.page-break-before {
    page-break-before: always;
    break-before: page;
}

.page-break-after {
    page-break-after: always;
    break-after: page;
}

.no-page-break {
    page-break-inside: avoid;
    break-inside: avoid;
}

/* Avoid orphan/widow headings */
h1, h2, h3, h4 {
    orphans: 3;
    widows: 3;
}

p {
    orphans: 2;
    widows: 2;
}

/* ============================================
   15. Dashboard Widgets — Compact Print
   ============================================ */

.dashboard-grid,
.widget-grid,
.stats-grid {
    display: block !important;
}

.dashboard-grid > *,
.widget-grid > *,
.stats-grid > * {
    margin-bottom: 8pt !important;
    page-break-inside: avoid;
    break-inside: avoid;
}

/* ============================================
   16. Kanban — Linearize for Print
   ============================================ */

.kanban-board {
    display: block !important;
    overflow: visible !important;
}

.kanban-column {
    display: block !important;
    width: 100% !important;
    margin-bottom: 12pt !important;
    page-break-inside: avoid;
    break-inside: avoid;
}

/* ============================================
   17. Timeline — Clean Print
   ============================================ */

.timeline-entry {
    page-break-inside: avoid;
    break-inside: avoid;
}

/* ============================================
   18. Field App / Aufmass — Print Layouts
   ============================================ */

.aufmass-positions-table,
.aufmass-summary-table {
    width: 100% !important;
    page-break-inside: auto;
}

.aufmass-positions-table tr,
.aufmass-summary-table tr {
    page-break-inside: avoid;
    break-inside: avoid;
}

/* ============================================
   19. Page Margins & Headers/Footers
   ============================================ */

@page {
    margin: 15mm 12mm 20mm 12mm;
    size: A4;
}

@page :first {
    margin-top: 10mm;
}

/* ============================================
   20. Utility Classes for JS-Driven Print
   ============================================ */

/* Elements that should ONLY appear in print */
.print-only {
    display: block !important;
}

/* Header shown only when printing */
.print-header {
    display: block !important;
    text-align: center;
    margin-bottom: 12pt;
    padding-bottom: 8pt;
    border-bottom: 1px solid #d0d0d0;
}

.print-footer {
    display: block !important;
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    text-align: center;
    font-size: 8pt;
    color: #6a6a6a;
    padding-top: 4pt;
    border-top: 1px solid #d0d0d0;
}
