@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideDown{0%{transform:translateY(-50px);opacity:0}to{transform:translateY(0);opacity:1}}:root{--primary-black:#000000;--secondary-black:#1a1a1a;--dark-grey:#333333;--medium-grey:#666666;--light-grey:#999999;--bg-grey:#f5f5f5;--border-grey:#e0e0e0;--white:#ffffff;--sidebar-width:280px}body.dark-mode{--primary-black:#ffffff;--secondary-black:#e0e0e0;--dark-grey:#cccccc;--medium-grey:#999999;--light-grey:#666666;--bg-grey:#1a1a1a;--border-grey:#333333;--white:#0d0d0d;background:#0d0d0d;color:#ccc}body.dark-mode .app-header{background:#1a1a1a;border-bottom:1px solid #333}body.dark-mode .sidebar{background:#0d0d0d;border-right-color:#333}body.dark-mode .sidebar-header{background:#1a1a1a}body.dark-mode .invoice-list-item,body.dark-mode .section-card{background:#1a1a1a;border-color:#333}body.dark-mode .invoice-list-item:hover{background:#252525;border-color:#555}body.dark-mode .invoice-list-item.active{background:#252525;border-color:#666}body.dark-mode input,body.dark-mode select,body.dark-mode textarea{background:#0d0d0d;color:#ccc;border-color:#333}body.dark-mode input:focus,body.dark-mode select:focus,body.dark-mode textarea:focus{border-color:#666}body.dark-mode .btn-primary{background:#fff;color:#000}body.dark-mode .btn-primary:hover{background:#e0e0e0}body.dark-mode .btn-secondary{background:#333;color:#ccc;border-color:#555}body.dark-mode .btn-secondary:hover{background:#404040}body.dark-mode th{background:#1a1a1a;color:#fff;border-color:#555}body.dark-mode td{border-color:#333}body.dark-mode .section-header:hover,body.dark-mode tbody tr:hover{background:#252525}body.dark-mode .section-header{border-bottom-color:#fff}body.dark-mode .modal{background-color:rgba(0,0,0,.8)}body.dark-mode .modal-content{background-color:#1a1a1a;color:#ccc}body.dark-mode .modal-header{background:#0d0d0d;border-bottom:1px solid #333}body.dark-mode .message.success{background:#1a3d1a;color:#90ee90;border-color:#2d5a2d}body.dark-mode .message.error{background:#3d1a1a;color:#ff8080;border-color:#5a2d2d}body.dark-mode .invoice-preview{background:#fff;color:#000}body.dark-mode .invoice-preview *{color:#000}.pdf-export-content,.pdf-export-content *{background:#fff!important;color:#000!important}.pdf-export-content input,.pdf-export-content select,.pdf-export-content textarea{background:#fff!important;color:#000!important;border-color:#e0e0e0!important}*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen,Ubuntu,Cantarell,sans-serif;background:var(--bg-grey);color:var(--dark-grey);height:100vh;overflow:hidden}.app-header,.app-logo-title{display:flex;align-items:center}.app-header{background:var(--primary-black);color:var(--white);padding:10px 20px;box-shadow:0 2px 4px rgba(0,0,0,.2);justify-content:space-between}.app-logo-title{gap:12px}.app-logo{height:40px;width:auto}.app-header h1{font-size:1.3rem;font-weight:600}.app-header .header-actions{display:flex;gap:10px}.app-container{display:flex;height:calc(100vh - 50px)}.sidebar{width:var(--sidebar-width);background:var(--white);border-right:1px solid var(--border-grey);display:flex;flex-direction:column;overflow:hidden}.sidebar-header{padding:12px 15px;background:var(--secondary-black);color:var(--white)}.sidebar-header h2{font-size:1.1rem;margin-bottom:8px;font-weight:600}.sidebar-actions{display:flex;gap:5px}.sidebar-actions button{flex:1;padding:8px;font-size:.85rem}.invoice-list{flex:1;overflow-y:auto;list-style:none;padding:10px}.invoice-list-item,input,select,textarea{border:1px solid var(--border-grey);border-radius:4px}.invoice-list-item{background:var(--white);padding:10px;margin-bottom:6px;cursor:pointer;transition:all .2s}.invoice-list-item:hover{border-color:var(--dark-grey);background:var(--bg-grey)}.invoice-list-item.active{border-color:var(--primary-black);background:var(--bg-grey)}.invoice-list-item.archived{opacity:.7;border-left:3px solid var(--medium-grey)}.invoice-list-item.archived:hover{opacity:1}.invoice-list-item strong{display:block;color:var(--primary-black);margin-bottom:4px;font-weight:600}.invoice-list-item small{color:var(--medium-grey);font-size:.85rem}.invoice-list-item .item-actions{margin-top:8px;display:flex;gap:5px}.invoice-list-item .item-actions button{flex:1;padding:5px;font-size:.75rem}.main-content{flex:1;overflow-y:auto;padding:15px 20px}.section-card{background:var(--white);border-radius:6px;padding:15px 18px;margin-bottom:12px;box-shadow:0 1px 3px rgba(0,0,0,.08);border:1px solid var(--border-grey)}.section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px;padding:12px 0 10px;border-bottom:2px solid var(--primary-black);cursor:pointer;user-select:none;transition:all .3s ease;border-radius:4px 4px 0 0}.section-header:hover{background:var(--border-grey);margin:0-18px 12px;padding:10px 18px}.section-header h2{color:var(--primary-black);font-size:1.1rem;font-weight:600;transition:color .3s ease}.section-toggle{background:0 0;border:0;color:var(--primary-black);font-size:1.3rem;cursor:pointer;transition:transform .3s}.section-toggle.collapsed{transform:rotate(-90deg)}.section-content,label{display:block}.section-content.collapsed{display:none}.form-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:12px;margin-bottom:12px}.form-group{margin-bottom:0}label{margin-bottom:4px;font-weight:600;color:var(--primary-black);font-size:.85rem}.field-help{font-size:.7rem;color:var(--medium-grey);margin-top:2px;font-weight:400;line-height:1.2}input,select,textarea{width:100%;padding:8px 10px;font-size:.9rem;transition:border-color .2s}input:focus,select:focus,textarea:focus{outline:0;border-color:var(--primary-black)}input.valid,select.valid,textarea.valid{border-color:#28a745}.form-group.has-error input,.form-group.has-error select,.form-group.has-error textarea,input.invalid,select.invalid,textarea.invalid{border-color:#dc3545}.field-error{color:#dc3545;font-size:.75rem;margin-top:4px;display:none}.field-error.show{display:block}.form-group.has-success input,.form-group.has-success select,.form-group.has-success textarea{border-color:#28a745}.btn{padding:8px 16px;border:0;border-radius:4px;font-size:.85rem;font-weight:600;cursor:pointer;transition:all .2s;display:inline-flex;align-items:center;gap:5px}.btn-primary{background:var(--primary-black);color:var(--white)}.btn-primary:hover{background:var(--dark-grey)}.btn-secondary,td,th{border:1px solid var(--border-grey)}.btn-secondary{background:var(--bg-grey);color:var(--dark-grey)}.btn-secondary:hover{background:var(--border-grey)}.btn-success{background:#28a745;color:var(--white)}.btn-success:hover{background:#218838}.btn-danger{background:#dc3545;color:var(--white)}.btn-danger:hover{background:#c82333}.btn-small{padding:5px 10px;font-size:.75rem}.client-selector{display:flex;gap:10px;margin-bottom:20px}.client-selector select{flex:1}table{width:100%;border-collapse:collapse;margin:12px 0}td,th{padding:8px;text-align:left}th{background:var(--primary-black);color:var(--white);font-weight:600;font-size:.85rem}.line-item-row.dragging,tbody tr:hover{background:var(--bg-grey)}.line-item-row{cursor:move;transition:all .2s}.line-item-row.dragging{opacity:.5}.line-item-row.drag-over{border-top:3px solid var(--primary-black)}.drag-handle{cursor:grab;padding:0 8px;color:var(--medium-grey);user-select:none}.drag-handle:active{cursor:grabbing}.line-items-table input{padding:6px 8px;font-size:.85rem}.totals-section{display:flex;justify-content:flex-end;margin-top:20px}.totals-table{width:300px;border-collapse:collapse}.totals-table td{padding:3px;border:0}.totals-table td:first-child{text-align:left;padding-right:15px}.totals-table td:last-child{text-align:right;font-weight:600}.totals-table tr:last-child{border-top:2px solid #000}.totals-table tr:last-child td{padding:5px 0}.invoice-preview .totals-table td{border:0!important}.invoice-preview .totals-table tr:last-child{border-top:2px solid #000!important}.action-buttons{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}.message{padding:10px 12px;border-radius:4px;margin-bottom:10px;display:none;font-size:.85rem}.message.success{background:#d4edda;color:#155724;border:1px solid #c3e6cb}.message.error{background:#f8d7da;color:#721c24;border:1px solid #f5c6cb}.invoice-preview{background:var(--white);padding:20px;border:1px solid var(--border-grey);border-radius:6px;max-width:180mm;width:180mm;margin:15px auto;box-sizing:border-box;color:#000}.invoice-preview th{background:#fff!important;color:#000!important;border:1px solid #333!important;font-weight:600}.invoice-preview td{border:1px solid #ddd!important}.invoice-preview table{border-collapse:collapse}.invoice-title-center{text-align:center;margin-bottom:20px}.invoice-title-center h1{font-size:2rem;font-weight:700;margin:0;color:#000}.invoice-header-new{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:20px;gap:20px}.left-section{flex:1;max-width:50%}.right-section{flex:1;max-width:45%}.invoice-meta-table{width:100%;border-collapse:collapse;font-size:.85rem;padding:1px 10px 2px}.invoice-meta-table td{padding:2px;border:0}.invoice-meta-table td:first-child{text-align:left;font-weight:600;color:#000;padding-right:10px}.invoice-meta-table td:last-child{text-align:left}.bill-to-new{margin-top:15px;padding:10px;background:#f9f9f9;border-radius:4px}.bill-to-new h3{margin:0 0 6px;font-size:.95rem;font-weight:600;color:#000}.bill-to-new div{line-height:1.3;font-size:.85rem}.invoice-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:15px;padding-bottom:12px;border-bottom:2px solid #000}.invoice-preview .invoice-header{border-bottom:2px solid #000!important}.company-info{flex:1;max-width:50%;word-wrap:break-word;overflow-wrap:break-word;font-size:.85rem;line-height:1.4}.company-logo{font-size:1.5rem;font-weight:700;color:var(--primary-black);margin-bottom:6px}.invoice-title-section{text-align:right;max-width:45%}.bill-to-compact h3,.invoice-title{font-size:1.8rem;font-weight:700;color:var(--primary-black);margin-bottom:10px}.invoice-meta-compact{text-align:left;font-size:.85rem;line-height:1.5;margin-bottom:12px}.invoice-meta-compact .meta-row{display:flex;margin-bottom:2px}.invoice-meta-compact .meta-label{font-weight:600;color:var(--primary-black);min-width:90px}.bill-to-compact{text-align:left;border:1px solid var(--border-grey);padding:8px 10px;border-radius:4px;font-size:.8rem;line-height:1.3;max-width:100%;word-wrap:break-word;overflow-wrap:break-word}.bill-to-compact h3{margin-bottom:5px;font-size:.85rem;font-weight:600}.items-table th{text-align:left}.items-table td{padding:10px}.items-table .qty-col{text-align:center;width:80px}.items-table .amount-col,.items-table .rate-col{text-align:right;width:150px}.invoice-footer{margin-top:30px;padding-top:20px;border-top:2px solid var(--border-gray);display:flex;justify-content:space-between}.notes-section{flex:1}.signature-section{text-align:center;min-width:250px}.signature-line{margin-top:50px;padding-top:10px;border-top:2px solid var(--text-dark)}.logo-preview{max-width:200px;max-height:100px;margin-top:10px}@media (max-width:1024px){.sidebar{width:250px}.invoice-header-new{flex-direction:column;gap:20px}.left-section,.right-section{max-width:100%}.invoice-header{flex-direction:column;gap:20px}.invoice-title-section{text-align:left;min-width:auto}.bill-to-compact{max-width:100%}}@media (max-width:768px){body{height:auto;overflow:visible}.app-header{padding:10px 15px}.app-header h1{font-size:1.1rem}.header-actions{flex-wrap:wrap;gap:5px}.header-actions button{font-size:.75rem;padding:6px 10px}.app-container{flex-direction:column;height:auto}.sidebar{width:100%;max-height:250px;border-right:none;border-bottom:2px solid var(--border-gray);overflow:visible}.main-content{padding:15px}.form-row{grid-template-columns:1fr}.section-card{padding:15px;margin-bottom:15px}.invoice-header{flex-direction:column;gap:15px}.invoice-title-section{text-align:left;min-width:auto}.bill-to-compact,.company-info{max-width:100%}.invoice-title{font-size:1.8rem}.totals-section{justify-content:flex-start}.totals-table{width:100%}.modal-content{margin:5%auto;max-width:98%}.modal-body{padding:15px}table{font-size:.85rem}td,th{padding:6px}.line-items-table input{padding:5px;font-size:.85rem}}@media (max-width:480px){.app-header h1{font-size:.95rem}.header-actions button{font-size:.7rem;padding:5px 8px}.section-header h2{font-size:1.1rem}.invoice-preview{padding:20px}.invoice-title{font-size:1.5rem}.items-table{font-size:.8rem}.items-table td,.items-table th{padding:5px}}.modal{display:none;position:fixed;z-index:1000;left:0;top:0;width:100%;height:100%;overflow:auto;background-color:rgba(0,0,0,.5);animation:fadeIn .3s}.modal-content{background-color:#fff;margin:2%auto;padding:0;border-radius:10px;max-width:95%;max-height:90vh;overflow:auto;box-shadow:0 4px 20px rgba(0,0,0,.3);animation:slideDown .3s}.modal-close,.modal-header{display:flex;align-items:center}.modal-header{background:var(--primary-black);color:var(--white);padding:15px 25px;border-radius:6px 6px 0 0;justify-content:space-between}.modal-header h2{margin:0;font-size:1.5rem}.modal-close{background:0 0;border:0;color:#fff;font-size:2rem;cursor:pointer;padding:0;width:40px;height:40px;justify-content:center;border-radius:5px;transition:background .2s}.modal-close:hover{background:rgba(255,255,255,.2)}.modal-body{padding:30px}.modal-footer{padding:20px 30px;border-top:2px solid var(--border-gray);display:flex;gap:10px;justify-content:flex-end}@media print{@page{margin:10mm;size:A4 portrait}body{margin:0!important;padding:0!important}.modal,.modal-content{position:relative!important;width:100%!important;overflow:visible!important}.modal{display:block!important;background:#fff!important;padding:0!important;margin:0!important;height:auto!important}.modal-content{max-width:100%!important;max-height:none!important;box-shadow:none!important;border-radius:0!important}.modal-body,.modal-content{padding:0!important;margin:0!important}.app-container,.app-header,.main-content,.modal-footer,.modal-header,.sidebar{display:none!important}#invoice-preview,body,th{background:#fff!important}#invoice-preview{position:relative!important;width:100%!important;max-width:100%!important;border:0!important;box-shadow:none!important;border-radius:0!important;margin:0!important;padding:0!important;font-size:9pt}.invoice-header{border-bottom:2px solid #000!important;page-break-after:avoid;margin-bottom:8px!important;padding-bottom:8px!important;display:flex!important}.company-info{font-size:8pt!important;line-height:1.3!important;max-width:48%!important}.bill-to-compact h3,.company-logo{font-size:12pt!important;margin-bottom:3px!important}.invoice-title-section{max-width:48%!important}.invoice-title{font-size:16pt!important;margin-bottom:6px!important}.bill-to-compact,.invoice-meta-compact{font-size:8pt!important;line-height:1.3!important}.invoice-meta-compact{margin-bottom:8px!important}.bill-to-compact{padding:5px 6px!important}.bill-to-compact h3{font-size:8pt!important}th{color:#000!important;border:1px solid #333!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}td,th{font-size:8pt!important;padding:4px!important}table{margin:6px 0!important}.items-table,table{width:100%!important}.totals-section,table{page-break-inside:avoid}.totals-section{margin-top:8px!important}.invoice-footer,.totals-table{font-size:8pt!important}.totals-table td{padding:3px 4px!important}.invoice-footer{page-break-inside:avoid;margin-top:12px!important;padding-top:8px!important;display:flex!important}.logo-preview{max-width:100px!important;max-height:50px!important}.notes-section,.signature-section{font-size:8pt!important}}