/* Invoice Editor Styles */

/* Canvas Container */
.canvas-container {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: var(--space-8);
    padding-bottom: var(--space-10);
}

/* Page Base */
.page {
    width: 100%;
    max-width: 800px;
    background: var(--doc-bg);
    border-radius: var(--radius-lg);
    box-shadow:
        0 25px 100px rgba(0, 0, 0, 0.4),
        0 0 0 1px rgba(255, 255, 255, 0.1);
    overflow: hidden;
    transition: transform var(--transition-normal), box-shadow var(--transition-normal);
}

.page:hover {
    transform: translateY(-2px);
    box-shadow:
        0 30px 120px rgba(0, 0, 0, 0.5),
        0 0 0 1px var(--accent-glow);
}

/* Invoice Page */
.invoice-page {
    padding: var(--space-10);
    color: var(--doc-text);
    font-size: 14px;
}

/* Invoice Header */
.invoice-header {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    margin-bottom: var(--space-10);
    padding-bottom: var(--space-6);
    border-bottom: 2px solid var(--doc-border);
}

.company-section {
    display: flex;
    gap: var(--space-4);
}

.company-logo {
    flex-shrink: 0;
}

.company-logo .logo-placeholder {
    border-color: var(--doc-border);
    color: var(--doc-secondary);
    background: #f9fafb;
}

.company-logo .logo-placeholder:hover {
    border-color: var(--accent);
    color: var(--accent);
}

.company-logo .logo-img {
    max-width: 80px;
    max-height: 80px;
}

.company-name {
    font-size: 1.5rem;
    font-weight: 600;
    color: var(--doc-text);
    margin-bottom: var(--space-2);
}

.address-lines {
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.address-lines p {
    color: var(--doc-secondary);
    font-size: 0.875rem;
    line-height: 1.4;
}

.invoice-badge {
    text-align: right;
}

.badge-label {
    display: block;
    font-size: 0.75rem;
    font-weight: 600;
    letter-spacing: 0.1em;
    color: var(--doc-secondary);
    margin-bottom: var(--space-1);
}

.badge-number {
    font-size: 1.5rem;
    font-weight: 700;
    font-family: var(--font-mono);
    color: var(--accent);
}

/* On Behalf Of Section */
.behalf-section {
    margin-bottom: var(--space-8);
    padding: var(--space-5);
    background: linear-gradient(135deg, rgba(99, 102, 241, 0.05) 0%, rgba(168, 85, 247, 0.05) 100%);
    border: 1px solid rgba(99, 102, 241, 0.15);
    border-left: 3px solid var(--accent);
    border-radius: var(--radius-md);
}

.behalf-name {
    font-size: 1.125rem;
    font-weight: 600;
    margin-bottom: var(--space-1);
    color: var(--doc-text);
}

.behalf-company {
    font-size: 0.95rem;
    font-weight: 500;
    color: var(--accent);
    margin-bottom: var(--space-1);
}

.behalf-details {
    color: var(--doc-secondary);
    font-size: 0.875rem;
    line-height: 1.6;
}

/* Payment Details Section */
.payment-details-section {
    margin-bottom: 0;
    flex: 0 1 auto;
    display: flex;
    justify-content: center;
}

.payment-details-box {
    background: var(--payment-color, #fef3c7);
    border: 1px solid rgba(217, 119, 6, 0.3);
    border-radius: var(--radius-md);
    padding: var(--space-5);
    width: fit-content;
    min-width: 200px;
    height: 100%;
}

.payment-title {
    font-size: 0.875rem;
    font-weight: 700;
    color: #92400e;
    margin-bottom: var(--space-2);
    letter-spacing: 0.02em;
}

.payment-content {
    font-size: 0.85rem;
    color: #78350f;
    line-height: 1.7;
    white-space: pre-wrap;
}

/* Meta Section */
.meta-section {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: var(--space-4);
    margin-bottom: var(--space-8);
    flex-wrap: wrap;
}

.client-block {
    flex: 1;
    max-width: 320px;
}

.details-block {
    flex: 0 0 auto;
    width: 260px;
    background: #f9fafb;
    padding: var(--space-4);
    border-radius: var(--radius-md);
}

.block-label {
    display: block;
    font-size: 0.7rem;
    font-weight: 600;
    letter-spacing: 0.1em;
    color: var(--doc-secondary);
    margin-bottom: var(--space-2);
}

.block-label-row {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    margin-bottom: var(--space-2);
}

.block-label-row .block-label {
    margin-bottom: 0;
}

.client-cycle-btn {
    width: 20px;
    height: 20px;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 1px solid var(--doc-border);
    background: #f9fafb;
    color: var(--doc-secondary);
    border-radius: var(--radius-sm);
    cursor: pointer;
    transition: all var(--transition-fast);
}

.client-cycle-btn:hover {
    background: var(--accent-soft);
    border-color: var(--accent);
    color: var(--accent);
}

.client-cycle-btn svg {
    width: 12px;
    height: 12px;
    fill: none;
    stroke: currentColor;
    stroke-width: 2;
}

/* Client Dropdown */
.client-dropdown {
    position: absolute;
    top: 100%;
    left: 0;
    min-width: 200px;
    background: var(--doc-bg);
    border: 1px solid var(--doc-border);
    border-radius: var(--radius-sm);
    box-shadow: 0 10px 40px rgba(0, 0, 0, 0.15);
    z-index: 100;
    display: none;
}

.client-dropdown.visible {
    display: block;
}

.client-dropdown-item {
    padding: var(--space-3);
    cursor: pointer;
    border-bottom: 1px solid var(--doc-border);
    transition: background var(--transition-fast);
}

.client-dropdown-item:last-child {
    border-bottom: none;
}

.client-dropdown-item:hover {
    background: var(--accent-soft);
}

.client-dropdown-item strong {
    display: block;
    font-size: 0.875rem;
    color: var(--doc-text);
}

.client-dropdown-item span {
    font-size: 0.75rem;
    color: var(--doc-secondary);
}

.client-name {
    font-size: 1.125rem;
    font-weight: 600;
    margin-bottom: var(--space-1);
}

.currency-search-container {
    padding: var(--space-2) var(--space-3);
    border-bottom: 1px solid var(--border);
    /* Removed background for cleaner look */
}

.currency-search {
    width: 100%;
    padding: 10px 12px;
    background: rgba(255, 255, 255, 0.03);
    /* Subtle transparency */
    border: 1px solid var(--border);
    border-radius: var(--radius-sm);
    color: var(--text-primary);
    font-size: 0.9rem;
    outline: none;
    transition: all var(--transition-fast);
}

.currency-search:hover {
    background: rgba(255, 255, 255, 0.06);
    border-color: var(--border-focus);
}

.currency-search:focus {
    background: var(--bg-elevated);
    border-color: var(--accent);
    box-shadow: 0 0 0 2px var(--accent-soft);
}

.currency-list-item {
    padding: var(--space-2) var(--space-3);
    cursor: pointer;
    font-size: 0.875rem;
    color: var(--text-primary);
    transition: background-color var(--transition-fast);
}

.currency-list-item:hover {
    background-color: var(--bg-elevated);
}

.currency-list-item.active {
    background-color: var(--accent-soft);
    color: var(--accent);
}

.client-email {
    color: var(--accent);
    margin-bottom: var(--space-2);
}

.detail-row {
    display: flex;
    justify-content: space-between;
    padding: var(--space-2) 0;
    border-bottom: 1px solid var(--doc-border);
}

.detail-row:last-child {
    border-bottom: none;
}

.detail-label {
    color: var(--doc-secondary);
    font-size: 0.875rem;
}

.detail-value {
    font-weight: 500;
}

.date-input,
.currency-select {
    border: none;
    background: transparent;
    font-family: var(--font-sans);
    font-size: 0.875rem;
    font-weight: 500;
    color: var(--doc-text);
    text-align: right;
    cursor: pointer;
}

.date-input:focus,
.currency-select:focus {
    outline: none;
}

/* Items Section */
.items-section {
    margin-bottom: var(--space-8);
}

.items-section.per-line-tax .items-header,
.items-section.per-line-tax .item-row {
    grid-template-columns: 1fr 80px 100px 80px 100px 64px;
}

.col-qty,
.col-price,
.col-tax,
.col-total {
    text-align: center;
}

.items-header {
    display: grid;
    grid-template-columns: 1fr 80px 100px 100px 64px;
    gap: var(--space-3);
    padding: var(--space-3) var(--space-4);
    background: var(--accent);
    color: white;
    font-size: 0.7rem;
    font-weight: 600;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    border-radius: var(--radius-sm) var(--radius-sm) 0 0;
    align-items: center;
}

.items-body {
    border: 1px solid var(--doc-border);
    border-top: none;
    border-radius: 0 0 var(--radius-sm) var(--radius-sm);
}

.item-row {
    display: grid;
    grid-template-columns: 1fr 80px 100px 100px 64px;
    gap: var(--space-3);
    padding: var(--space-3) var(--space-4);
    border-bottom: 1px solid var(--doc-border);
    align-items: center;
    transition: background var(--transition-fast);
    position: relative;
}

.item-row:hover {
    background: #f9fafb;
}

.item-row:last-child {
    border-bottom: none;
}

.item-input {
    border: none;
    background: transparent;
    font-family: var(--font-sans);
    font-size: 0.875rem;
    color: var(--doc-text);
    width: 100%;
    padding: var(--space-2);
    border-radius: var(--radius-sm);
    transition: all var(--transition-fast);
}

.item-input:hover {
    background: rgba(0, 0, 0, 0.03);
}

.item-input:focus {
    outline: none;
    background: white;
    box-shadow: 0 0 0 2px var(--accent-soft);
}

.item-input.qty,
.item-input.price,
.item-input.tax-rate {
    text-align: center;
    font-family: var(--font-mono);
}

.item-total {
    text-align: center;
    font-weight: 600;
    font-family: var(--font-mono);
}

.item-delete {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    border: none;
    background: transparent;
    color: var(--doc-secondary);
    border-radius: var(--radius-sm);
    cursor: pointer;
    opacity: 0;
    transition: all var(--transition-fast);
}

.item-row:hover .item-delete {
    opacity: 1;
}

.item-delete:hover {
    background: #fee2e2;
    color: #dc2626;
}

.item-delete svg {
    width: 16px;
    height: 16px;
    fill: none;
    stroke: currentColor;
    stroke-width: 2;
}

.add-item-row {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: var(--space-2);
    width: 100%;
    padding: var(--space-4);
    margin-top: var(--space-3);
    border: 2px dashed var(--doc-border);
    background: transparent;
    color: var(--doc-secondary);
    font-family: var(--font-sans);
    font-size: 0.875rem;
    font-weight: 500;
    border-radius: var(--radius-sm);
    cursor: pointer;
    transition: all var(--transition-fast);
}

.add-item-row:hover {
    border-color: var(--accent);
    color: var(--accent);
    background: var(--accent-soft);
}

.add-item-row svg {
    width: 18px;
    height: 18px;
    fill: none;
    stroke: currentColor;
    stroke-width: 2;
}

/* Totals Section */
.totals-section {
    display: flex;
    justify-content: flex-end;
    margin-bottom: var(--space-8);
}

.totals-box {
    width: 280px;
}

.total-row {
    display: flex;
    justify-content: space-between;
    padding: var(--space-3) 0;
    font-size: 0.9rem;
    color: var(--doc-secondary);
}

.tax-row input {
    width: 50px;
    border: none;
    background: #f3f4f6;
    padding: var(--space-1) var(--space-2);
    border-radius: var(--radius-sm);
    font-family: var(--font-mono);
    font-size: 0.85rem;
    text-align: center;
    margin: 0 var(--space-1);
}

.tax-row input:focus {
    outline: none;
    box-shadow: 0 0 0 2px var(--accent-soft);
}

.grand-total {
    margin-top: var(--space-3);
    padding-top: var(--space-4);
    border-top: 2px solid var(--doc-text);
    font-size: 1.25rem;
    font-weight: 700;
    color: var(--doc-text);
}

.grand-total span:last-child {
    color: var(--accent);
    font-family: var(--font-mono);
}

/* Tax Type Selector */
.tax-type-selector {
    display: flex;
    gap: var(--space-1);
    margin-bottom: var(--space-2);
    padding: var(--space-2) 0;
}

.tax-type-btn {
    flex: 1;
    padding: var(--space-1) var(--space-2);
    border: 1px solid var(--doc-border);
    background: #f9fafb;
    color: var(--doc-secondary);
    font-size: 0.7rem;
    font-weight: 500;
    border-radius: var(--radius-sm);
    cursor: pointer;
    transition: all var(--transition-fast);
}

.tax-type-btn:hover {
    background: var(--accent-soft);
    border-color: var(--accent);
    color: var(--accent);
}

.tax-type-btn.active {
    background: var(--accent);
    border-color: var(--accent);
    color: white;
}

.tax-label-section {
    display: flex;
    align-items: center;
    gap: var(--space-1);
}

.tax-label-text {
    min-width: 40px;
}

/* Discount Row */
.discount-row span:last-child {
    color: #16a34a;
    font-weight: 600;
}

/* Item Discount Toggle */
.item-row.discount-item {
    background: #f0fdf4;
}

.item-row.discount-item .item-total {
    color: #16a34a;
}

.item-row.discount-item .item-total::before {
    content: '-';
}

.item-toggle {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    border: none;
    background: transparent;
    color: var(--doc-secondary);
    border-radius: var(--radius-sm);
    cursor: pointer;
    opacity: 0;
    transition: all var(--transition-fast);
}

/* Shipping UI */
.add-shipping-container {
    display: flex;
    justify-content: flex-end;
    margin-top: var(--space-2);
}

.add-shipping-btn {
    background: transparent;
    border: 1px dashed var(--doc-border);
    color: var(--doc-secondary);
    font-size: 0.75rem;
    padding: var(--space-1) var(--space-3);
    border-radius: var(--radius-sm);
    cursor: pointer;
    transition: all var(--transition-fast);
}

.add-shipping-btn:hover {
    border-color: var(--accent);
    color: var(--accent);
    background: var(--accent-soft);
}

.shipping-label-group {
    display: flex;
    align-items: center;
    gap: var(--space-2);
}

.remove-shipping-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 20px;
    height: 20px;
    padding: 0;
    border: none;
    background: transparent;
    color: var(--doc-secondary);
    cursor: pointer;
    border-radius: var(--radius-sm);
    transition: all var(--transition-fast);
}

.remove-shipping-btn:hover {
    background: #fee2e2;
    color: #dc2626;
}

.remove-shipping-btn svg {
    width: 14px;
    height: 14px;
    fill: none;
    stroke: currentColor;
    stroke-width: 2;
}

.total-input {
    width: 80px;
    border: none;
    background: transparent;
    font-family: var(--font-mono);
    font-size: 0.9rem;
    text-align: right;
    color: var(--doc-text);
}

.total-input:focus {
    outline: none;
    background: #f9fafb;
    border-radius: var(--radius-sm);
}

.item-row:hover .item-toggle {
    opacity: 1;
}

.item-toggle:hover {
    background: #fef3c7;
    color: #d97706;
}

.item-toggle.is-discount {
    color: #16a34a;
    background: #dcfce7;
    opacity: 1;
}

.item-toggle svg {
    width: 14px;
    height: 14px;
    fill: none;
    stroke: currentColor;
    stroke-width: 2;
}

/* Item actions group */
.item-actions {
    display: flex;
    gap: 2px;
}

/* Company Registration Section */
.company-registration {
    margin-top: var(--space-3);
    padding-top: var(--space-3);
    border-top: 1px dashed var(--doc-border);
}

.reg-line {
    font-size: 0.75rem;
    color: var(--doc-secondary);
    margin-bottom: var(--space-1);
}

.reg-line:empty::before {
    content: attr(data-placeholder);
    opacity: 0.5;
}

/* Company Contact Section (Compliance) */
.company-contact {
    margin-top: var(--space-2);
    padding-top: var(--space-2);
    border-top: 1px dashed var(--doc-border);
}

.contact-line {
    font-size: 0.75rem;
    color: var(--doc-secondary);
    margin-bottom: var(--space-1);
}

.contact-line:empty::before {
    content: attr(data-placeholder);
    opacity: 0.5;
}

/* Client Tax ID Section (Compliance) */
.client-taxid {
    margin-top: var(--space-3);
    padding-top: var(--space-3);
    border-top: 1px dashed var(--doc-border);
}

.client-taxid .block-label {
    margin-bottom: var(--space-1);
}

.taxid-value {
    font-size: 0.875rem;
    font-weight: 500;
    color: var(--doc-text);
}

.taxid-value:empty::before {
    content: attr(data-placeholder);
    opacity: 0.5;
    font-weight: 400;
}

/* PO Number Input (Compliance) */
.po-input {
    border: none;
    background: transparent;
    font-family: var(--font-sans);
    font-size: 0.875rem;
    font-weight: 500;
    color: var(--doc-text);
    text-align: right;
    width: 100px;
}

.po-input:focus {
    outline: none;
    background: #f9fafb;
    border-radius: var(--radius-sm);
}

.po-input::placeholder {
    color: var(--doc-secondary);
    opacity: 0.6;
}

/* Tax Exemption Row (Compliance) */
.exemption-row {
    background: #fef3c7;
    padding: var(--space-2) var(--space-3);
    border-radius: var(--radius-sm);
    margin-bottom: var(--space-2);
}

.exemption-label {
    font-size: 0.85rem;
    color: #92400e;
    font-weight: 500;
}

.exemption-value {
    display: flex;
    align-items: center;
    gap: var(--space-2);
}

.exemption-input {
    border: none;
    background: transparent;
    font-size: 0.85rem;
    color: #78350f;
    text-align: right;
    width: 160px;
}

.exemption-input:focus {
    outline: none;
    background: rgba(255, 255, 255, 0.5);
    border-radius: var(--radius-sm);
}

.exemption-input::placeholder {
    color: #92400e;
    opacity: 0.6;
}

/* Per-Line Tax Toggle Button Active State */
#toggle-per-line-tax.active {
    background: var(--accent);
    border-color: var(--accent);
    color: white;
}

/* Inline Optional Field Buttons (Client Tax ID, Service Date, PO Number) */
.add-inline-field-container {
    display: flex;
    justify-content: flex-start;
    margin-top: var(--space-2);
}

.add-inline-field-btn {
    background: transparent;
    border: 1px dashed var(--doc-border);
    color: var(--doc-secondary);
    font-size: 0.75rem;
    padding: var(--space-1) var(--space-3);
    border-radius: var(--radius-sm);
    cursor: pointer;
    transition: all var(--transition-fast);
    font-family: var(--font-sans);
}

.add-inline-field-btn:hover {
    border-color: var(--accent);
    color: var(--accent);
    background: var(--accent-soft);
}

.inline-field-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-2);
    margin-bottom: var(--space-1);
}

.inline-field-header .block-label {
    margin-bottom: 0;
}

.remove-inline-field-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 16px;
    height: 16px;
    padding: 0;
    border: none;
    background: transparent;
    color: var(--doc-secondary);
    cursor: pointer;
    border-radius: var(--radius-sm);
    transition: all var(--transition-fast);
    opacity: 0.6;
}

.remove-inline-field-btn:hover {
    background: #fee2e2;
    color: #dc2626;
    opacity: 1;
}

.remove-inline-field-btn svg {
    width: 12px;
    height: 12px;
    fill: none;
    stroke: currentColor;
    stroke-width: 2;
}

/* Detail row with removable button */
.detail-row-removable .detail-label {
    display: flex;
    align-items: center;
    gap: var(--space-2);
}

.detail-row-removable .remove-inline-field-btn {
    opacity: 0;
}

.detail-row-removable:hover .remove-inline-field-btn {
    opacity: 0.6;
}

.detail-row-removable .remove-inline-field-btn:hover {
    opacity: 1;
}

/* Items Toolbar (above table, right-aligned) */
.items-toolbar {
    display: flex;
    justify-content: flex-end;
    margin-bottom: var(--space-2);
}

.per-line-tax-btn {
    display: flex;
    align-items: center;
    gap: var(--space-1);
    padding: var(--space-1) var(--space-3);
    border: 1px dashed var(--doc-border);
    background: transparent;
    color: var(--doc-secondary);
    font-size: 0.75rem;
    font-family: var(--font-sans);
    font-weight: 500;
    border-radius: var(--radius-sm);
    cursor: pointer;
    transition: all var(--transition-fast);
}

.per-line-tax-btn:hover {
    border-color: var(--accent);
    color: var(--accent);
    background: var(--accent-soft);
}

.per-line-tax-btn.active {
    background: var(--accent);
    border-color: var(--accent);
    color: white;
    border-style: solid;
}

.per-line-tax-btn svg {
    width: 14px;
    height: 14px;
    fill: none;
    stroke: currentColor;
    stroke-width: 2;
}

/* Per-Line Tax Column in Items Table */
.items-section.per-line-tax .items-header {
    grid-template-columns: 1fr 60px 90px 60px 90px 64px;
}

.items-section.per-line-tax .item-row {
    grid-template-columns: 1fr 60px 90px 60px 90px 64px;
}

.item-input.tax-rate {
    text-align: right;
    font-family: var(--font-mono);
    width: 50px;
}

/* Footer */
.invoice-footer {
    padding-top: var(--space-6);
    border-top: 1px solid var(--doc-border);
}

.notes-label {
    display: block;
    font-size: 0.7rem;
    font-weight: 600;
    letter-spacing: 0.1em;
    color: var(--doc-secondary);
    text-transform: uppercase;
    margin-bottom: var(--space-2);
}

.notes-content {
    width: 100%;
    min-height: 80px;
    padding: var(--space-3);
    border: 1px solid var(--doc-border);
    border-radius: var(--radius-sm);
    background: #f9fafb;
    color: var(--doc-secondary);
    font-family: var(--font-sans);
    font-size: 0.875rem;
    line-height: 1.6;
    resize: vertical;
    transition: all var(--transition-fast);
}

.notes-content:focus {
    outline: none;
    border-color: var(--accent);
    box-shadow: 0 0 0 3px var(--accent-soft);
}

/* Editable Elements */
.editable,
.editable-inline {
    outline: none;
    border-radius: var(--radius-sm);
    transition: all var(--transition-fast);
    position: relative;
}

.editable:hover,
.editable-inline:hover {
    background: rgba(99, 102, 241, 0.05);
}

.editable:focus,
.editable-inline:focus {
    background: rgba(99, 102, 241, 0.1);
    box-shadow: 0 0 0 2px var(--accent-soft);
}

.editable[data-placeholder]:empty::before {
    content: attr(data-placeholder);
    color: var(--doc-secondary);
    opacity: 0.5;
    pointer-events: none;
}

.editable-zone {
    cursor: pointer;
}

/* Edit Tooltip */
.edit-tooltip {
    position: fixed;
    padding: var(--space-2) var(--space-3);
    background: var(--bg-card);
    color: var(--text-secondary);
    font-size: 0.75rem;
    border-radius: var(--radius-sm);
    pointer-events: none;
    opacity: 0;
    transform: translateY(5px);
    transition: all var(--transition-fast);
    z-index: 1001;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);
}

.edit-tooltip.visible {
    opacity: 1;
    transform: translateY(0);
}

/* PDF Render Container */
#pdf-render-container {
    position: absolute;
    left: -9999px;
    top: 0;
}

/* Currency Picker Inline */
.currency-picker-inline {
    position: relative;
}

.currency-current {
    display: flex;
    align-items: center;
    gap: var(--space-1);
    padding: var(--space-1) var(--space-2);
    background: var(--doc-bg);
    border: 1px solid var(--doc-border);
    border-radius: var(--radius-sm);
    color: var(--doc-text);
    font-size: 0.8rem;
    font-family: var(--font-sans);
    cursor: pointer;
    transition: all var(--transition-fast);
}

.currency-current:hover {
    background: var(--accent-soft);
    border-color: var(--accent);
}

.currency-current svg {
    width: 12px;
    height: 12px;
    fill: none;
    stroke: currentColor;
    stroke-width: 2;
}

.currency-dropdown {
    position: fixed;
    width: 280px;
    background: var(--doc-bg);
    border: 1px solid var(--doc-border);
    border-radius: var(--radius-md);
    box-shadow: 0 10px 40px rgba(0, 0, 0, 0.3);
    z-index: 100000;
    display: none;
    padding: var(--space-3);
}

.currency-dropdown.visible {
    display: block;
}

.currency-dropdown .currency-quick-picks {
    margin-bottom: var(--space-2);
    padding-bottom: var(--space-2);
    border-bottom: 1px solid var(--doc-border);
}

.currency-dropdown .currency-btn {
    background: #f9fafb;
    border-color: var(--doc-border);
    color: var(--doc-secondary);
}

.currency-dropdown .currency-btn:hover,
.currency-dropdown .currency-btn.active {
    background: var(--accent);
    border-color: var(--accent);
    color: white;
}

.currency-list-scroll {
    max-height: 200px;
    overflow-y: auto;
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.currency-list-item {
    padding: var(--space-2) var(--space-3);
    font-size: 0.8rem;
    color: var(--doc-text);
    border-radius: var(--radius-sm);
    cursor: pointer;
    transition: background var(--transition-fast);
}

.currency-list-item:hover {
    background: var(--accent-soft);
}

.currency-list-item.active {
    background: var(--accent-soft);
    color: var(--accent);
    font-weight: 500;
}

/* Tablet adjustments */
@media (max-width: 1100px) {
    .invoice-page {
        padding: var(--space-4);
    }

    .meta-section {
        grid-template-columns: 1fr;
        gap: var(--space-4);
    }

    .items-header,
    .item-row {
        grid-template-columns: 1fr 50px 70px 70px 28px;
        font-size: 0.7rem;
        gap: var(--space-1);
    }
}

/* A4 Validation */
.page {
    position: relative;
    /* Ensure absolute children position relative to page */
}

.a4-break-marker {
    position: absolute;
    top: 1123px;
    /* A4 height at 96 DPI */
    left: 0;
    right: 0;
    border-top: 2px dashed #ef4444;
    pointer-events: none;
    z-index: 50;
    display: flex;
    justify-content: flex-end;
    align-items: flex-start;
    padding-right: 10px;
    opacity: 0;
    /* Hidden by default until content approaches */
}

.a4-break-marker::after {
    content: 'End of A4 Page';
    background: #ef4444;
    color: white;
    font-size: 10px;
    padding: 2px 6px;
    border-radius: 0 0 4px 4px;
    transform: translateY(-100%);
}

.page.content-overflow .a4-break-marker {
    opacity: 1;
}

.page-overflow-warning {
    position: fixed;
    bottom: 20px;
    left: 50%;
    transform: translateX(-50%) translateY(100px);
    background: #ef4444;
    color: white;
    padding: 12px 24px;
    border-radius: 50px;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.3);
    font-weight: 600;
    font-size: 14px;
    z-index: 10000;
    transition: transform 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275);
    display: flex;
    align-items: center;
    gap: 10px;
}

/* Mobile Responsive Editor */
@media (max-width: 768px) {
    .invoice-page {
        padding: var(--space-4);
        min-height: auto;
    }

    .invoice-header {
        grid-template-columns: 1fr;
        gap: var(--space-6);
    }

    .invoice-header-col.center {
        text-align: left;
        order: 2;
    }

    .invoice-header-col.right {
        text-align: left;
        order: 1;
        margin-top: 0;
    }

    .items-header {
        display: none;
    }

    .item-row {
        grid-template-columns: 1fr;
        gap: var(--space-2);
        padding: var(--space-3);
        border: 1px solid var(--doc-border);
        border-radius: var(--radius-sm);
        margin-bottom: var(--space-2);
        position: relative;
    }

    .item-delete {
        position: absolute;
        top: 8px;
        right: 8px;
        opacity: 1;
        /* Always visible on mobile */
    }

    .add-item-row {
        width: 100%;
    }
}

.page-overflow-warning.visible {
    transform: translateX(-50%) translateY(0);
}