*,:after,:before{box-sizing:border-box;margin:0;padding:0}body{background:#f5f5f5;color:#333;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,sans-serif;line-height:1.5}.login-page{align-items:center;background:linear-gradient(135deg,#1a1a2e,#16213e 50%,#0f3460);display:flex;justify-content:center;min-height:100vh}.login-container{max-width:600px;padding:48px;text-align:center;width:100%}.login-title{color:#fff;font-size:48px;font-weight:700;margin-bottom:4px}.login-subtitle{color:#8892b0;font-size:16px;margin-bottom:40px}.login-heading{color:#ccd6f6;font-size:20px;margin-bottom:24px}.user-grid{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(auto-fill,minmax(160px,1fr))}.user-card{align-items:center;background:#ffffff14;border:1px solid #ffffff1a;border-radius:12px;color:#fff;cursor:pointer;display:flex;flex-direction:column;font-family:inherit;font-size:inherit;gap:8px;padding:24px 16px;transition:all .2s ease}.user-card:hover{background:#ffffff26;border-color:#1a73e8;transform:translateY(-2px)}.user-avatar{align-items:center;background:#1a73e8;border-radius:50%;display:flex;font-size:20px;font-weight:600;height:48px;justify-content:center;width:48px}.user-name{font-size:14px;font-weight:600}.user-role-badge{background:#1a73e84d;border-radius:12px;color:#90caf9;font-size:11px;letter-spacing:.5px;padding:2px 10px;text-transform:uppercase}.loading-spinner{color:#666;font-size:16px;padding:40px;text-align:center}.error-message{background:#fdecea;border-radius:8px;color:#ea4335;margin:16px;padding:12px 16px;text-align:center}.btn{border:none;border-radius:6px;cursor:pointer;font-size:14px;font-weight:500;padding:8px 16px;transition:opacity .2s}.btn:disabled{cursor:not-allowed;opacity:.6}.btn-primary{background:#1a73e8;color:#fff}.btn-primary:hover:not(:disabled){background:#1557b0}.btn-secondary{background:#e0e0e0;color:#333}.btn-secondary:hover:not(:disabled){background:#bdbdbd}.btn-link{color:#1a73e8;font-weight:500;text-decoration:none}.btn-link:hover{text-decoration:underline}.board-header{background:#1a1a2e;color:#fff;justify-content:space-between;padding:12px 24px;position:sticky;top:0;z-index:100}.board-header,.header-left{align-items:center;display:flex}.header-left{gap:12px}.board-title{font-size:22px;font-weight:700;letter-spacing:-.5px;margin-right:4px}.header-right{gap:12px}.header-right,.user-info{align-items:center;display:flex}.user-info{font-size:14px;gap:8px}.role-badge{background:#1a73e84d;border-radius:10px;color:#90caf9;font-size:11px;padding:2px 8px;text-transform:uppercase}.logout-btn{background:#0000;border:1px solid #ffffff4d;border-radius:6px;color:#fff;cursor:pointer;font-size:13px;padding:6px 14px;transition:all .2s}.logout-btn:hover{background:#ffffff1a;border-color:#fff9}.toast{animation:slideIn .3s ease;border-radius:8px;box-shadow:0 4px 12px #00000026;font-size:14px;font-weight:500;padding:12px 20px;position:fixed;right:24px;top:70px;z-index:1000}.toast-error{background:#ea4335;color:#fff}.toast-success{background:#34a853;color:#fff}@keyframes slideIn{0%{opacity:0;transform:translateX(100%)}to{opacity:1;transform:translateX(0)}}.upload-zone{background:#fff;border:2px dashed #ccc;border-radius:12px;cursor:pointer;margin:16px 24px;padding:20px;text-align:center;transition:all .2s}.upload-zone-active,.upload-zone:hover{background:#e8f0fe;border-color:#1a73e8}.upload-prompt{color:#666;display:flex;font-size:15px;gap:12px}.upload-icon,.upload-prompt{align-items:center;justify-content:center}.upload-icon{background:#1a73e8;border-radius:50%;color:#fff;display:inline-flex;font-size:22px;font-weight:300;height:36px;width:36px}.upload-form{text-align:left}.upload-file-name{color:#666;font-size:13px;margin-bottom:12px}.upload-fields{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:12px}.upload-fields input,.upload-fields select{border:1px solid #ddd;border-radius:6px;font-size:14px;min-width:140px;padding:8px 12px}.upload-fields input:focus,.upload-fields select:focus{border-color:#1a73e8;outline:none}.upload-actions{display:flex;gap:8px}.kanban-page{display:flex;flex-direction:column;min-height:100vh}.kanban-board{align-items:flex-start;display:flex;flex:1 1;gap:12px;overflow-x:auto;padding:16px 24px}.kanban-column{background:#eef0f4;border-radius:10px;display:flex;flex-direction:column;flex-shrink:0;max-height:calc(100vh - 200px);max-width:300px;min-width:260px}.column-header{align-items:center;border-radius:10px 10px 0 0;border-top:3px solid;display:flex;justify-content:space-between;padding:12px 14px}.column-title{color:#444;font-size:13px;font-weight:600;letter-spacing:.5px;text-transform:uppercase}.column-count{background:#0000001a;border-radius:10px;color:#555;font-size:12px;font-weight:600;padding:2px 8px}.column-body{flex:1 1;min-height:60px;overflow-y:auto;padding:8px;transition:background .2s}.column-drag-over{background:#dde3ed}.invoice-card{background:#fff;border-left:4px solid;border-radius:8px;box-shadow:0 1px 3px #00000014;cursor:pointer;margin-bottom:8px;padding:12px;position:relative;transition:box-shadow .2s}.invoice-card:hover{box-shadow:0 3px 8px #00000026}.card-dragging{box-shadow:0 8px 24px #0003;transform:rotate(2deg)}.card-vendor{color:#222;font-size:14px;font-weight:600;margin-bottom:4px}.card-amount{color:#1a73e8;font-size:16px;font-weight:700;margin-bottom:4px}.card-date{color:#888;font-size:12px}.card-project{color:#666;font-size:12px;margin-top:4px}.card-jurisdiction{background:#f3e5f5;border-radius:4px;color:#7b1fa2;display:inline-block;font-size:11px;font-weight:600;margin-top:4px;padding:1px 6px}.card-gl-order{color:#555;font-size:11px;margin-top:2px}.card-status-badge{border-radius:10px;color:#000000b3;display:inline-block;font-size:10px;font-weight:600;letter-spacing:.3px;margin-top:6px;padding:2px 8px;text-transform:uppercase}.board-loading{align-items:center;display:flex;justify-content:center;min-height:100vh}.detail-page{background:#f5f5f5;min-height:100vh}.detail-loading{align-items:center;display:flex;flex-direction:column;gap:16px;justify-content:center;min-height:100vh}.detail-content{margin:0 auto;max-width:1400px;padding:24px}.detail-main{display:flex;flex-direction:column;gap:20px}.detail-card{background:#fff;border-radius:10px;box-shadow:0 1px 4px #00000014;padding:24px}.detail-heading{align-items:center;color:#222;display:flex;flex-wrap:wrap;font-size:22px;font-weight:700;gap:12px;margin-bottom:20px}.status-badge-large{border-radius:14px;color:#000000b3;font-size:12px;font-weight:600;padding:4px 14px;text-transform:uppercase}.detail-grid{grid-gap:16px;display:grid;gap:16px;grid-template-columns:1fr 1fr;margin-bottom:20px}.detail-field{display:flex;flex-direction:column;gap:2px}.detail-field label{color:#888;font-size:12px;font-weight:600;letter-spacing:.5px;text-transform:uppercase}.detail-field span{color:#333;font-size:15px}.detail-field-full{grid-column:1/-1}.status-change-section{align-items:center;border-top:1px solid #eee;display:flex;gap:12px;padding-top:16px}.status-change-section label{color:#555;font-size:14px;font-weight:600}.status-select{border:1px solid #ddd;border-radius:6px;font-size:14px;min-width:180px;padding:8px 12px}.status-select:focus{border-color:#1a73e8;outline:none}.status-updating{color:#666;font-size:13px}.status-error{color:#ea4335;font-size:13px;font-weight:500}.section-heading{color:#333;font-size:18px;font-weight:600;margin-bottom:16px}.documents-table{border-collapse:collapse;margin-bottom:20px;width:100%}.documents-table td,.documents-table th{border-bottom:1px solid #eee;font-size:14px;padding:10px 12px;text-align:left}.documents-table th{color:#666;font-size:12px;font-weight:600;letter-spacing:.5px;text-transform:uppercase}.empty-text{color:#999;font-size:14px;font-style:italic;margin-bottom:16px}.doc-upload-form{border-top:1px solid #eee;padding-top:16px}.doc-upload-form h4{color:#555;font-size:14px;font-weight:600;margin-bottom:12px}.doc-upload-fields{align-items:center;display:flex;flex-wrap:wrap;gap:12px}.doc-upload-fields input[type=file]{font-size:13px}.doc-upload-fields select{border:1px solid #ddd;border-radius:6px;font-size:14px;padding:8px 12px}.doc-message{font-size:13px;font-weight:500;margin-top:8px}.doc-message-success{color:#34a853}.doc-message-error{color:#ea4335}.timeline{padding-left:24px;position:relative}.timeline:before{background:#e0e0e0;bottom:0;content:"";left:6px;position:absolute;top:0;width:2px}.timeline-item{padding-bottom:20px;position:relative}.timeline-item:last-child{padding-bottom:0}.timeline-dot{background:#1a73e8;border:2px solid #fff;border-radius:50%;box-shadow:0 0 0 2px #1a73e8;height:10px;left:-21px;position:absolute;top:4px;width:10px}.timeline-content{display:flex;flex-direction:column;gap:4px}.timeline-header{align-items:center;display:flex;gap:12px}.event-type-badge{background:#e8f0fe;border-radius:10px;color:#1a73e8;font-size:12px;font-weight:600;padding:2px 10px;text-transform:uppercase}.timeline-time{color:#999;font-size:12px}.timeline-status-change{align-items:center;display:flex;font-size:13px;gap:8px}.mini-badge{border-radius:8px;color:#000000b3;font-size:11px;font-weight:600;padding:2px 8px}.arrow{color:#999}.timeline-actor{color:#666;font-size:13px}.timeline-comment{background:#f5f5f5;border-radius:6px;color:#555;font-size:13px;margin-top:4px;padding:8px 12px}.sse-indicator{border-radius:50%;display:inline-block;flex-shrink:0;height:8px;width:8px}.sse-connected{background:#34a853;box-shadow:0 0 4px #34a853}.sse-disconnected{background:#999}.pending-badge-btn{align-items:center;background:#0000;border:1px solid #ffffff4d;border-radius:6px;color:#fff;cursor:pointer;display:inline-flex;font-size:13px;gap:6px;padding:6px 14px;position:relative;transition:all .2s}.pending-badge-btn:hover{background:#ffffff1a;border-color:#fff9}.pending-badge{align-items:center;background:#ea4335;border-radius:9px;color:#fff;display:inline-flex;font-size:11px;font-weight:700;height:18px;justify-content:center;line-height:1;min-width:18px;padding:0 5px}.card-approval-action{margin-top:8px;position:relative}.approval-default{align-items:center;display:flex;flex-wrap:wrap;gap:6px}.approval-label{color:#555;flex:1 1 100%;margin-bottom:4px}.btn-send-approval{background:#1a73e8;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:11px;font-weight:600;padding:4px 10px;transition:background .2s}.btn-send-approval:hover{background:#1557b0}.btn-override{background:none;border:1px solid #ccc;border-radius:4px;color:#777;cursor:pointer;font-size:10px;padding:4px 8px;transition:all .2s}.btn-override:hover{border-color:#1a73e8;color:#1a73e8}.approver-dropdown{background:#fff;border:1px solid #ddd;border-radius:6px;box-shadow:0 4px 12px #00000026;left:0;margin-top:4px;overflow:hidden;position:absolute;right:0;top:100%;z-index:50}.approver-dropdown-loading{color:#666;font-size:12px;padding:10px 12px;text-align:center}.approver-dropdown-item{background:none;border:none;color:#333;cursor:pointer;display:block;font-size:13px;padding:8px 12px;text-align:left;transition:background .15s;width:100%}.approver-dropdown-item:hover{background:#e8f0fe;color:#1a73e8}.approver-dropdown-item:disabled{cursor:not-allowed;opacity:.5}.btn-approve{background:#34a853;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:14px;font-weight:500;padding:8px 16px;transition:background .2s}.btn-approve:hover:not(:disabled){background:#2d9249}.btn-approve:disabled{cursor:not-allowed;opacity:.6}.btn-reject{background:#ea4335;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:14px;font-weight:500;padding:8px 16px;transition:background .2s}.btn-reject:hover:not(:disabled){background:#d33426}.btn-reject:disabled{cursor:not-allowed;opacity:.6}.approver-queue-page{background:#f5f5f5;min-height:100vh}.approver-queue-content{margin:0 auto;max-width:800px;padding:24px}.approver-queue-heading{color:#222;font-size:24px;font-weight:700;margin-bottom:20px}.approver-queue-empty{background:#fff;border-radius:10px;box-shadow:0 1px 4px #00000014;padding:60px 20px;text-align:center}.approver-queue-empty-icon{align-items:center;background:#e6f4ea;border-radius:50%;color:#34a853;display:inline-flex;font-size:32px;font-weight:700;height:64px;justify-content:center;margin-bottom:16px;width:64px}.approver-queue-empty p{color:#333;font-size:18px;font-weight:600;margin-bottom:4px}.approver-queue-empty span{color:#888;font-size:14px}.approval-cards{display:flex;flex-direction:column;gap:12px}.approval-card{background:#fff;border-left:4px solid #ffb74d;border-radius:10px;box-shadow:0 1px 4px #00000014;padding:20px;transition:all .15s ease}.approval-card:hover{box-shadow:0 2px 8px #00000026;transform:translateY(-1px)}.approval-card-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:12px}.approval-vendor{color:#222;font-size:16px;font-weight:600}.approval-amount{color:#1a73e8;font-size:18px;font-weight:700}.approval-card-details{display:flex;flex-direction:column;gap:4px;margin-bottom:16px}.approval-detail-row{display:flex;font-size:13px;gap:8px}.approval-label{color:#888;font-size:11px;font-weight:600;letter-spacing:.3px;min-width:100px;text-transform:uppercase}.approval-card-actions{align-items:flex-start;display:flex;gap:8px}.rejection-form{display:flex;flex-direction:column;gap:8px;width:100%}.rejection-notes-input{border:1px solid #ddd;border-radius:6px;font-size:14px;padding:8px 12px;width:100%}.rejection-notes-input:focus{border-color:#ea4335;outline:none}.rejection-form-buttons{display:flex;gap:8px}.detail-approval-send{align-items:center;display:flex;gap:12px}.detail-approval-actions{display:flex;gap:8px;margin-top:8px}.detail-rejection-form{display:flex;flex-direction:column;gap:8px}.extraction-processing{animation:pulse 1.5s ease-in-out infinite;color:#1a73e8;font-style:italic}.extraction-failed{color:#ea4335;font-size:.85em;font-style:italic}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.extraction-banner{align-items:center;background:#e3f2fd;border:1px solid #90caf9;border-radius:8px;color:#1565c0;display:flex;gap:8px;margin-bottom:16px;padding:12px 16px}.extraction-banner-failed{background:#fce4ec;border-color:#ef9a9a;color:#c62828}.extraction-spinner{animation:spin 1s linear infinite;border:2px solid #90caf9;border-radius:50%;border-top-color:#1a73e8;height:16px;width:16px}@keyframes spin{to{transform:rotate(1turn)}}.detail-actions{display:flex;gap:8px;margin-top:12px}.btn-edit{background:none;border:1px solid #1a73e8;border-radius:6px;color:#1a73e8;cursor:pointer;font-size:.85em;padding:6px 16px}.btn-edit:hover{background:#e3f2fd}.btn-save{background:#34a853;border:none;border-radius:6px;color:#fff}.btn-cancel,.btn-save{cursor:pointer;padding:8px 20px}.btn-cancel{background:#f5f5f5;border:1px solid #ddd;border-radius:6px;color:#333}.vendor-combobox{position:relative}.vendor-combobox input{border:1px solid #ddd;border-radius:6px;font-size:.95em;padding:8px 12px;width:100%}.btn-create-vendor{background:#e3f2fd;border:1px solid #90caf9;border-radius:4px;color:#1a73e8;cursor:pointer;font-size:.85em;margin-top:4px;padding:4px 12px}.btn-create-vendor:hover{background:#bbdefb}.card-confidence{border-radius:4px;display:inline-block;font-size:.75em;font-weight:600;margin-top:4px;padding:2px 6px}.confidence-high{background:#c8e6c9;color:#2e7d32}.confidence-medium{background:#fff9c4;color:#f57f17}.confidence-low{background:#ffcdd2;color:#c62828}.confidence-value{font-size:1.1em;font-weight:600}.mappings-page{padding:0}.mappings-add-form{align-items:center;background:#fff;border-bottom:1px solid #e0e0e0;display:flex;flex-wrap:wrap;gap:8px;padding:16px 24px}.mappings-add-form input,.mappings-add-form select{border:1px solid #ddd;border-radius:6px;font-size:.9em;padding:8px 12px}.mappings-table-container{padding:16px 24px}.mappings-table{background:#fff;border-collapse:collapse;border-radius:8px;box-shadow:0 1px 3px #0000001a;overflow:hidden;width:100%}.mappings-table th{background:#f5f5f5;border-bottom:2px solid #e0e0e0;color:#666;font-size:.8em;padding:10px 12px;text-align:left;text-transform:uppercase}.mappings-table td{border-bottom:1px solid #f0f0f0;font-size:.9em;padding:10px 12px}.mappings-table tr:hover{background:#fafafa}.mappings-empty{color:#999;padding:40px;text-align:center}.source-badge{border-radius:4px;font-size:.8em;padding:2px 8px}.source-manual{background:#e3f2fd;color:#1565c0}.source-learned{background:#f3e5f5;color:#7b1fa2}.source-seed{background:#fff3e0;color:#e65100}.btn-sm{font-size:.8em;padding:4px 10px}.detail-classify{align-items:center;display:flex;gap:8px}.detail-classify select{flex:1 1}.header-nav{align-items:center;display:flex;gap:4px}.header-nav-btn{background:#0000;border:1px solid #fff3;border-radius:6px;color:#fffc;cursor:pointer;font-size:13px;padding:6px 14px;position:relative;transition:all .2s}.header-nav-btn:hover{background:#ffffff1a;border-color:#fff6;color:#fff}.header-nav-active{background:#ffffff26;border-color:#ffffff80;color:#fff}.header-actions{align-items:center;border-left:1px solid #fff3;display:flex;gap:8px;margin-left:4px;padding-left:12px}.header-btn{margin-right:8px}.btn-danger{background:#ea4335;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:14px;font-weight:500;padding:8px 16px;transition:background .2s}.btn-danger:hover:not(:disabled){background:#d33426}.btn-danger:disabled{cursor:not-allowed;opacity:.6}.clear-all-btn{background:#0000;border:1px solid #ea4335;border-radius:6px;color:#ea4335;cursor:pointer;font-size:13px;padding:6px 14px;transition:all .2s}.clear-all-btn:hover{background:#ea4335;color:#fff}.card-delete-btn{align-items:center;background:#0000;border:none;border-radius:50%;color:#bbb;cursor:pointer;display:flex;font-size:16px;height:20px;justify-content:center;line-height:1;padding:0;position:absolute;right:4px;top:4px;transition:all .15s;width:20px}.card-delete-btn:hover{background:#fdecea;color:#ea4335}.projects-page{padding:0}.projects-table-container{padding:16px 24px}.projects-table{background:#fff;border-collapse:collapse;border-radius:8px;box-shadow:0 1px 3px #0000001a;overflow:hidden;width:100%}.projects-table th{background:#f5f5f5;border-bottom:2px solid #e0e0e0;color:#666;font-size:.8em;padding:10px 12px;text-align:left;text-transform:uppercase}.projects-table td{border-bottom:1px solid #f0f0f0;font-size:.9em;padding:10px 12px}.projects-table tr.clickable-row{cursor:pointer}.projects-table tr.clickable-row:hover{background:#e8f0fe}.project-actions{display:flex;gap:6px}.projects-empty{color:#999;padding:40px;text-align:center}.project-modal-overlay{align-items:center;animation:fadeIn .15s ease-out;background:#00000080;display:flex;inset:0;justify-content:center;position:fixed;z-index:1000}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.project-modal{animation:slideUp .2s ease-out;background:#fff;border-radius:12px;box-shadow:0 20px 60px #0000004d;max-height:90vh;max-width:92vw;overflow-y:auto;width:560px}.project-modal-header{align-items:center;display:flex;justify-content:space-between;padding:20px 24px 0}.project-modal-header h2{color:#1a1a2e;font-size:1.25em;font-weight:600}.project-modal-close{background:none;border:none;border-radius:4px;color:#999;cursor:pointer;font-size:1.5em;line-height:1;padding:0 4px}.project-modal-close:hover{background:#f0f0f0;color:#333}.project-modal-body{padding:20px 24px}.project-modal-row{margin-bottom:16px}.project-modal-row label{color:#555;display:block;font-size:.8em;font-weight:600;letter-spacing:.03em;margin-bottom:6px;text-transform:uppercase}.project-modal-row input,.project-modal-row select,.project-modal-row textarea{background:#fafafa;border:1px solid #ddd;border-radius:8px;color:#333;font-family:inherit;font-size:.95em;padding:10px 12px;transition:border-color .15s,box-shadow .15s;width:100%}.project-modal-row input:focus,.project-modal-row select:focus,.project-modal-row textarea:focus{background:#fff;border-color:#1a73e8;box-shadow:0 0 0 3px #1a73e81f;outline:none}.project-modal-row textarea{min-height:80px;resize:vertical}.project-modal-row-group{grid-gap:12px;display:grid;gap:12px;grid-template-columns:1fr 1fr 1fr;margin-bottom:16px}.project-modal-row-group .project-modal-row{margin-bottom:0}.project-modal--wide{width:780px}.project-modal-footer{background:#fafafa;border-radius:0 0 12px 12px;border-top:1px solid #f0f0f0;display:flex;gap:10px;justify-content:flex-end;padding:16px 24px}.modal-mappings-section{border-top:2px solid #e8e8e8;margin-top:20px;padding-top:20px}.modal-mappings-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:12px}.modal-mappings-header h3{color:#1a1a2e;font-size:1em;font-weight:600;margin:0}.modal-mappings-note{color:#888;font-size:.85em;font-style:italic;margin:8px 0}.modal-mappings-table{border-collapse:collapse;font-size:.85em;margin-bottom:12px;width:100%}.modal-mappings-table th{border-bottom:1px solid #e8e8e8;color:#888;font-size:.75em;letter-spacing:.03em;padding:6px 8px;text-align:left;text-transform:uppercase}.modal-mappings-table td{border-bottom:1px solid #f0f0f0;padding:6px 8px;vertical-align:top}.modal-mapping-row td{vertical-align:middle}.inline-input{background:#fafafa;border:1px solid #e0e0e0;border-radius:4px;font-size:.9em;padding:4px 8px;width:100%}.inline-input:focus{background:#fff;border-color:#1a73e8;outline:none}.modal-add-mapping-row{align-items:center;display:flex;gap:8px;margin-top:8px}.modal-add-mapping-row input,.modal-add-mapping-row select{background:#fafafa;border:1px solid #ddd;border-radius:6px;font-size:.85em;padding:6px 10px}.modal-add-mapping-row select{flex:2 1}.modal-add-mapping-row input{flex:1 1}.instructions-cell{background:#f8f9fa;padding:0!important}.instructions-section{padding:12px 16px}.instructions-title{color:#555;font-size:.8em;font-weight:600;letter-spacing:.03em;margin-bottom:8px;text-transform:uppercase}.instruction-row{align-items:center;border-bottom:1px solid #e8e8e8;display:flex;gap:8px;padding:6px 0}.instruction-row:last-child{border-bottom:none}.instruction-text{color:#333;flex:1 1;font-size:.9em}.instruction-text-input{border:1px solid #ddd;border-radius:4px;flex:1 1;font-size:.9em;padding:4px 8px}.instruction-weight{align-items:center;display:flex;gap:4px;min-width:100px}.weight-slider{cursor:pointer;width:60px}.weight-label{color:#888;font-size:.75em}.weight-value{color:#555;font-size:.8em;font-weight:600;min-width:24px;text-align:center}.instruction-add-row{align-items:center;border-top:1px dashed #ddd;display:flex;gap:8px;margin-top:8px;padding-top:8px}.aliases-section{border-bottom:1px solid #e5e7eb;margin-bottom:12px;padding-bottom:12px}.keywords-section{border-bottom:1px solid #e0e0e0;padding:12px 16px}.keyword-chips{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:8px}.keyword-chip{align-items:center;background:#e3f2fd;border-radius:12px;color:#1565c0;display:inline-flex;font-size:.85em;gap:4px;padding:3px 10px}.keyword-chip-text{font-weight:500}.keyword-matched-count{background:#cfd8dc;border-radius:8px;color:#546e7a;font-size:.75em;font-weight:600;min-width:16px;padding:0 5px;text-align:center}.keyword-delete-btn{background:none;border:none;color:#90a4ae;cursor:pointer;font-size:1em;line-height:1;padding:0 2px}.keyword-delete-btn:hover{color:#c62828}.keyword-add-row{align-items:center;display:flex;gap:8px}.keyword-duplicate-warning{background:#fff8e1;border:1px solid #ffe082;border-radius:4px;color:#f57f17;font-size:.85em;margin-top:6px;padding:6px 10px}.status-pill{border-radius:10px;font-size:.8em;font-weight:600;padding:2px 10px}.status-active{background:#e6f4ea;color:#2e7d32}.status-closed{background:#f5f5f5;color:#888}.invoice-detail-split{display:flex;gap:0;min-height:calc(100vh - 200px)}.invoice-detail-split.is-resizing .excel-preview,.invoice-detail-split.is-resizing iframe,.invoice-detail-split.is-resizing object{pointer-events:none}.invoice-detail-left{flex:0 0 60%;min-width:0;overflow-y:auto;padding-right:10px}.invoice-detail-right{flex:0 0 40%;min-width:0;padding-left:10px}.invoice-detail-resizer,.invoice-detail-right{max-height:calc(100vh - 120px);position:sticky;top:80px}.invoice-detail-resizer{align-items:center;background:#0000;cursor:col-resize;display:flex;flex:0 0 8px;justify-content:center;transition:background .15s ease;-webkit-user-select:none;user-select:none}.invoice-detail-resizer:hover,.invoice-detail-split.is-resizing .invoice-detail-resizer{background:#4a90e21f}.invoice-detail-resizer-grip{background:#cfd4da;border-radius:2px;height:40px;transition:background .15s ease,height .15s ease;width:2px}.invoice-detail-resizer:hover .invoice-detail-resizer-grip,.invoice-detail-split.is-resizing .invoice-detail-resizer-grip{background:#4a90e2;height:60px}.document-preview-header-left{align-items:center;display:flex;flex:1 1 auto;gap:8px;min-width:0}.document-preview-filename{color:#555;font-size:13px;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.preview-expand-toggle{align-items:center;background:#fff;border:1px solid #d9dde3;border-radius:6px;box-shadow:0 1px 2px #1018280a;color:#6b7280;cursor:pointer;display:inline-flex;flex-shrink:0;height:26px;justify-content:center;padding:0;transition:background .15s ease,border-color .15s ease,color .15s ease,box-shadow .15s ease,transform .08s ease;width:26px}.preview-expand-toggle:hover{background:#eef4fc;border-color:#4a90e2;box-shadow:0 1px 3px #4a90e240;color:#2870c2}.preview-expand-toggle:active{transform:scale(.94)}.preview-expand-toggle:focus-visible{border-color:#4a90e2;box-shadow:0 0 0 3px #4a90e240;outline:none}.preview-expand-toggle.is-expanded{background:#4a90e2;border-color:#4a90e2;box-shadow:0 1px 3px #4a90e266;color:#fff}.preview-expand-toggle.is-expanded:hover{background:#3a7fd0;border-color:#3a7fd0;color:#fff}.document-preview{background:#f5f5f5;border:1px solid #ddd;border-radius:8px;display:flex;flex-direction:column;height:100%;overflow:hidden}.document-preview iframe,.document-preview object{border:none;flex:1 1;min-height:500px;width:100%}.document-preview img{background:#f5f5f5;max-height:calc(100vh - 240px);object-fit:contain;width:100%}.document-preview-header{align-items:center;background:#fff;border-bottom:1px solid #eee;display:flex;flex-shrink:0;justify-content:space-between;padding:8px 12px}.document-preview-header select{border:1px solid #ddd;border-radius:4px;font-size:13px;max-width:200px;overflow:hidden;padding:4px 8px;text-overflow:ellipsis}.document-preview-header .btn-link{font-size:13px;white-space:nowrap}.document-preview-empty{color:#999;font-style:italic}.document-preview-empty,.document-preview-loading{align-items:center;display:flex;font-size:14px;height:300px;justify-content:center}.document-preview-loading{color:#666}.document-preview-loading .extraction-spinner{margin-right:8px}.excel-preview{background:#fff;flex:1 1;overflow:auto;padding:12px}@media (max-width:900px){.invoice-detail-split{flex-direction:column}.invoice-detail-left,.invoice-detail-right{flex:1 1 auto!important;padding:0}.invoice-detail-right{max-height:500px;position:static}.invoice-detail-resizer{display:none}}.tracker-page{background:#f5f5f5;display:flex;flex-direction:column;min-height:100vh}.tracker-content{display:flex;flex:1 1;flex-direction:column;padding:20px 24px}.tracker-title-row{align-items:center;display:flex;justify-content:space-between;margin-bottom:16px}.tracker-heading{color:#222;font-size:24px;font-weight:700}.tracker-filters{background:#fff;border-radius:8px;box-shadow:0 1px 3px #00000014;display:flex;flex-wrap:wrap;gap:12px;margin-bottom:16px;padding:12px 16px}.tracker-filter{display:flex;flex-direction:column;gap:4px;min-width:140px}.tracker-filter-label{color:#888;font-size:11px;font-weight:600;letter-spacing:.3px;text-transform:uppercase}.tracker-filter input,.tracker-filter select{background:#fafafa;border:1px solid #ddd;border-radius:6px;font-size:13px;padding:6px 10px}.tracker-filter input:focus,.tracker-filter select:focus{background:#fff;border-color:#1a73e8;outline:none}.tracker-table-wrapper{background:#fff;border-radius:8px;box-shadow:0 1px 3px #00000014;flex:1 1;max-height:calc(100vh - 280px);overflow:auto}.tracker-table{border-collapse:collapse;font-size:13px;white-space:nowrap;width:100%}.tracker-table thead{position:sticky;top:0;z-index:10}.tracker-table th{background:#f5f5f5;border-bottom:2px solid #e0e0e0;color:#666;font-size:11px;font-weight:600;letter-spacing:.3px;padding:10px 12px;text-align:left;text-transform:uppercase;-webkit-user-select:none;user-select:none}.tracker-table th.sortable{cursor:pointer}.tracker-table th.sortable:hover{background:#e8e8e8;color:#1a73e8}.sort-indicator{font-size:10px;margin-left:2px}.tracker-table td{border-bottom:1px solid #f0f0f0;color:#333;max-width:200px;overflow:hidden;padding:8px 12px;text-overflow:ellipsis}.tracker-table .text-right{text-align:right}.tracker-table tbody tr:nth-child(2n){background:#fafafa}.tracker-row{cursor:pointer;transition:background .15s}.tracker-row:hover{background:#e8f0fe!important}.tracker-empty{color:#999;font-style:italic;padding:40px 20px!important;text-align:center;white-space:normal}.tracker-link{color:#1a73e8;font-size:13px;text-decoration:none}.tracker-link:hover{text-decoration:underline}.tracker-footer{align-items:center;display:flex;justify-content:space-between;margin-top:8px;padding:12px 0}.tracker-count{color:#666;font-size:13px}@media (max-width:600px){.detail-grid{grid-template-columns:1fr}.upload-fields{flex-direction:column}.kanban-board{padding:12px}.kanban-column{min-width:220px}.tracker-filters{flex-direction:column}.tracker-filter{min-width:auto}}.gl-modal-overlay{align-items:center;animation:fadeIn .15s ease-out;background:#00000080;display:flex;inset:0;justify-content:center;position:fixed;z-index:1000}.gl-modal{animation:slideUp .2s ease-out;background:#fff;border-radius:12px;box-shadow:0 20px 60px #0000004d;max-height:90vh;max-width:92vw;overflow-y:auto;width:600px}.gl-modal-header{align-items:center;display:flex;justify-content:space-between;padding:20px 24px 0}.gl-modal-header h2{color:#1a1a2e;font-size:1.25em;font-weight:600}.gl-modal-body{padding:16px 24px}.gl-modal-body p{color:#555;font-size:14px;line-height:1.5;margin-bottom:16px}.gl-preview-table{border-collapse:collapse;font-size:13px;width:100%}.gl-preview-table th{background:#f5f5f5;border-bottom:2px solid #e0e0e0;color:#666;font-size:11px;font-weight:600;letter-spacing:.3px;padding:8px 12px;text-align:left;text-transform:uppercase}.gl-preview-table td{border-bottom:1px solid #f0f0f0;padding:10px 12px}.gl-field-name{color:#333;font-weight:600}.gl-current-value{color:#999}.gl-new-value{color:#1a73e8;font-weight:500}.gl-modal-footer{background:#fafafa;border-radius:0 0 12px 12px;border-top:1px solid #f0f0f0;display:flex;gap:10px;justify-content:flex-end;padding:16px 24px}.source-badge.source-project-default{background:#fff3e0;border-radius:4px;color:#e65100;font-size:11px;padding:2px 8px}.source-badge.source-vendor-default{background:#e8f5e9;border-radius:4px;color:#2e7d32;font-size:11px;padding:2px 8px}.source-badge.source-project-vendor-mapping{background:#e3f2fd;border-radius:4px;color:#1565c0;font-size:11px;padding:2px 8px}.projects-search{align-items:center;display:flex;gap:12px;margin-bottom:16px}.projects-search .search-input{border:1px solid #ddd;border-radius:6px;flex:1 1;font-size:14px;padding:8px 12px}.projects-search .search-input:focus{border-color:#667eea;box-shadow:0 0 0 3px #667eea1a;outline:none}.search-count{color:#666;font-size:13px;white-space:nowrap}.settings-card{background:#f8f9fa;border:1px solid #e2e8f0;border-radius:8px;margin-bottom:20px;padding:16px 20px}.settings-card h3{color:#374151;font-size:15px;margin:0 0 12px}.settings-row{align-items:center;display:flex;flex-wrap:wrap;gap:16px}.settings-row label{color:#555;font-size:14px}.settings-help{color:#888;display:block;font-size:12px;margin-top:2px}.settings-input-group{align-items:center;display:flex;gap:8px}.settings-input-group input[type=number]{border:1px solid #ddd;border-radius:4px;font-size:14px;padding:6px 8px;width:80px}.btn-sm{font-size:13px;padding:4px 12px}.btn-microphone{background:#f0f0f0;color:#333;font-size:14px;min-width:36px;padding:4px 10px}.btn-microphone:hover:not(:disabled){background:#e0e0e0}.btn-microphone.recording{animation:mic-pulse 1s infinite;background:#ea4335;color:#fff}.btn-microphone.transcribing{cursor:wait;opacity:.7}@keyframes mic-pulse{0%,to{opacity:1}50%{opacity:.6}}.settings-message{font-size:13px;margin-top:4px}.settings-message-success{color:#22c55e}.settings-message-error{color:#ef4444}.vat-controls{align-items:center;background:#fff;border-bottom:1px solid #e5e7eb;display:flex;justify-content:space-between;padding:16px 24px}.vat-controls-left{align-items:center;display:flex;gap:12px}.vat-control-label{color:#555;font-size:13px;font-weight:500}.vat-toggle{align-items:center;color:#555;cursor:pointer;display:flex;font-size:13px;gap:6px}.vat-empty{color:#777;font-size:14px;padding:40px 24px;text-align:center}.vat-todate-strip{align-items:center;background:#eef2ff;border-bottom:1px solid #c7d2fe;color:#1e1b4b;display:flex;flex-wrap:wrap;font-size:13px;gap:24px;padding:12px 24px}.vat-todate-scope{color:#3730a3;font-weight:600;margin-right:12px}.vat-todate-item{color:#374151}.vat-todate-item strong{color:#111827}.vat-period{background:#fff;border:1px solid #e5e7eb;border-radius:8px;margin:16px 24px 24px;overflow:hidden}.vat-period-header{align-items:center;background:#f9fafb;border-bottom:1px solid #e5e7eb;display:flex;flex-wrap:wrap;gap:16px;justify-content:space-between;padding:12px 16px}.vat-period-toggle{align-items:center;background:none;border:none;color:inherit;cursor:pointer;display:flex;gap:8px;padding:0;text-align:left}.vat-period-toggle:hover .vat-period-title{color:#4f46e5}.vat-period-caret{color:#6b7280;display:inline-block;font-size:12px;transition:transform .15s ease}.vat-period-caret.is-collapsed{transform:rotate(-90deg)}.vat-period-title{color:#111827;font-size:16px;margin:0}.vat-period-dates{color:#666;font-size:13px;font-weight:400}.vat-period-totals{align-items:center;color:#374151;display:flex;flex-wrap:wrap;font-size:13px;gap:16px}.vat-period-total-item strong{color:#111827}.vat-table{border-collapse:collapse;font-size:13px;table-layout:fixed;width:100%}.vat-table td,.vat-table th{word-break:break-word}.vat-col-vendor{width:18%}.vat-col-date{width:9%}.vat-col-invnum{width:10%}.vat-col-amount{width:9%}.vat-col-currency{width:6%}.vat-col-checklist{width:8%}.vat-col-status{width:9%}.vat-col-actions{width:13%}.vat-table th{background:#f3f4f6;border-bottom:1px solid #e5e7eb;color:#374151;font-weight:600;padding:8px 10px;text-align:left}.vat-table td{border-bottom:1px solid #f1f1f1;padding:8px 10px;vertical-align:top}.vat-vendor-cell{background:#fafbfc;border-right:1px solid #f1f1f1;min-width:180px}.vat-vendor-name{color:#111827;font-weight:600}.vat-vendor-bank{color:#666;font-size:12px;margin-top:4px}.vat-bank-iban{color:#555;font-family:monospace;font-size:11px;margin-top:2px}.vat-subtotal-row td{background:#f9fafb;border-bottom:2px solid #e5e7eb;border-top:1px solid #e5e7eb}.vat-period-total-row td{background:#eef2ff;border-top:2px solid #c7d2fe}.vat-checklist{border-radius:10px;display:inline-block;font-size:11px;font-weight:500;padding:2px 8px}.vat-checklist-link{border:none;cursor:pointer;font-family:inherit}.vat-checklist-link:hover{filter:brightness(.93);text-decoration:underline}.vat-checklist-ok{background:#d1fae5;color:#065f46}.vat-checklist-pending{background:#fef3c7;color:#92400e}.vat-status{border-radius:10px;display:inline-block;font-size:11px;font-weight:500;padding:2px 8px}.vat-status-open{background:#dbeafe;color:#1e40af}.vat-status-draft{background:#e5e7eb;color:#374151}.vat-status-packaged{background:#d1fae5;color:#065f46}.vat-status-submitted{background:#ddd6fe;color:#5b21b6}.vat-status-paid{background:#bbf7d0;color:#14532d}.vat-stage-pill{align-items:center;display:flex;font-size:10px;gap:2px;line-height:1;margin-top:6px}.vat-stage-step{background:#0000;border:1px solid #c4b5fd;border-radius:8px;color:#6d28d9;font-weight:500;padding:2px 6px}.vat-stage-done{background:#ede9fe;border-color:#ede9fe;color:#5b21b6}.vat-stage-current{background:#7c3aed;border-color:#7c3aed;color:#fff;font-weight:600}.vat-stage-upcoming{border-color:#e9d5ff;color:#a78bfa}.vat-stage-sep{color:#c4b5fd;font-size:10px}.vat-section{border-left:4px solid #6366f1}.vat-section-grid{grid-gap:12px 16px;display:grid;gap:12px 16px;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));margin-bottom:12px}.vat-section-subhead{color:#374151;font-size:14px;font-weight:600;margin:12px 0 6px}.vat-threshold-reason{background:#f9fafb;border-radius:6px;color:#374151;font-size:13px;margin-top:6px;padding:8px 12px}.vat-bank-grid{grid-gap:8px 16px;display:grid;font-size:13px;gap:8px 16px;grid-template-columns:repeat(auto-fit,minmax(160px,1fr))}.vat-bank-grid .bank-label{color:#666;font-size:11px;letter-spacing:.02em;text-transform:uppercase}.vat-bank-grid .bank-value{color:#111827;font-family:monospace;font-size:13px}.vat-checklist-list{list-style:none;margin:0;padding:0}.vat-checklist-list li{align-items:center;border-bottom:1px solid #f1f1f1;display:flex;gap:10px;padding:6px 0}.vat-checklist-list li:last-child{border-bottom:none}.vat-checklist-label{flex:1 1;font-size:13px}.vat-checklist-meta{color:#777;font-size:11px}.vat-batch-link{background:#eef2ff;border-radius:6px;color:#3730a3;display:inline-block;font-size:13px;margin-top:6px;padding:4px 12px;text-decoration:none}.vat-batch-link:hover{background:#c7d2fe}.vat-toggle-row{margin-bottom:12px}.vat-toggle-label{align-items:center;cursor:pointer;display:inline-flex;font-weight:500;gap:8px}.vat-toggle-label input[type=checkbox]:disabled{cursor:default}.vat-below-threshold-hint{background:#eff6ff;border-left:3px solid #60a5fa;border-radius:4px;color:#1e3a8a;font-size:13px;margin-bottom:12px;padding:8px 12px}.toast-vat{align-items:center;background:#4f46e5;color:#fff;display:flex;gap:12px}.toast-vat .toast-action{background:#fff3;border:1px solid #ffffff80;border-radius:4px;color:#fff;cursor:pointer;font-size:12px;padding:4px 10px}.toast-vat .toast-action:hover{background:#ffffff4d}
/*# sourceMappingURL=main.4819eccf.css.map*/