*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}body{font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;line-height:1.6;color:#1a1a1a;background:#f5f6fa}a{color:#06c;text-decoration:none}a:hover{text-decoration:underline}.layout{display:flex;min-height:100vh}.sidebar{width:220px;background:#1e293b;color:#e2e8f0;display:flex;flex-direction:column;flex-shrink:0;height:100vh;position:sticky;top:0;overflow-y:auto}.sidebar-header{padding:1.25rem 1rem;border-bottom:1px solid #334155}.sidebar-header h2{font-size:1.1rem;font-weight:700;color:#fff}.sidebar-ksef-indicator{display:flex;align-items:center;gap:.45rem;margin:.5rem .75rem;padding:.5rem .75rem;font-size:.78rem;font-weight:600;border:1px solid #475569;border-radius:6px;cursor:pointer;transition:background .15s,border-color .15s,box-shadow .15s;-webkit-user-select:none;user-select:none}.sidebar-ksef-indicator:hover{background:#334155;border-color:#64748b}.sidebar-ksef-indicator.ksef-active{background:#16a34a26;color:#4ade80;border-color:#16a34a}.sidebar-ksef-indicator.ksef-active:hover{background:#16a34a40;border-color:#22c55e}.sidebar-ksef-indicator.ksef-inactive{background:#334155;color:#94a3b8;border-color:#475569;border-style:dashed}.sidebar-ksef-indicator.ksef-inactive:hover{color:#e2e8f0;border-color:#64748b;box-shadow:0 0 0 2px #2563eb33}.sidebar-ksef-indicator.ksef-connecting{color:#facc15;animation:ksef-pulse 1.2s ease-in-out infinite}@keyframes ksef-pulse{0%,to{opacity:1}50%{opacity:.5}}.ksef-dot{font-size:.7rem}.sidebar-nav{flex:1;padding:.5rem 0;overflow-y:auto;min-height:0}.nav-item{display:flex;align-items:center;gap:.6rem;padding:.6rem 1rem;color:#94a3b8;text-decoration:none;font-size:.9rem;transition:background .15s,color .15s}.nav-item:hover{background:#334155;color:#fff;text-decoration:none}.nav-item.active{background:#2563eb;color:#fff}.nav-icon{font-size:1rem}.sidebar-footer{padding:.75rem 1rem;border-top:1px solid #334155;display:flex;flex-direction:column;gap:.35rem;flex-shrink:0}.user-email{font-size:.78rem;color:#94a3b8;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.main-content{flex:1;padding:2rem;max-width:1200px;overflow-y:auto}h1{font-size:1.5rem;margin-bottom:1rem}h2{font-size:1.25rem;margin-bottom:.75rem}h3{font-size:1.05rem;margin-bottom:.5rem}.btn{display:inline-flex;align-items:center;gap:.4rem;padding:.5rem 1rem;border:none;border-radius:6px;font-size:.88rem;cursor:pointer;transition:background .15s}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:#2563eb;color:#fff}.btn-primary:hover:not(:disabled){background:#1d4ed8}.btn-success{background:#16a34a;color:#fff}.btn-success:hover:not(:disabled){background:#15803d}.btn-danger{background:#dc2626;color:#fff}.btn-danger:hover:not(:disabled){background:#b91c1c}.btn-outline{background:transparent;border:1px solid #94a3b8;color:#94a3b8}.btn-outline:hover:not(:disabled){background:#334155;color:#fff}.btn-sm{padding:.3rem .6rem;font-size:.8rem}.card{background:#fff;border-radius:8px;padding:1.25rem;box-shadow:0 1px 3px #0000000f}.stats-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:1rem;margin-bottom:1.5rem}.stat-card{background:#fff;border-radius:8px;padding:1rem;box-shadow:0 1px 3px #0000000f}.stat-value{font-size:1.8rem;font-weight:700;color:#1e293b}.stat-label{font-size:.82rem;color:#64748b;margin-top:.2rem}.table{width:100%;border-collapse:collapse;font-size:.88rem}.table thead th{text-align:left;padding:.6rem .5rem;border-bottom:2px solid #e2e8f0;font-weight:600;color:#475569;white-space:nowrap}.table tbody td{padding:.5rem;border-bottom:1px solid #f1f5f9}.table tbody tr:hover{background:#f8fafc}.text-right{text-align:right}.badge{display:inline-block;padding:.15rem .5rem;border-radius:4px;font-size:.78rem;font-weight:500;color:#fff}.badge-blue{background:#2563eb}.badge-orange{background:#ea580c}.badge-green{background:#16a34a}.badge-red{background:#dc2626}.badge-gray{background:#64748b}.form-group{margin-bottom:1rem}.form-group label{display:block;font-size:.85rem;font-weight:500;color:#374151;margin-bottom:.3rem}.form-input{width:100%;padding:.5rem .75rem;border:1px solid #d1d5db;border-radius:6px;font-size:.9rem;color:#1a1a1a}.form-input:focus{outline:none;border-color:#2563eb;box-shadow:0 0 0 2px #2563eb26}.form-select{width:100%;padding:.5rem .75rem;border:1px solid #d1d5db;border-radius:6px;font-size:.9rem;background:#fff}.alert{padding:.75rem 1rem;border-radius:6px;font-size:.88rem;margin-bottom:1rem}.alert-error{background:#fef2f2;color:#991b1b;border:1px solid #fecaca}.alert-success{background:#f0fdf4;color:#166534;border:1px solid #bbf7d0}.alert-info{background:#eff6ff;color:#1e40af;border:1px solid #bfdbfe}.session-indicator{display:inline-flex;align-items:center;gap:.4rem;padding:.3rem .7rem;border-radius:20px;font-size:.8rem;font-weight:500}.session-active{background:#dcfce7;color:#166534}.session-inactive{background:#f1f5f9;color:#64748b}.toolbar{display:flex;align-items:center;gap:.75rem;margin-bottom:1rem;flex-wrap:wrap}.auth-page{max-width:400px;margin:4rem auto;padding:0 1rem}.section{margin-bottom:2rem}.mt-1{margin-top:.5rem}.mt-2{margin-top:1rem}.mb-1{margin-bottom:.5rem}.mb-2{margin-bottom:1rem}.gap-05{gap:.5rem}.table input[type=checkbox]{width:16px;height:16px;cursor:pointer}.invoice-list{background:#fff;border-radius:8px;box-shadow:0 1px 3px #00000014;overflow:hidden}.invoice-card{border-bottom:1px solid #f1f5f9;transition:background .15s}.invoice-card:hover{background:#f8fafc}.invoice-card:last-child{border-bottom:none}.inv-ksef-bar{background:#dcfce7;padding:.35rem 1rem;font-size:.8rem;color:#166534;font-family:monospace;border-bottom:1px solid #bbf7d0}.inv-main-row{display:grid;grid-template-columns:32px 1fr auto;align-items:start;padding:.6rem .75rem;cursor:pointer;gap:.5rem}.inv-body{display:flex;flex-direction:column;gap:.2rem;min-width:0}.inv-row-top{display:flex;align-items:center;justify-content:space-between;gap:.5rem;flex-wrap:wrap}.inv-left{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.inv-right{display:flex;align-items:baseline;gap:.3rem}.inv-fvnr{font-weight:700;font-size:.92rem;white-space:nowrap}.inv-amount{font-weight:700;font-size:.95rem}.inv-currency{font-size:.82rem;color:#64748b;font-weight:600}.badge-kor{background:#fef3c7;color:#92400e;padding:.05rem .4rem;border-radius:4px;font-size:.72rem;font-weight:600}.inv-row-detail{display:flex;align-items:baseline;gap:1rem;flex-wrap:wrap;font-size:.8rem;color:#475569}.inv-dates{display:flex;flex-direction:column;font-size:.78rem;line-height:1.3;color:#64748b}.inv-buyer{display:flex;flex-direction:column;line-height:1.3}.inv-buyer-name{font-weight:600;font-size:.82rem}.inv-buyer-nip{font-size:.75rem;color:#94a3b8}.inv-amounts-detail{font-size:.78rem;color:#94a3b8;white-space:nowrap}.inv-tags{display:flex;gap:.3rem;align-items:center;margin-left:auto}.inv-tag{font-size:.72rem;padding:.1rem .35rem;border-radius:3px;background:#f1f5f9;color:#475569;font-weight:500;white-space:nowrap}.inv-row-transport{display:flex;flex-direction:column;gap:.15rem;padding:.2rem 0;border-top:1px dashed #e2e8f0;margin-top:.15rem}.inv-zlecenie{display:flex;align-items:baseline;gap:.5rem;font-size:.78rem;color:#475569;flex-wrap:wrap}.inv-zl-id{font-weight:600;color:#334155;white-space:nowrap}.inv-route-from,.inv-route-to{white-space:nowrap}.inv-route-arrow{color:#94a3b8;font-weight:700}.inv-zl-fracht{margin-left:auto;font-size:.75rem;color:#64748b;white-space:nowrap}.inv-row-pozycje{display:flex;flex-direction:column;gap:0;padding:.15rem 0;border-top:1px dashed #e2e8f0;margin-top:.1rem}.inv-pozycja{display:flex;align-items:baseline;gap:.5rem;font-size:.75rem;color:#64748b;padding:.05rem 0}.inv-poz-nr{color:#94a3b8;min-width:1.2em;text-align:right}.inv-poz-nazwa{font-weight:500;color:#475569}.inv-poz-jm{color:#94a3b8;font-style:italic}.inv-poz-qty{white-space:nowrap}.inv-poz-amount{font-weight:600;white-space:nowrap}.inv-poz-vat{color:#94a3b8}.inv-actions{display:flex;flex-direction:column;gap:.25rem;padding-top:2px}.inv-action-btn{background:none;border:1px solid transparent;border-radius:4px;cursor:pointer;font-size:1rem;padding:.15rem .3rem;line-height:1;transition:background .15s,border-color .15s;opacity:.6}.inv-action-btn:hover{background:#f1f5f9;border-color:#e2e8f0;opacity:1}.inv-action-send:hover{background:#dcfce7;border-color:#bbf7d0}.chk-verify{width:18px;height:18px;margin-left:.5rem;accent-color:#16a34a;cursor:pointer;vertical-align:middle;flex-shrink:0;outline:2px solid #cbd5e1;outline-offset:1px;border-radius:3px}.chk-verify:checked{outline-color:#16a34a}.chk-verify:hover{outline-color:#3b82f6}.preview-table .chk-verify{width:14px;height:14px;margin-left:.3rem;outline-width:1px}.poz-line{display:flex;align-items:baseline;gap:.25rem;padding:1px 0;word-break:break-word}.chk-progress-bar{padding:.5rem .5rem .75rem;border-bottom:1px solid #e2e8f0;margin-bottom:.5rem}.chk-progress-track{height:6px;background:#e2e8f0;border-radius:3px;overflow:hidden}.chk-progress-fill{height:100%;background:#16a34a;border-radius:3px;transition:width .25s ease}.preview-page{background:#fff;border-radius:8px;box-shadow:0 1px 6px #0000001a;padding:2rem;max-width:900px;margin-top:1rem}.preview-header{border-bottom:2px solid #1e3a5f;padding-bottom:1rem;margin-bottom:1.5rem}.preview-title{font-size:1.4rem;font-weight:700;color:#1e3a5f;margin-bottom:.5rem}.preview-meta{display:flex;flex-wrap:wrap;gap:1.5rem}.preview-row{display:flex;gap:.4rem;align-items:baseline}.preview-label{font-size:.82rem;color:#64748b;font-weight:500}.preview-value{font-weight:600}.preview-box{background:#f8fafc;border:1px solid #e2e8f0;border-radius:6px;padding:1rem}.preview-box-title{font-size:.78rem;text-transform:uppercase;letter-spacing:.05em;color:#64748b;font-weight:600;margin-bottom:.5rem;border-bottom:1px solid #e2e8f0;padding-bottom:.3rem}.preview-table{width:100%;border-collapse:collapse;font-size:.82rem}.preview-table th{background:#f1f5f9;padding:.4rem .5rem;text-align:left;font-weight:600;font-size:.78rem;color:#475569;border-bottom:1px solid #e2e8f0}.preview-table td{padding:.35rem .5rem;border-bottom:1px solid #f1f5f9}.preview-table tr:last-child td{border-bottom:none}.preview-page--compact{padding:1rem;margin-top:0;box-shadow:none;border-radius:0}.preview-page--compact .preview-header{padding-bottom:.5rem;margin-bottom:1rem}.preview-page--compact .preview-title{font-size:1.1rem}.invoice-card--expanded{background:#fff;box-shadow:0 2px 8px #00000014}
