.company-page { width: min(1180px, calc(100% - 64px)); margin: 32px auto 64px; }
.company-back { color: var(--bs-secondary-color); text-decoration: none; font-size: .85rem; }
.company-back:hover { color: var(--bs-body-color); }
.company-tile { color: var(--bs-body-color); text-decoration: none; transition: border-color .15s ease, background-color .15s ease; }
.company-tile:hover { color: var(--bs-body-color); border-color: #b79c60; background: var(--bs-tertiary-bg); }
.company-tile:focus-visible { outline: 3px solid #d9bc76; outline-offset: 4px; }
.company-sync { display: flex; align-items: center; gap: 9px; color: var(--bs-secondary-color); font-size: .8rem; text-decoration: none; }
.company-sync-label { display: block; font-weight: 500; }
.company-sync small { display: block; margin-top: 3px; color: var(--bs-secondary-color); }
.company-sync small:empty { display: none; }
.company-sync:hover { color: var(--bs-body-color); }
.status-dot { width: 9px; height: 9px; flex-shrink: 0; border-radius: 50%; background: #919ba3; }
[data-tone="success"] .status-dot { background: #46b88d; box-shadow: 0 0 0 4px #46b88d18; }
[data-tone="warning"] .status-dot { background: #d4ad4c; }
[data-tone="error"] .status-dot { background: #e56f76; }
[data-tone="running"] .status-dot { background: #68a9e8; box-shadow: 0 0 0 4px #68a9e818; }
.company-tabs { display: flex; flex-wrap: wrap; gap: 8px 24px; border-bottom: 1px solid var(--bs-border-color); margin-bottom: 30px; }
.company-tabs a { padding: 14px 2px; color: var(--bs-secondary-color); border-bottom: 2px solid transparent; text-decoration: none; font-size: .9rem; }
.company-tabs a.active { color: #e8d5a1; border-bottom-color: #d9bc76; }
.company-tabs a:hover { color: var(--bs-body-color); }
.company-page :is(a, button):focus-visible { outline: 2px solid #d9bc76; outline-offset: 4px; }
[data-bs-theme="dark"] .company-page .btn-outline-secondary { --bs-btn-color: #c5cbd0; --bs-btn-border-color: #657079; --bs-btn-hover-bg: #424b53; --bs-btn-hover-border-color: #88939c; }
.summary-card, .invoice-panel { border: 1px solid var(--bs-border-color); border-radius: 8px; background: var(--bs-body-bg); }
.summary-card { padding: 24px; background: rgba(255,255,255,.018); }
.summary-card [hidden] { display: none !important; }
.summary-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-bottom: 24px; }
.summary-toggle { border: 1px solid var(--bs-border-color); background: transparent; color: var(--bs-secondary-color); border-radius: 5px; padding: 6px 12px; font: inherit; font-size: .8rem; }
.summary-toggle[aria-pressed="true"] { border-color: #ae975d; background: #d9bc761a; color: #e8d5a1; }
.summary-toggle:hover { border-color: #d9bc76; }
.summary-currency + .summary-currency { border-top: 1px solid var(--bs-border-color); padding-top: 24px; margin-top: 24px; }
.summary-metrics { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.summary-metric { min-width: 0; padding-right: 24px; }
.summary-metric + .summary-metric { padding-left: 24px; border-left: 1px solid var(--bs-border-color); }
.summary-metric:last-child { padding-right: 0; }
.summary-metric h3 { font-size: 1rem; font-weight: 500; margin-bottom: 22px; }
.summary-amount { font-size: clamp(1.2rem, 2.2vw, 1.85rem); font-weight: 600; letter-spacing: -.04em; }
.summary-amount .currency { font-size: .55em; font-weight: 400; color: var(--bs-secondary-color); letter-spacing: 0; }
.summary-values { margin: 0; }
.summary-values > div + div { margin-top: 18px; }
.summary-values dt { color: var(--bs-secondary-color); font-size: .75rem; font-weight: 400; margin-bottom: 4px; }
.summary-values dd { margin-bottom: 0; }
.summary-values .money { white-space: normal; overflow-wrap: anywhere; }
.summary-income .summary-amount { color: #8ed0b8; }
.summary-income .summary-loss { color: #efa3a3; }
.summary-note { margin: 24px 0 0; font-size: .75rem; color: var(--bs-secondary-color); }
.money { white-space: nowrap; font-variant-numeric: tabular-nums; }
.invoice-kind { display: inline-block; padding: 5px 9px; border-radius: 4px; font-size: .74rem; white-space: nowrap; }
.invoice-kind.costs { background: #ab805b20; color: #e7ba94; }
.invoice-kind.issued { background: #4caa8b20; color: #8ed0b8; }
.invoice-table { font-size: .9rem; }
.invoice-table th { color: var(--bs-secondary-color); font-size: .75rem; font-weight: 500; background: rgba(255,255,255,.02); white-space: nowrap; }
.invoice-table :is(th,td) { padding: 16px 20px; }
.invoice-table tbody tr:last-child td { border-bottom: 0; }
.invoice-table td:first-child { min-width: 210px; max-width: 420px; }
.invoice-number { color: var(--bs-body-color); text-decoration: none; font-weight: 500; overflow-wrap: anywhere; }
.invoice-number:hover { color: #e8d5a1; text-decoration: underline; }
.empty-state { padding: 56px 24px; text-align: center; }
.invoice-filters { display: flex; flex-wrap: wrap; gap: 12px; align-items: end; }
.filter-search { flex: 1; min-width: 250px; }
.invoice-paper { background: #fafaf7; color: #252a2d; border-radius: 8px; padding: 40px; margin-top: 24px; }
.invoice-paper .muted { color: #5d666d; }
.invoice-paper hr { border-color: #a6adb1; }
.invoice-paper .table { --bs-table-bg: transparent; --bs-table-color: #252a2d; --bs-table-border-color: #d9ddda; }
.invoice-paper th { font-size: .76rem; color: #5d666d; font-weight: 500; white-space: nowrap; }
.invoice-paper :is(th,td) { padding: 14px 10px; }
.invoice-paper .invoice-total { background: #eceee8; padding: 18px 24px; border-radius: 6px; font-size: 1.2rem; }
.invoice-party { overflow-wrap: anywhere; white-space: pre-line; }
.invoice-meta { display: flex; flex-wrap: wrap; gap: 24px 40px; }
.invoice-meta dt { font-weight: 400; font-size: .78rem; color: #5d666d; margin-bottom: 4px; }
.invoice-meta dd { font-size: .9rem; margin: 0; }
.btn-company { --bs-btn-bg: #d9bc76; --bs-btn-color: #28271f; --bs-btn-border-color: #d9bc76; --bs-btn-hover-bg: #e8ce90; --bs-btn-hover-color: #28271f; --bs-btn-hover-border-color: #e8ce90; --bs-btn-disabled-bg: #d9bc76; --bs-btn-disabled-border-color: #d9bc76; }
.invoice-draft-badge { display: inline-block; border: 1px solid #b69b6055; background: #d9bc7612; color: #cbb785; border-radius: 4px; padding: 4px 9px; font-size: .75rem; white-space: nowrap; }
.draft-info { font-size: .85rem; color: var(--bs-secondary-color); margin-bottom: 24px; }
.invoice-editor { border: 1px solid var(--bs-border-color); border-radius: 8px; overflow: hidden; }
.invoice-editor-section { padding: 24px; }
.invoice-editor-section + .invoice-editor-section { border-top: 1px solid var(--bs-border-color); }
.invoice-editor .form-label { font-size: .78rem; margin-bottom: 7px; }
.invoice-editor .form-control, .invoice-editor .form-select { font-size: .9rem; }
.invoice-editor .form-text { font-size: .75rem; }
.invoice-editor-line { display: grid; grid-template-columns: minmax(160px, 2fr) minmax(76px, .7fr) minmax(76px, .7fr) minmax(100px, 1fr) minmax(94px, .8fr) minmax(125px, 1fr) 28px; gap: 12px; align-items: end; min-width: 0; }
.invoice-editor-line + .invoice-editor-line { margin-top: 20px; padding-top: 20px; border-top: 1px dashed var(--bs-border-color); }
.invoice-editor-line > div { min-width: 0; }
.line-gross output { display: block; min-height: 38px; padding: 8px 0; font-size: .85rem; font-variant-numeric: tabular-nums; overflow-wrap: anywhere; }
.line-remove { align-self: end; min-height: 38px; font-size: 1.3rem; padding: 0; color: var(--bs-secondary-color); }
.line-remove:hover { color: #efa3a3; background: #efa3a310; }
.draft-totals { margin: 0; padding: 20px; border-radius: 6px; background: var(--bs-tertiary-bg); }
.draft-totals > div { display: flex; justify-content: space-between; align-items: baseline; flex-wrap: wrap; gap: 6px 16px; }
.draft-totals > div + div { margin-top: 12px; font-size: .85rem; color: var(--bs-secondary-color); }
.draft-totals dt { font-weight: 400; }
.draft-totals dd { margin: 0; font-variant-numeric: tabular-nums; }
.draft-total-gross dd { font-size: 1.3rem; font-weight: 600; }
.invoice-editor-footer { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 16px; padding: 20px 24px; border-top: 1px solid var(--bs-border-color); }
.draft-paper-notice { padding: 14px; border: 1px solid #c7ad70; border-radius: 4px; color: #6c531c; background: #fff7de; font-size: .85rem; }
.invoice-notes { white-space: pre-line; overflow-wrap: anywhere; }
#invoice-draft-form [hidden] { display: none !important; }
[data-bs-theme="light"] .invoice-draft-badge { color: #776026; }
@media (max-width: 1100px) {
    .invoice-editor-line { grid-template-columns: repeat(4, minmax(0, 1fr)) 28px; }
    .line-description { grid-column: 1 / -1; }
    .line-gross { grid-column: 1 / 5; display: flex; align-items: baseline; gap: 14px; }
    .line-remove { grid-column: 5; grid-row: 2; }
}
@media (max-width: 575px) {
    .invoice-editor-section { padding: 20px 16px; }
    .invoice-editor-line { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .line-description, .line-gross { grid-column: 1 / -1; }
    .line-remove { grid-column: 2; grid-row: 5; justify-self: end; width: 38px; }
    .line-gross { grid-column: 1; grid-row: 5; display: block; }
    .invoice-editor-footer { padding: 20px 16px; }
}
[data-bs-theme="light"] .company-tabs a.active { color: #776026; }
[data-bs-theme="light"] .summary-toggle[aria-pressed="true"] { color: #776026; }
[data-bs-theme="light"] .summary-income .summary-amount { color: #286e56; }
[data-bs-theme="light"] .summary-income .summary-loss { color: #a33232; }
@media (max-width: 639px) {
    .summary-metrics { grid-template-columns: 1fr; }
    .summary-metric { padding: 0; }
    .summary-metric + .summary-metric { padding: 20px 0 0; border-left: 0; border-top: 1px solid var(--bs-border-color); margin-top: 20px; }
    .summary-metric h3 { margin-bottom: 14px; }
    .summary-values > div { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 4px 16px; }
    .summary-values > div + div { margin-top: 10px; }
}
@media (max-width: 767px) {
    .company-page { width: calc(100% - 36px); margin-top: 24px; }
    .company-tabs { gap: 4px 20px; }
    .company-tabs a { font-size: .84rem; padding-block: 12px; }
    .invoice-filters > div:not(.filter-search) { flex: 1; min-width: 130px; }
    .filter-search { flex-basis: 100%; min-width: 0; }
    .invoice-paper { padding: 22px 18px; }
    .invoice-paper .invoice-total { padding: 16px; }
}
@media print {
    .gf-header, .company-context, .invoice-actions { display: none !important; }
    body { background: white !important; }
    .company-page { width: 100%; margin: 0; }
    .invoice-paper { padding: 0; margin: 0; border-radius: 0; background: white; }
    .invoice-paper .table-responsive { overflow: visible; }
    .invoice-paper tr, .invoice-party { break-inside: avoid; }
    .invoice-paper { font-size: 10pt; }
}
